help with linking needed

Ralf Juengling juenglin at cse.ogi.edu
Sat Nov 22 14:11:45 CST 2003


> I have successfully compiled sources of a Windows application, but
> when starting up, it tries to locate and link to a windows dll
> to access some C library functions:
>
> ...
> err:module:import_dll No implementation for cw3230.DLL._strlen imported
> from L"Z:\\local\\builts\\phaeaco-20031119\\src\\memview\\memview.exe",
> setting to 0xdeadbeef
> err:module:import_dll No implementation for cw3230.DLL._strncpy imported
> from L"Z:\\local\\builts\\phaeaco-20031119\\src\\memview\\memview.exe",
> setting to 0xdeadbeef
> err:module:import_dll No implementation for cw3230.DLL._strtok imported
> from L"Z:\\local\\builts\\phaeaco-20031119\\src\\memview\\memview.exe",
> setting to 0xdeadbeef
> err:module:import_dll No implementation for cw3230.DLL._tolower imported
> from L"Z:\\local\\builts\\phaeaco-20031119\\src\\memview\\memview.exe",
> setting to 0xdeadbeef
> err:module:import_dll No implementation for cw3230.DLL._toupper imported
> from L"Z:\\local\\builts\\phaeaco-20031119\\src\\memview\\memview.exe",
> setting to 0xdeadbeef
> err:module:LdrInitializeThunk Main exe initialization failed, status
> c0000135
>
> First of all: Where does the name "cw3230.DLL" come from -- Wine didn't
> install such a dll on my system?

Okay, I found the answer to this myself, it is quite embarrassing:
Amid the sources that I got there was also the executable compiled on a
Windows system by a Borland compiler. Since the winelib-generated
make file creates a shared library and not an executable, the spurious
native Windows executable was not overwritten by my built.
The wineapploader script then started wine with the native Windows
executable instead of the shared library "memview.exe.so", and the
missing DLL reported above is probably Borlands C runtime library
or part of it.

So forget about the other questions in my previous posting.

Now the problem is that the applicaiton doesn't start but immediately
fails with a Segmentation Fault. The problem seems to be in the
function GetFullName in files/dos_fs.c; here are the last four lines
of a startup trace:

0009:trace:nls:WideCharToMultiByte cp 65010 L"memview.exe" -> "memview.exe"
0009:trace:dosfs:DOSFS_FindUnixName
(/local/builts/phaeaco-20031119/src/memview,L"memview.exe") ->
L"memview.exe" (L"MEMVIEW.EXE")
0009:trace:heap:RtlFreeHeap (0x401e0000,00000002,401e0918): returning TRUE
0009:trace:dosfs:DOSFS_GetFullName returning
/local/builts/phaeaco-20031119/src/memview/memview.exe =
L"Z:\\LOCAL\\BUILTS\\PHAE~WVJ\\SRC\\MEMVI\
EW\\MEMVIEW.EXE"
Segmentation fault

(Note: I had renamed the file "memview.exe.so" to "memview.exe").

I haven't looked into and tried to fix GetFullName yet but will do so
next week. Of course, I hope somebody who knows the code well
will come up with a fix before I try. :-)

Thanks for the Wine,
Ralf






More information about the wine-devel mailing list