и готово — содержимое ресурса записано в виде файла c:\windows\supersys.exe
"ResourceName", "ResourceType" — это соответственно названия в ресурсах самого ресурса и типа ресурсов, там они тоже должны быть именно в таком виде — с кавычками.
O$>и готово — содержимое ресурса записано в виде файла c:\windows\supersys.exe
O$>"ResourceName", "ResourceType" — это соответственно названия в ресурсах самого ресурса и типа ресурсов, там они тоже должны быть именно в таком виде — с кавычками.
А нельзя ли переписать код без использования MFC-классов (таких как CFile, CString)? Тогда код не будет столь жестко привязан к конкретной библиотеке классов... По-моему, вполне достаточно RTL (fopen,fclose,fwrite)...
З.Ы. А я бы еще вместо LPCSTR (и далее по списку) написал бы const char* Прозрачности в понимании добавляет, ИМХО... Ведь для широкой публики, так сказать
Здравствуйте Flamer, Вы писали:
F>А нельзя ли переписать код без использования MFC-классов (таких как CFile, CString)? Тогда код не будет столь жестко привязан к конкретной библиотеке классов... По-моему, вполне достаточно RTL (fopen,fclose,fwrite)...
F>З.Ы. А я бы еще вместо LPCSTR (и далее по списку) написал бы const char* Прозрачности в понимании добавляет, ИМХО... Ведь для широкой публики, так сказать
вообще-то лучше использовать только API функции
а то в 90% случаев можно рантайм и не линковать
что дает неплохой выигрыш по размеру.
да и меньше траблов будет в этой связи с использованием WTL скажем
O$>и готово — содержимое ресурса записано в виде файла c:\windows\supersys.exe
O$>"ResourceName", "ResourceType" — это соответственно названия в ресурсах самого ресурса и типа ресурсов, там они тоже должны быть именно в таком виде — с кавычками.
А МОЖНО И ТАК:
-------Код экспорта файлов из ресурсов приложения-------
HRSRC rc = NULL;
rc=FindResource(AfxGetResourceHandle(),MAKEINTRESOURCE(IDR_EXE1),"EXE");
DWORD dwSize;
if (rc!=NULL)
{
HGLOBAL hgl = NULL;
dwSize = SizeofResource(AfxGetResourceHandle(),rc);// Размер ресурса
hgl = LoadResource(AfxGetResourceHandle(),rc);
if (hgl!=NULL)
{
CFile cf;
cf.Open("C:\\File.exe",CFile::modeCreate|CFile::modeWrite);
cf.WriteHuge(hgl,dwSize);
cf.Close();
FreeResource(hgl);
}
}
--------------------------------------------------------
Если "чего нибудь эдакое" надо упихать в свою прогу то можно пользоватся старым дедовским методом:
В составе gcc есть тулза bin2h которая из любого файла делает сишный хедер с массивом байт внутри.
Примерно такой: