I have a dll that exports
extern "C" __declspec(dllexport) int __stdcall Foo( void );
A dump of the 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 link with this library, the msvc linker complains that it can't find _Foo@0. To correct this problem, I added an alias to the def file.
LIBRARY simple.dll
EXPORTS
Foo
Foo@0=Foo
Which results in a lib file with exports
Exports
ordinal name
_Foo
_Foo@0
Now the project links without any problem. However, when I try to run it, I get the message
"The procedure entry point Foo@0 could not be located in the dynamic link library simple.dll"
So it appears that even though 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