正如該主題的描述/標題所說,這是一種可能性,因爲我一直在谷歌和其他來源尋找,沒有任何運氣我來這裏問這個問題...在VC++ 2008中嵌入/加載DLL作爲資源?
它是在所有可能的將DLL
作爲一個資源嵌入到我的最終可執行文件中,然後調用它/ as-如果它是當前目錄和/或系統目錄中的外部文件?
我已經嘗試過很多東西沒有運氣,一些解決方案的效果並不好,我似乎已經將DLL
與我的.rc
文件一起嵌入了,但是我遇到了試圖調用的問題它,也許它需要被保存到磁盤上的物理文件中,我不確定。
[編輯]
下面是我目前已經實現的代碼,仍然沒有任何成功;我還面臨着以下The program can't start because soandso.dll is missing from your computer.
代碼, -/
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
HRSRC hRes = FindResource(hInstance, MAKEINTRESOURCE("#101"), "IDR_DLLRESOURCE_101");
HGLOBAL hData = LoadResource(hInstance, hRes);
LPVOID lpFile = LockResource(hData);
DWORD dwSize = SizeofResource(hInstance, hRes);
HANDLE hFile = CreateFile("soandso.dll", GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
HANDLE hFilemap = CreateFileMapping(hFile, 0, PAGE_READWRITE, 0, dwSize, 0);
LPVOID lpBaseAddr = MapViewOfFile(hFilemap, FILE_MAP_WRITE, 0, 0, 0);
CopyMemory(lpBaseAddr, lpFile, dwSize);
UnmapViewOfFile(lpBaseAddr);
CloseHandle(hFilemap);
CloseHandle(hFile);
return 0;
}
預先感謝您的任何和所有幫助提供。
谷歌的「反射DLL注入」,你會發現你的問題的答案。 –