У меня есть четыре 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