Crear una biblioteca de importación MSVC a partir de una DLL que usa stdcall

Tengo un dll que exporta

extern "C" __declspec(dllexport) int __stdcall Foo( void );

Un volcado de la dll muestra

******************************************************************************
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

******************************************************************************

Comencé con el siguiente archivo def:

LIBRARY simple.dll 
EXPORTS
  Foo

Esto creó un archivo lib con las siguientes exportaciones:

Exports
       ordinal    name
                  _Foo

Cuando enlazo con esta biblioteca, el enlazador msvc se queja de que no puede encontrar _Foo @ 0. Para corregir este problema, agregué un alias al archivo def.

LIBRARY simple.dll 
EXPORTS
  Foo
  Foo@0=Foo

Lo que da como resultado un archivo lib con exportaciones

Exports
       ordinal    name
                  _Foo
                  _Foo@0

Ahora el proyecto se vincula sin ningún problema. Sin embargo, cuando intento ejecutarlo, recibo el mensaje

"El punto de entrada del procedimiento Foo @ 0 no se pudo ubicar en la biblioteca de enlaces dinámicos simple.dll"

Entonces parece que aunque le dije a lib.exe que Foo @ 0 es un alias para Foo, todavía crea una biblioteca de importación que intenta cargar "Foo @ 0" por su nombre.

¿Hay alguna manera de hacer que la biblioteca de importación cargue "Foo" cuando solicité "Foo @ 0"?

Gracias,

David

Respuestas a la pregunta(1)

Su respuesta a la pregunta