1)在可執行項目中添加資源腳本文件。
IDR_DLL_BIN BINARY MOVEABLE PURE 「..\\debug\\myextern.dll」
2)編譯RC文件使用資源編譯器RES文件:
rc.exe /fo 」Release/mydll.res」 「.\mydll.rc」
如果您正在使用Visual Studio,它將建立RES文件,還將與可執行綁定。
3)查找並從可執行加載資源:
bool ExtractResource(const HINSTANCE hInstance, WORD resourceID, LPCTSTR szFilename)
{
bool bSuccess = false;
try
{
// Find and load the resource
HRSRC hResource = FindResource(hInstance, MAKEINTRESOURCE(resourceID), _T(「BINARY」));
HGLOBAL hFileResource = LoadResource(hInstance, hResource);
// Open and map this to a disk file
LPVOID lpFile = LockResource(hFileResource);
DWORD dwSize = SizeofResource(hInstance, hResource);
// Open the file and filemap
HANDLE hFile = CreateFile(szFilename, GENERIC_READ | GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
HANDLE hFileMap = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, dwSize, NULL);
LPVOID lpAddress = MapViewOfFile(hFileMap, FILE_MAP_WRITE, 0, 0, 0);
// Write the file
CopyMemory(lpAddress, lpFile, dwSize);
// Un-map the file and close the handles
UnmapViewOfFile(lpAddress);
CloseHandle(hFileMap);
CloseHandle(hFile);
}
catch(…)
{
// Whatever
}
return bSuccess;
}
一旦我得到寫入作爲運行上面的代碼後,lpAddress指向的內存空間中的源DLL,如何使用lpAddress調用該方法我需要?我的app-dev頭在這裏需要一些幫助。 – rtischer8277 2016-02-24 22:30:47