テスト環境構築メモ


環境は無料になったVirtualPC
べつにvmwareでもよかったけど

問題のwindows2000をインストール


BackOfficeパッケージからインストール
だが、しかし、CDブートしないのでひと工夫しなければならない

  1. BOOTDISKフォルダのブートフロッピーイメージ4枚分を順番にマウントする
  2. 物理CDドライブをマウントしてBackOfficeCDからwindows2000インストーラを起動
  3. あとは普通に手順どおり

windows2000でasc3をテスト


D.Kさんの報告通りAccessViolationが出てしまった
むむむ...ttfか?ttfなのか?


今日はここまで
まさか非力なマシンでのインストール作業がここまで厳しいものとは...
なんてったって、バッテリーリコール以前のDELLノートだもんなぁ

コメント欄でg:gamehell:id:kenmoさんに教えてもらった


まさにそれ!と思って入れてみたんだけど

lib\SDL.lib(SDL_getenv)
 Error 42: Symbol Undefined _SDL_getenv
--- errorlevel 1
続行するには何かキーを押してください . . .


ぬーん、まいった、なんかSDL内にもgetenvがあって
SDL.libが古いせいかそんなのねーよって言われてるようだ
新しいのってどこかにあるんでしょうか?
あ、ちなみに教えてもらったのをSDLが介在しない状態で実行したら環境変数自体はとれました。

解決


yaneSDK4D見てみました
どうやらgetenvを使わないでwin32APIのGetWindowsDirectoryAで
システムフォルダを取得しているみたいです
早速盛り込み
あと、まずカレントディレクトリからファイルを探すようにしてみました

char[] path;
// カレントフォルダにファイルがないか調べる
path = std.string.toString(fileName);
// 指定フォントの有無
if (!exists(path)) {
	auto char[] fontpath = new char[255];
	int l = GetWindowsDirectoryA(fontpath.ptr, 255);
	fontpath.length = l;
	// フォルダ取得に失敗
	if (l == 0) throw new Error("system directory not found.");
	// フォントフォルダを結合してパスを作成
	path = fontpath ~ "\\fonts\\" ~ std.string.toString(fileName);
	if (!exists(path)) throw new Error("font file not found.");
}
_ttfFont[fontName] = TTF_OpenFont(toStringz(path), pointSize);


これ、例外投げちゃうんだけど
この作りが果たしていいものなのかはちょっと疑問です
javaスキーな人はこれでいいかもしんないけどね
まぁその他のつくりもちゃちなのでとりあえず例外投げまくっとくんで
使う人はがんばってcatchしればいいんじゃないかな