軌道計算プログラムの公開版が完成直前に大問題発覚。Microsoft Visual C++.NETで開発すると(MFCを使うと)、Windows 98でファイルを開くためのダイアログボックスが表示されないのだ。Windows 2000でファイルアクセス機能の拡張に伴ってOPENFILENAME構造体のサイズを大きくしたのが関係していると言うことはすぐにわかったが簡単な対策が思いつかず、結局大格闘の末、下のようなプログラムにすると動作してくれた。MFCのどこかにバグがありそうだ。
memset(pPathName, 0, _MAX_PATH); memset(&ofn, 0, sizeof(OPENFILENAME)); ofn.lStructSize = 76; // sizeof(OPENFILENAME)にすると // Windows 98でダイアログボックス // が開かない ofn.hwndOwner = hWnd; ofn.lpstrFilter = "(*.obs)*.obs(*.txt)*.txt(*.*)*.*"; ofn.nFilterIndex = 1; ofn.lpstrInitialDir = pApp->m_szObsFolder; ofn.lpstrFile = pPathName; ofn.nMaxFile = _MAX_PATH; ofn.lpstrTitle= szTitle; ofn.Flags = OFN_FILEMUSTEXIST; ofn.lpstrDefExt = "obs"; if (::GetOpenFileName(&ofn)) ret = OK; else ret = NG;
これでいよいよ一般公開かな~。
高知県ランキング
上のバナーをポチッと押していただくと著者が元気になりますのでよろしくお願いします。
静岡大学人工衛星STARSプロジェクトを技術面で応援しています。芸西天文台(高知県立芸西天文学習館)で天体観測。小惑星2個発見。一般公開では星空案内も。彗星軌道計算ソフトOrbitLife公開中。流星自動観測/ラズパイ/電子工作/2アマ/PENTAX/ドローン。MPC Obs Code D70.