Я новичок в Windows, у меня есть проект dll, который генерирует dll и тестовый проект, который является exe, который потребляет или вызывает функции в dll. Для этого я использую visual studio 2010. в настоящее время, когда я проверяю общие свойства dll в свойствах конфигурации, целевое имя - DecryptEmailDll, а целевое расширение - .dll. С этим тест exe работает нормально, и я получаю желаемый результат. Но когда я пытаюсь переименовать целевое имя dll в TransformEmail, сборка в порядке, но во время работы она говорит: «Не удалось найти DecryptEmailDll». Я не могу понять, почему он пытается найти старую dll со старым именем, а не с новым.не удается запустить .exe, который использует DLL-файл после изменения имени DLL в свойствах проекта dll.
0
A
ответ
0
Test.exe был создан с именем файла для поиска. Поэтому вы должны изменить его и перестроить с новым именем dll.
0
Ну, если вы измените имя dll, вам нужно либо изменить объявление import lib, если вы статично импортируете dll (я полагаю, что с cahnge имя dll вы имели в виду также имя lib и exp) , Или, если вы динамически импортируете, измените параметр функции LoadLibrary.
Я не указал ни одного имени файла. exe просто вызывает функцию в этой DLL, то есть –
Проверьте источник и ресурсы test.exe, он не может просто вызвать функцию из ЛЮБОЙ DLL, она должна указать, какой из них она хочет динамически загружать. Редактировать: Windows .exe может указывать требуемые DLL либо непосредственно в информации об EXE-файле, поэтому DLL загружается ОС во время загрузки самого EXE (тогда имя dll должно быть частью ресурсов или зависимостей настроек .exe проект), или он может динамически вызывать одну из функций loadLibrary, с именем файла .dll, а затем искать нужную функцию по имени функции. – Ped7g
это не динамическая загрузка. Я только что включил .h из dll и назвал одну из ее функций. ничего больше –