手元の環境で以下のようなプログラムで確認してみましたが、
GetGraphSize で w と h の値が 0 になるということはありませんでした
( Test1.bmp をメモリに読み込み、CreateGraphFromMem でグラフィックハンドルにした後、
GetGraphSize でサイズを取得して、画面にサイズを描画するというプログラムです )
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
FILE *fp ;
void *Data ;
int Size ;
int GrHandle ;
int w, h;
// ウインドウモードで起動
ChangeWindowMode( TRUE );
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
// 画像ファイルのメモリへの読み込み
fp = fopen( "Test1.bmp", "rb" ) ;
fseek( fp, 0, SEEK_END ) ;
Size = ftell( fp ) ;
fseek( fp, 0, SEEK_SET ) ;
Data = malloc( Size ) ;
fread( Data, Size, 1, fp ) ;
fclose( fp ) ;
// CreateGraphFromMem でグラフィックハンドルを作成
GrHandle = CreateGraphFromMem( Data, Size ) ;
// 画像のサイズを取得
GetGraphSize( GrHandle , &w, &h ) ;
// 描画先を裏画面に変更
SetDrawScreen( DX_SCREEN_BACK ) ;
while( ProcessMessage() == 0 )
{
ClearDrawScreen() ;
// 画像を描画
DrawGraph( 0, 0, GrHandle, FALSE ) ;
// サイズを画面に描画
DrawFormatString( 0, 0, GetColor( 255,255,255 ), "W:%d H:%d", w, h ) ;
ScreenFlip() ;
}
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}
よろしければ ritaさんの環境でも上記のプログラムが正常に動作するか試してみていただけないでしょうか? m(_ _)m