タイトル : Re: VB6のフォントのコモンダイアログが開かずエラー 投稿日 : 2021/11/19(Fri) 19:23 投稿者 : 魔界の仮面弁士
> 以下のコードでフォントのコモンダイアログを開けていたのですが、 VB2 を彷彿とさせるコードですね…。 > cdgBox.Action = 4 Action プロパティは、16bit 版当時のカスタムコントール版の コモンダイアログで使われていた古い記述です。 現在は非推奨となっていますので、.Action = 4 という「プロパティへの代入操作」の代わりに、 「.ShowFont メソッドによる呼び出し」を使う事が望ましいです。 > 以下のコードでフォントのコモンダイアログを開けていたのですが、 関係あるかは不明ですが、久しぶりに手元の仮想マシン(Win7x86)上の VB6 を起動して、 [F2] のオブジェクト ブラウザから [MSComDlg] を選択したところ 100% の確率で開発環境がクラッシュする状況に陥っていました。orz ※OLEAUT32.DLL / 0xC0000005: Access Violation > デバッグを行い、Actionプロパティへ設定するタイミングで実行時エラーが発生し、 > Err.Numberが32768となることまでは確認できています。 エラー発生時の Err.Source と Err.Description は調べられますか? エラー定数(MSComDlg.ErrorConstants)で値が近いのは、 | -32768 : cdlDialogFailure | 32763 : cdlNoInstance ぐらいですね。32768 を示す定数は見つけられませんでした。 あとは、MSComDlg.FileOpenConstants に | 32768 : cdlOFNNoReadOnlyReturn というのがありましたが、これは流石に関係無さそう。 > 32768の意味合いが分からず、回避策がわからない状況です。 > ネットで調べてみましたが、有用な情報は見当たりませんでした。 同じ事象に悩んでいる人は、20年以上前から居たみたいですね…。 hhttps://groups.google.com/g/comp.lang.basic.visual.misc/c/7uAexJa8zhA/m/BcbXUl3CGmYJ これといった回避策は発見できていませんが、たとえば 「Action プロパティを使うべきではない」という回答が付いている物がありました。 (やってみます、という返信があったものの、その後の結果報告なし) あとは特定バージョンの OLEAUT32.DLL との組み合わせによる障害(いわゆる DLL Hell)もあったようです。 後者の DLL Hell の方は、Microsoft Knowlegebase の Q214845 を参照と 書いてありましたが…これはどうやら、後の KB214845 を指しているようです。 Win95〜Win98SE 用の資料なので、今となっては役には立ちそうにない KB ですが。 |