我有一個函數來獲得SDL_Surface到openGL紋理,但我似乎被卡在從DLL加載圖像。我可以加載一個DLL,我只是想知道如何從中獲取圖像,並從中創建SDL表面。DLL資源(PNG)到SDL_Surface
2
A
回答
1
在Windows上,可以獲取位於DLL中的資源的原始指針。 FindResource/LoadResource/LockResource函數完成這項工作。
使用下面的代碼得到的指針資源資源ID(尋找它在rc文件)和類型的ResourceType(在你的情況下位圖):
HMODULE Handle = /// GetModuleHandle(NULL or .dll handle here); - for current .exe file or .dll
HRSRC hResInfo;
HGLOBAL hResource;
// first find the resource info block
if ((hResInfo = ::FindResource(Handle, MAKEINTRESOURCE(ResourceID), ResourceType)) == NULL)
{
return(NULL);
}
// determine resource size
int BufSize = SizeofResource(Handle, hResInfo);
// now get a handle to the resource
if ((hResource = LoadResource(Handle, hResInfo)) == NULL)
{
return(NULL);
}
// finally get and return a pointer to the resource
void* BufPtr = LockResource(hResource);
/// Do whatever you need with BufSize/BufPtr
+0
然後將BufPtr和BufSize傳遞給SDL_RWFromConstMem(const void * mem,int size);獲取SDL_RWops結構,然後將其傳遞給IMG_Load_RW。非常感謝。沒有更多將我的資源文件不受保護! – user1433205
+0
當然,這正是我的意思 - BufPtr和BufSize是圖像文件的替代品。 –
相關問題
- 1. 資源PNG沒有找到
- 2. codeblocks/mingw&windres問題使用png資源構建.dll(VST插件)
- 3. Silverlight WP7資源DLL
- 4. 資源引用dll
- 5. Delphi,PNG,AlphaSkin,ImageList,資源
- 6. 動態創建PNG資源
- 7. 將表單資源文件移動到資源dll
- 8. 將資源從win32 dll嵌入到.net
- 9. 將資源文件添加到VC6 dll
- 10. 從dll複製資源到bin
- 11. SDL_Surface到IDirect3DTexture
- 12. 資源異常DLL中
- 13. 從資源獲取dll
- 14. 加載從資源DLL
- 15. 中性資源的DLL
- 16. 將資源(XML)在C#DLL
- 17. 如何創建資源DLL
- 18. 遊戲製作資源DLL
- 19. 嵌入式dll資源
- 20. 創建資源圖標DLL
- 21. 多個DLL資源管理
- 22. 禁用Android資源/圖像/ PNG優化
- 23. 資源編輯器中的Dll資源:它們來自哪裏?
- 24. 是否有可能將dll添加到資源,並使用LoadLibrary從資源加載該dll? C++
- 25. 從drawable使用.9.png後找不到資源
- 26. 如何從資源PNG加載到的CImage
- 27. SDL_Surface Vectors
- 28. 轉換SDL_Surface到的IplImage
- 29. 將SDL_Surface連接到shared_ptr
- 30. 將SDL_Surface切換到另一個SDL_Surface並應用一個色鍵
你如何獲得的圖像*成*一個DLL? DLL通常包含*源代碼*,而不是圖像。 –
Windows可執行文件和DLL還包含可以使用LockResource API作爲原始內存塊訪問的資源。 –