Основной код программы входа выглядит так:
Код: Выделить всё
#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 выглядит следующим образом:
Код: Выделить всё
#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);
}
Последнее, что я сделал в MainDLL.dll, это то, что я включил другую свою DLL для рисования с использованием D2D1, и после этого я не могу ее загрузить.Я использую Microsoft Visual Studio 2022.
Подробнее здесь: https://stackoverflow.com/questions/792 ... y-dll-file
Мобильная версия