以下のようなプログラムでテストしてみましたが、FileRead_read は 0 を返しました
#include "DxLib.h"
#include <malloc.h>
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int handle;
int size ;
void *buf ;
int ret ;
// ウインドウモードで起動
ChangeWindowMode( TRUE );
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
// 同期でファイルを開く
handle = FileRead_open( "Test1.bmp" ) ;
// ファイルのサイズを取得してメモリを確保
size = FileRead_size( "Test1.bmp" ) ;
buf = malloc( size ) ;
// 非同期で読み込み
SetUseASyncLoadFlag( TRUE ) ;
ret = FileRead_read( buf, size, handle ) ;
SetUseASyncLoadFlag( FALSE ) ;
// 読み込み終了待ち
while( ProcessMessage() == 0 && GetASyncLoadNum() != 0 ){}
// ファイルを閉じる
FileRead_close( handle ) ;
// キー入力待ち
DrawFormatString( 0, 0, GetColor( 255,255,255 ), "FileRead_read の戻り値は %d", ret ) ;
WaitKey() ;
// DXライブラリの後始末
DxLib_End();
// ソフトの終了
return 0;
}
SetUseASyncLoadFlag( TRUE ) ; を FileRead_open の前で呼んでいるということはないでしょうか?
その場合ファイルを開く処理も非同期になりますので、非同期のファイルを開く処理が終わる前に
FileRead_read を呼ぶと -1 が返ってきます