void Extract(WORD wResId , LPSTR lpszOutputPath)
{
HRSRC hrsrc = FindResource(NULL, MAKEINTRESOURCE(wResId) , RT_RCDATA);
HGLOBAL hLoaded = LoadResource(NULL,hrsrc);
LPVOID lpLock = LockResource(hLoaded);
DWORD dwSize = SizeofResource(NULL, hrsrc);
HANDLE hFile = CreateFile("C://Windows//Darek//mylo.txt",GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD dwByteWritten;
char* cRes = (char*)malloc (dwSize);
memset(cRes,0,dwSize);
memcpy (cRes, cData, dwSize);
cRes[dwSize] = '\0';
FreeResource(hLoaded);
WriteFile(hFile, lpLock , dwSize , &dwByteWritten , NULL);
CloseHandle(hFile);
FreeResource(hLoaded);
}
好吧,这会创建正确的文件,但提取的数据doesnt似乎提取并写入textFile,任何问题?我似乎不明白为什么它不提取并将数据写入文件。资源数据doesnt写入文本文件
请帮忙。
至少'cRes [dwSize] ='\ 0';'是无效的,你没有分配足够的内存来做到这一点。但究竟是什么不起作用?没有写入文件?应该写入文件的内容以及写入文件的内容是什么? – wimh
我试图从dll中复制数据的字节并写入文件(文本文件),以便在再次使用dll重试之前查看它是如何工作的 –
并且没有任何内容写入文件。 –