Yup, this patch solved the bad file descriptor problem, but WinAmp gives me this output when I run it (with a backtrace):
Unhandled exception: unimplemented function msvcrt.dll._i64toa called in 32-bit code (0x40cb0052). In 32-bit mode. Symbol __strtol_internal is invalid 0x40cb0052 (__wine_unimplemented+0x52 [msvcrt.spec.c:47] in msvcrt.dll.so): jmp 0x40cb004c (__wine_unimplemented+0x4c [msvcrt.spec.c:47] in msvcrt.dll.so) 50 void __wine_stub_msvcrt_dll_24(void) { __wine_unimplemented("??_7__non_rtti_object@@6B@"); } Wine-dbg>bt Backtrace: =>0 0x40cb0052 (__wine_unimplemented+0x52(func=0x40cc6851) [msvcrt.spec.c:47] in msvcrt.dll.so) (ebp=406dfc5c) 1 0x40cb0604 (__wine_stub_msvcrt_dll_275 [msvcrt.spec.c:102] in msvcrt.dll.so) (ebp=406dfc6c) 2 0x10076730 (OUT_DS.DLL.winampGetOutModule+0x22a8 in C:\PROGRAM FILES\WINAMP\PLUGINS\OUT_DS.DLL) (ebp=406dfce8) 3 0x100766a0 (OUT_DS.DLL.winampGetOutModule+0x2218 in C:\PROGRAM FILES\WINAMP\PLUGINS\OUT_DS.DLL) (ebp=406e0358) 4 0x00418994 (winamp.exe..text+0x17994 in C:\Program Files\Winamp\winamp.exe) (ebp=403d46da) 5 0x002e0000 (ebp=00240000) *** Invalid address 0x00240000
(I don't really need to use winamp, but it was an easy example of the previous problem.)
-Steve
PS - Uwe, I'd love to be able to quote email correctly, but I'm forced to use Lotus Notes at work, which doesn't seem to know how to reply very well. If anyone knows how to make Notes behave like a normal mail client, let me know.
Alexandre Julliard To: Steve Lustbader/ANR/MS/PHILIPS@AMEC <julliard@winehq cc: Sylvain Petreolle spetreolle@yahoo.fr .com> wine-devel@winehq.com Sent by: Subject: Re: Registry problem julliard@winehq. com Classification:
10/09/2002 12:25 PM
steve.lustbader@philips.com writes:
When I try to run WinAmp, it exits immediately with that same error. It doesn't run at all, unlike the installer, which runs but then ends with the error (probably when it tries to run winamp itself).
Does this help?
Index: dlls/winmm/wineoss/audio.c =================================================================== RCS file: /opt/cvs-commit/wine/dlls/winmm/wineoss/audio.c,v retrieving revision 1.62 diff -u -r1.62 audio.c --- dlls/winmm/wineoss/audio.c 7 Oct 2002 18:23:40 -0000 1.62 +++ dlls/winmm/wineoss/audio.c 9 Oct 2002 16:23:52 -0000 @@ -245,7 +245,7 @@ if ((fd = open(ossdev->dev_name, ossdev->open_access|O_NDELAY, 0)) == -1) { WARN("Couldn't open out %s (%s)\n", ossdev->dev_name, strerror(errno)); - return (errno == EBUSY) ? MMSYSERR_ALLOCATED : MMSYSERR_ERROR; + return -1; } fcntl(fd, F_SETFD, 1); /* set close on exec flag */ /* turn full duplex on if it has been requested */ @@ -373,7 +373,7 @@ } TRACE("Changing fd from %d to ", ossdev->fd); close(ossdev->fd); - OSS_RawOpenDevice(ossdev, &ossdev->audio_fragment); + ossdev->fd = OSS_RawOpenDevice(ossdev, &ossdev->audio_fragment); TRACE("%d\n", ossdev->fd); return ossdev->fd; }
-- Alexandre Julliard julliard@winehq.com
On Wed, Oct 09, 2002 at 01:01:37PM -0400, steve.lustbader@philips.com wrote:
Unhandled exception: unimplemented function msvcrt.dll._i64toa called in 32-bit code (0x40cb0052).
well, look at that: ~/work/wine/wine/dlls/ntdll> grep i64toa ../msvcrt/msvcrt.spec @ stub _i64toa #(long str long) @ stub _ui64toa #(long str long) ~/work/wine/wine/dlls/ntdll>
if you look at itoa (i64toa's 32 bit equivalent?) in that same file, you can find them redirected to ntll and their actual implementation in ntdll/string.c Looks like a trivial case of copy/paste/modify to me.
Ciao Jörg
-- Joerg Mayer jmayer@loplof.de I found out that "pro" means "instead of" (as in proconsul). Now I know what proactive means.