自作ランチャーからの起動などでカレントディレクトリがexeファイルのあるディレクトリではなかった場合に
素材が読み込めず、おかしくなってしまうことがあります。
でも、ゲームのプログラム開始時にこの関数を呼び出しておけば、
カレントディレクトリをexeファイルのあるディレクトリにしてくれるので、そのような心配はありません。
#include <windows.h>
BOOL chdirToExeDir(void) {
wchar_t path[65536];
int i,j,len;
if(GetModuleFileNameW(NULL,path,sizeof(path))==0)return FALSE;
j=len=lstrlenW(path);
for(i=0;i<len;i++) {
if(path[i]==L'\\')j=i;
}
if(j>0 && (path[j-1]==L':' || path[j-1]==L'\\'))j++;
path[j]=L'\0';
return SetCurrentDirectoryW(path);
}
プログラムの開始時、初期化の一番最初あたりでchdirToExeDir();として呼び出します。
カレントディレクトリの変更に成功すれば真が、失敗すれば偽が返るはずです。
使用、改造、再配布、商用利用などは自由、報告不要です。
ただし、これを使用した結果発生した損害などについては、このコードが間違っていた場合も含め、一切責任を負いません。
自己責任でお願いします。