社本様

社本様

ご返答ありがとうございます。

> Appウィザードで作成したままのオブジェクトであれば、
> ファイルモニカが使えると思います。
> GetObject()をする時に、ファイル名を渡せばよいかと思います。
GetObjectメソッドは以前から気になってはいるのですが、いつも
以下のようなアラートが表示されてしまいます。

'System.Exception' のハンドルされていない例外がmicrosoft.visualbasic.dll で発生しました。
追加情報 : ActiveX コンポーネントを作成できません。

次のような流れでアプリを作っているのですが、何か問題があるのでしょうか。

1.VC7のMFCでAMTestというプロジェクトを作成する。
2.ウィザードで拡張子を例えば、 mat (MFC Automation Test)とする。
3.ProgIDを”AMTest”に変える
4.オートメーションにチェックを入れる。
5.クラスビューのIAMTestインターフォースに引数BSTRの
 GetMessageメソッドを追加する
6.AMTestDoc.cppを開いて、GetMessageメソッド内に
 『strResult = "HelloWorld";』と追加する
7.プロジェクトをビルドする
 (FilePathはc:\AMTest\AMTest\Debug\AMTest.exe とする)
8.AMTest.exeを立ち上げ ファイル/名前をつけて保存 で
 c:\Sample.matとして保存
9.VB.NETでAMCliantTestというプロジェクトを作る
10.次のようなプログラムを作り、VBから呼び出せるかを確かめる
 (動作確認済み)
 Dim obj As Object
 obj = CreateObject("AMTest")
 Dim msg As String = obj.GetMessage()
11.GetObjectメソッドのためのサンプルを2つ作成
 (A,Bともに上記のアラートが表示される)
 A.
  Dim obj As Object
  obj = GetObject("c:\AMTest\AMTest\Debug\AMTest.exe")
  Dim msg As String = obj.GetMessage()
 B.
  Dim obj As Object
  obj = GetObject("c:\Sample.mat")
  Dim msg As String = obj.GetMessage()