Создание библиотеки импорта MSVC из библиотеки DLL, которая использует stdcall

У меня есть dll, которая экспортирует

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

Свалка длл показывает

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

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

Я начал со следующего файла def:

LIBRARY simple.dll 
EXPORTS
  Foo

Это создало файл lib со следующим экспортом:

Exports
       ordinal    name
                  _Foo

Когда я связываюсь с этой библиотекой, компоновщик msvc жалуется, что не может найти _Foo @ 0. Чтобы исправить эту проблему, я добавил псевдоним в файл def.

LIBRARY simple.dll 
EXPORTS
  Foo
  Foo@0=Foo

В результате получается файл lib с экспортом

Exports
       ordinal    name
                  _Foo
                  _Foo@0

Теперь ссылки на проект без проблем. Однако, когда я пытаюсь запустить его, я получаю сообщение

"Не удалось найти точку входа в процедуру Foo @ 0 в библиотеке динамических ссылок simple.dll"

Таким образом, похоже, что хотя я сказал lib.exe, что Foo @ 0 является псевдонимом для Foo, он все равно создает библиотеку импорта, которая пытается загрузить «Foo @ 0» по имени.

Есть ли способ получить библиотеку импорта для загрузки "Foo", когда я спросил "Foo @ 0"?

Спасибо,

Дэвид

Ответы на вопрос(1)

Ваш ответ на вопрос