C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 123 を表示中)
■73604 / )  Re[7]: VB6のインストーラ
□投稿者/ さいとお (4回)-(2014/10/15(Wed) 19:04:31)
No73601 (魔界の仮面弁士 さん) に返信
> ■No73600 (とっちゃん さん) に追記
>>OCXを呼び出すと固まる。。。の部分が解決するかどうかは分かりませんよ。
>
> もしも Comdlg32.ocx の配置だけの問題なら、API (GetOpenFileName など)を
> 直接呼び出すようなラッパークラスを用意し、それを ocx がわりに
> 利用するようにしてみては如何でしょう。API 呼び出しでもフリーズを回避できない場合は
> OCX の配布方法を模索したところで、問題を解決しない可能性が高そうです。

いろいろと情報ありがとうございます。
OCXの配布方法を模索しても、問題を解決しない可能性が高いと判断しました。

Win7(64bit版)で試行した内容を列挙します。

1."KB2918614" を削除して、OSをリブートする。
2.Visual Studio Installer 1.1 で作成したインストーラで、 VB6アプリAをセットアップ。
  「ファイルを開く」コモンダイアログは正常に表示されたため、基本動作OKと判断した。
3.OSを終了する。このとき "KB2918614" がインストールされる。
4.OSを立ち上げなおし、Visual Studio 2008 で作成したインストーラで、VB6アプリBをセットアップ。
  OCXの登録は VB6アプリA で行われているはずなのに、コモンダイアログの呼び出しで固まる。
  (コモンダイアログが表示されない。10秒くらいでメッセージ「VB6アプリBは応答していません
   プログラムを閉じると、情報が失われる可能性があります。」が表示される。)
5.エクスプローラを使い、VB6アプリB の実行ファイル・設定ファイルなどを VB6アプリA の
  セットアップ先にコピーし、VB6アプリA のセットアップ先フォルダから VB6アプリB を起動する。
  「ファイルを開く」コモンダイアログは正常に表示された。

OCX の登録は VB6アプリA のセットアップで完了しているはずですから、セットアップ先の
VB6アプリB が「ファイルを開く」コモンダイアログを表示できないのは、別の理由があると
考えます。しかし、やるべき作業がわからないため、ギブアップになりそうです。


補足:
別の VB6アプリC では、「ファイルを開く」コモンダイアログを表示できず
表示した後にキャンセルボタンを押したような動作になっていました。
「表示しようとして固まる」か「表示できず、キャンセルボタンを押したような
動作になる」のは、VB6でのコモンダイアログの使い方依存みたいです。

返信 編集キー/


管理者用

- Child Tree -