Доброго времени суток. Работаю значит с ресурсами. пишу RT_RCDATA.
С билдером проблем вроде нет как таковых.
Ресурсы пишет в стаб всё нормально с этим. А так сделал чтение в стабе его.
Чтение переписывал по разному с одного шарп-проекта(там всё работало). шарп- на шарп всё ок читает. А тут я не понимаю в чём траблы вообще.
Кто сталкивался если, подскажите плиз, как достать ресурс пожалуйста?
С билдером проблем вроде нет как таковых.
C++:
ICResult WriteResource(const char* FileName, const BYTE* FileBytes, DWORD FileSize)
{
HANDLE hUpdate = BeginUpdateResourceA(FileName, FALSE);
if (hUpdate == NULL)
return ICResult::FailBegin;
if (!UpdateResourceA(hUpdate, "RT_RCDATA", "RES_FIRST", 1066, (LPVOID)FileBytes, FileSize))
{
EndUpdateResource(hUpdate, TRUE);
return ICResult::FailUpdate;
}
if (!EndUpdateResource(hUpdate, FALSE))
return ICResult::FailEnd;
return ICResult::Success;
}
Код:
vector<unsigned char> getResourceData(const char* resourceName) {
HMODULE hModule = GetModuleHandle(NULL);
HRSRC hResource = FindResource(hModule, resourceName, RT_RCDATA);
if (hResource == NULL) {
return std::vector<unsigned char>();
}
HGLOBAL hData = LoadResource(hModule, hResource);
if (hData == NULL) {
return std::vector<unsigned char>();
}
DWORD dataSize = SizeofResource(hModule, hResource);
if (dataSize == 0) {
return std::vector<unsigned char>();
}
const unsigned char* pData = static_cast<const unsigned char*>(LockResource(hData));
if (pData == NULL) {
return std::vector<unsigned char>();
}
std::vector<unsigned char> resourceData(pData, pData + dataSize);
return resourceData;
}
Кто сталкивался если, подскажите плиз, как достать ресурс пожалуйста?