VC ++ 2010 проблемы с вызовом библиотеки DLL, которая вызывает другие библиотеки DLL - PullRequest
1 голос
/ 08 июля 2011

У меня есть четыре DLL, скажем, A.dll B.dll C.dll D.dll.Все они построены с помощью мастера приложений Windows vc ++ с параметрами DLL и символов экспорта.

A.dll использует функции из BCD.Было доказано, что BCD работает с тестовыми приложениями отдельно.И теперь я тестирую A.dll.

Однако, независимо от того, как я изменил или скомпилировал A.dll, когда я вызываю его в тестовом приложении (до запуска программы в основной), он всегда говорил, чтоТочка входа function (function in A.dll) не найдена в A.dll.Я вручную открыл A.dll с помощью блокнота, и я вижу, что функция определенно там с тем же именем.Имя функции также указано в A.exp и A.lib

. Способ, которым я вычисляю A.dll, аналогичен BCD, включая их библиотеки libs и dllimport.В моей тестовой программе я попытался включить A.lib / ABCD.libs, но это не сработало.Когда я компилировал A.dll, я включал BCD.libs


. Я использовал вид экспорта Dll, который показал, что функция там и правильно экспортирована.Я думаю, что это может быть файл lib, сгенерированный vc ++, имеющий проблему с поиском функции, когда сама dll использует другие dll


Я обнаружил проблему .... что довольно глупо, есть другой A.dll где-нибудь в системе с тем же именем и загружен первым: SSSSSSSSSS

...