Почему «LoadLibraryW» не работает?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему «LoadLibraryW» не работает?

Сообщение Anonymous »

Я работаю над программой на C++, 64-битной или 32-битной (я пробовал обе), которая пытается загрузить DLL:

Код: Выделить всё

currentDLL = LoadLibraryW("CurrentDLL.dll");
Хотя в журналах отладки упоминается, что загрузка произошла, DLL после этого сразу же выгружается:

Код: Выделить всё

'MyProgram.exe' (Win32): Loaded 'C:\First_Location\Current_DLL.dll'. Symbol loading disabled by Include/Exclude setting.
'MyProgram.exe' (Win32): Unloaded 'C:\First_Location\Current_DLL.dll'
'MyProgram.exe' (Win32): Loaded 'C:\Second_Location\Current_DLL.dll'. Symbol loading disabled by Include/Exclude setting.
'MyProgram.exe' (Win32): Unloaded 'C:\Second_Location\Current_DLL.dll'
В чем разница между двумя локациями? Ну, одно место - это каталог, из которого запускается "MyProgram.exe", другое извлекается исходным кодом как std::filesystem::current_path();, но, как вы видите, ни один из них не дает никаких результатов (я имею в виду, что в обоих случаях "currentDLL" кажется NULL.
Я хотел бы знать причину, по которой моя DLL выгружается.
  • Нужны ли мне дополнительные команды, перехват исключений, ...?
Для вашей информации: я только что выполнил проверку подписи в DLL и получил следующие результаты:

Код: Выделить всё

    Verified:       Unsigned
Link date:      15:25 17/04/2026
Publisher:      n/a
Company:        MyCompany
Description:    Very interesting
Product:        CurrentDLL
Prod version:   1, 0, 0, 1
File version:   1, 0, 0, 1
MachineType:    32-bit
Вот результат «corflags»:

Код: Выделить всё

Version   : v4.0.30319
CLR Header: 2.5
PE        : PE32
CorFlags  : 0x10
ILONLY    : 0
32BITREQ  : 0
32BITPREF : 0
Signed    : 0
Конфигурация моего расширенного проекта выглядит следующим образом:

Изображение

Я считаю, что следует добавить некоторые настройки CLR, возможно, какую-то версию .NET, но что именно мне нужно туда поместить?

Я попробовал следующее, но это не удалось:

Изображение
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»