古いCOMコントローラーから非常に古いサードパーティのソフトウェアドライバーまで、x86にコンパイルする必要のあるアプリケーションがあります。
他のアプリケーションがフォーカスを持っているときにフォームのモーダルダイアログボックスを呼び出すと(ステップスルーしているVisual Studioコードなど)、ダイアログボックスが親ウィンドウの後ろに表示されることに気付きました。
private string Locate(string filename) {
if (!File.Exists(filename)) {
using (OpenFileDialog dlg = new OpenFileDialog()) {
dlg.FileName = filename;
if (dlg.ShowDialog(this) == DialogResult.OK) {
return dlg.FileName;
}
}
}
return filename;
}
アプリケーションをx64としてコンパイルできますが、COMドライバーの読み込みに失敗し、アプリケーションが起動しなくなります。
他の誰かが(Visual Studio、.NET Framework、またはWindows 7)からこの動作に気づきましたか?そうでない場合は、他の場所のコードで何か厄介なことが起こっている必要があります。
それを「修正」する方法はありますか?