Почему моя программа не находит мой DLL-файл?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему моя программа не находит мой DLL-файл?

Сообщение Anonymous »

У меня есть программа, и она работает нормально, но когда я скомпилировал файл MainDLL.dll, моя программа не нашла ее. Возвращает (0x7E) (указанный модуль не найден). Файл .dll находится в той же папке, что и файл .exe. Но когда я попытался открыть другой файл .dll из той же папки, он работал нормально.
Основной код программы входа выглядит так:

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

#include "WinMain.hpp"

int APIENTRY wWinMain(_In_ HINSTANCE hInst, _In_opt_ HINSTANCE hPrevInst,
_In_ LPWSTR lpCmdLine, _In_ int nShowCmd) {
dbg::SetDebugState(true);

mf::InitMF(L"MainDLL.dll");

int iResult = mf::MainFunc(hInst, hPrevInst, lpCmdLine, nShowCmd);

mf::UninitMF();

return iResult;
}
Он запускает мою библиотеку .lib, которая должна загружать файл MainDLL.dll через mf::InitMF(L"MainDLL.dll"); вызов функции.
Код библиотеки .lib выглядит следующим образом:

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

#include "../Libs/MainLib.hpp"

mf::MainFuncPtr mf::MainFunc = nullptr;

namespace __mf {
HMODULE hmLib = nullptr;
}

void mf::InitMF(LPCWSTR Path) {

HRESULT hr = 0l;

__mf::hmLib = LoadLibraryW(Path);
if (__mf::hmLib == nullptr) {
hr = (HRESULT)GetLastError();
dbg::ErrorWnd(L"load main dll func error", L"Chyba", hr, __LINE__, __FILEW__);
ExitProcess(13u);
}

mf::MainFunc = (mf::MainFuncPtr)GetProcAddress(
__mf::hmLib, "__MainFunc");
if (mf::MainFunc == nullptr) {
hr = (HRESULT)GetLastError();
dbg::ErrorWnd(L"get main proc error", L"Chyba", hr, __LINE__, __FILEW__);
ExitProcess(13u);
}
}

void mf::UninitMF(void) {
FreeLibrary(__mf::hmLib);
}
Поскольку любой другой файл .dll загружается нормально, я думаю, что это что-то с файлом MainDLL.dll, но когда я его компилирую, он компилируется без каких-либо проблема.
Последнее, что я сделал в MainDLL.dll, это то, что я включил другую свою DLL для рисования с использованием D2D1, и после этого я не могу ее загрузить.Я использую Microsoft Visual Studio 2022.

Подробнее здесь: https://stackoverflow.com/questions/792 ... y-dll-file
Ответить

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

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

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

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

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