Как проверить, что библиотека импорта LIB полностью соответствует своей DLL? - PullRequest
1 голос
/ 11 мая 2011

У меня есть DLL с библиотекой импорта. Когда я пытаюсь сослаться на библиотеку импорта, я получаю ошибки компоновщика, которые не могут быть решены некоторыми функциями. Я думаю, что есть несоответствие в версиях DLL и ее библиотеки импорта. Есть ли способ проверить, что библиотека импорта полностью соответствует своей DLL, не проверяя тонны функций вручную через DumpBin?

Ответы [ 2 ]

1 голос
/ 11 мая 2011

Проблема в том, что файл заголовка содержит функции, которые не определены в файле .lib.Скорее всего, у вас есть новый файл заголовка и устаревший файл .lib.

Возможные решения:

0 голосов
/ 11 мая 2011

При связывании двоичных файлов имеют значение только библиотеки * .lib (включая библиотеки импорта, но, очевидно, не включая библиотеки DLL).Компоновщик может даже не знать, что это библиотека импорта, а не какая-то другая статическая библиотека.Также возможно создать смешанную библиотеку, в которой некоторые функции статически добавляются в файл * .lib, а другие импортируются из некоторой DLL.

Ваши неразрешенные функции просто отсутствуют в ваших библиотеках * .lib (включая библиотеку импорта).,Если вы связываете свою библиотеку импорта и точно знаете, что неразрешенные функции экспортируются вашей DLL, то ваша библиотека импорта либо не соответствует, либо была создана для того, чтобы не экспортировать эти функции (например, функции могут отсутствовать в файле * .def проекта DLL).).

...