RE^2:ビットマップアーカイブファイルの展開についての質問
(
Kabo
)
2000/10/03 02:34
質問にお答えいただき、ありがとうございます。
>どのようにバッファを確保しているのでしょうか?
「Win32 API オフィシャルリファレンス」に
「Win32環境では、グローバルヒープとローカルヒープの区別はありません。」
と書かれていたので Win32API の GlobalAlloc関数 を使っています。
そして、ソースファイルは、
/*-------------------------------------------------------------------------------*/
__declspec(dllexport) int PASCAL GetFile
(LPSTR src, long len, char* dest, unsigned int flag,
int PASCAL ProgressCallback(int,int,long), long lData )
{
HANDLE fp;
・
・
dest = (char*)GlobalAlloc( GPTR, index->length );
fp = ax_Open( src );
ax_lSeek( fp, index->offset );
ax_Read( fp, dest, index->length );
ax_Close( fp );
・
・
}
BOOL ax_Read( HANDLE hfp, char* buf, int ReadSize )
{
DWORD dw;
ReadFile(hfp, buf, ReadSize, &dw, NULL);
if( ReadSize != (int)dw )
return FALSE;
else
return TRUE;
}
/*----------------------------------------------------------------------------*/
※index構造体は各内部ファイルの
length: ファイルサイズ
offset: ファイル内の位置
を表しています。
/*----------------------------------------------------------------------------*/
となっています。チェックのために他にいろいろと書いてありますが
(Jy.さんへのレスを参照して下さい)解り易くするため省略しました。
>LocalAllocでLMEM_FIXEDを指定しているなら
>*dest と バッファへのポインタは同じですけど。
はい。指定しています。おまけに、0 で初期化しています。
もしかして、いけないのでしょうか?
--「RE^2:ビットマップアーカイブファイルの展開についての質問」に対するコメント--
タイトル(Subject):
お名前(Your name):
Mail address:
Password:
:入力しておくとあとで削除できます
Your message:
7thBridge P ver0.26 (c)Takechin