SDL_Surface を openGL テクスチャに取得する関数がありますが、dll からイメージをロードする際にスタックしているようです。私は DLL をロードできますが、そこから画像を取得し、そこから SDL サーフェスを作成する方法について混乱しています。
1 に答える
1
Windowsでは、DLLにあるリソースへの生のポインタを取得することができます。FindResource / LoadResource/LockResource関数がその役割を果たします。
次のコードを使用して、リソースResourceID(.rcファイルで検索)およびタイプResourceType(この場合はBITMAP)へのポインターを取得します。
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
于 2012-06-03T06:21:32.637 に答える