2

SDL_Surface を openGL テクスチャに取得する関数がありますが、dll からイメージをロードする際にスタックしているようです。私は DLL をロードできますが、そこから画像を取得し、そこから SDL サーフェスを作成する方法について混乱しています。

4

1 に答える 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 に答える