I have a dll that exports
extern "C" __declspec(dllexport) int __stdcall Foo( void );
Dump dll shows
****************************************************************************** Section: Exports File Offset: 00001400 (5120) Flags: 00000000 Time Stamp: 00000000 Major Version: 0000 Minor Version: 0000 Exports from simple.dll 3 exported name(s), 3 export addresse(s). Ordinal base is 1. Sorted by Name: RVA Ord. Hint Name -------- ---- ---- ---- 00002104 3 0000 std::nothrow 00001258 2 0001 Foo 000020F8 1 0002 ___CPPdebugHook ******************************************************************************
I started with the following def file:
LIBRARY simple.dll EXPORTS Foo
This created a lib file with the following exports:
Exports ordinal name _Foo
When I contact this library, the msvc linker complains that it cannot find _Foo @ 0. To fix this problem, I added an alias to the def file.
LIBRARY simple.dll EXPORTS Foo Foo@0 =Foo
The result is a lib file with export
Exports ordinal name _Foo _Foo@0
Now the project is connecting without any problems. However, when I try to start it, I get a message
"The Foo @ 0 login point cannot be located in the simple.dll dynamic link library"
So it seems that although I told lib.exe that Foo @ 0 is an alias for Foo, it still creates an import library that tries to load "Foo @ 0" by name.
Is there a way to get the import library to load "Foo" when I asked for "Foo @ 0"?
Thanks,
David