- PR -

ActiveX.exeについて

投稿者投稿内容
りん
ベテラン
会議室デビュー日: 2005/11/28
投稿数: 51
投稿日時: 2006-05-13 00:19
いつもお世話になっております。

掲題の件についてどなたかご教示お願い致します。

VB6でActiveX.exeを作成し、Aモジュール、Bモジュールから
呼び出した場合に別プロセスにすることはできないのでしょうか?
VCのActiveX.exeだと出来たのですが・・・

以上、よろしくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-13 00:57
引用:

やすさんの書き込み (2006-05-13 00:19) より:

VB6でActiveX.exeを作成し、Aモジュール、Bモジュールから
呼び出した場合に別プロセスにすることはできないのでしょうか?


どうやって確認されたのでしょうか?
ActiveX DLL の場合はインプロセスなのでともかく、
ActiveX EXE なら普通に別プロセスのハズです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
りん
ベテラン
会議室デビュー日: 2005/11/28
投稿数: 51
投稿日時: 2006-05-13 18:31
引用:

じゃんぬねっとさんの書き込み (2006-05-13 00:57) より:
どうやって確認されたのでしょうか?
ActiveX DLL の場合はインプロセスなのでともかく、
ActiveX EXE なら普通に別プロセスのハズです。


じゃんぬねっとさん回答ありがとうございます。

確認は、タスクマネージャーのプロセスで確認を行いました。
ActiveX EXEのプロセス1つに対してたぶんアタッチしているので
そのEXEが強制終了などしてしまうと、Aモジュール、Bモジュール共に
COMの例外を起こしてしまいます。
VCで作成した場合は、ウィザードで作成されたソースを少し変更しないと
いけませんが、別プロセスにできるのでAモジュールによって、ActiveX EXEが
例外で落ちた場合でもBモジュールには影響が出ません。

以上、よろしくお願いいたします。
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-05-13 19:01
引用:

確認は、タスクマネージャーのプロセスで確認を行いました。
ActiveX EXEのプロセス1つに対してたぶんアタッチしているので


プロセスが1つしかないのであれば、まずVBプロジェクトを見てクラスがMultiUseになっているかを確認でしょうね。
りん
ベテラン
会議室デビュー日: 2005/11/28
投稿数: 51
投稿日時: 2006-05-15 09:00
引用:

まどかさんの書き込み (2006-05-13 19:01) より:
プロセスが1つしかないのであれば、まずVBプロジェクトを見てクラスがMultiUseになっているかを確認でしょうね。


まどかさんご回答ありがとうございます。
クラスの設定はMultiUseになっています。
基本的にActiveX EXEを作成したときに、意図的に変えなければ、MutltiUseだと
思うのですが・・・・
他に気になる箇所はないでしょうか?

以上、宜しくお願い致します。
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-05-15 09:05
例外の発生している箇所にもよりますが、まずは複数のインスタンスを作成するだけにしてどうなるか。
VCとVBで出来上がるものが異なりそれが原因だったら私はわかりません。

ところでAモジュール、Bモジュールって何?
またどのようにインスタンスを作成しているのでしょうか?

[ メッセージ編集済み 編集者: まどか 編集日時 2006-05-15 09:06 ]
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-05-15 09:32
引用:

やすさんの書き込み (2006-05-15 09:00) より:
クラスの設定はMultiUseになっています。
基本的にActiveX EXEを作成したときに、意図的に変えなければ、MutltiUseだと
思うのですが・・・・


だからじゃ無いのか?レファレンスを見ると、「MutltiUse=複数のクライアントでひとつのインスタンスを共有。SingleUse=クライアントごとにインスタンスを生成。」と読めるのだけど。SingleUseにしても駄目ですかね?
りん
ベテラン
会議室デビュー日: 2005/11/28
投稿数: 51
投稿日時: 2006-05-15 09:53
引用:

甕星さんの書き込み (2006-05-15 09:32) より:
だからじゃ無いのか?レファレンスを見ると、「MutltiUse=複数のクライアントでひとつのインスタンスを共有。SingleUse=クライアントごとにインスタンスを生成。」と読めるのだけど。SingleUseにしても駄目ですかね?


まどかさん、甕星さん回答ありがとうございます。

まどかさん>
Aモジュール、Bモジュールは作成したActiveX.EXEを呼び出す
テストドライバです。
インスタンス生成は、どちらも(A、B共)単純に参照設定で
ActiveX.EXEを参照し、オブジェクト宣言後にNewをしている
だけになります。

甕星さん>
SingleUseの設定でうまくいきました。この設定でオブジェクト生成時に
別々のプロセスで起動するようになりました。
ありがとうございました。


スキルアップ/キャリアアップ(JOB@IT)