VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2006/08/16(Wed) 11:23
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe^3: プロセス間通信について

> その実行形式のプログラムを実行時にDLL作成用開発環境との関係はどうなるのでしょうか?

配置済みの DLL と、起動している DLL プロジェクトが一致するものであれば、
プロジェクト側が起動されると思います。(side-by-side モードで実行されない限りは)

たとえば、利用側が参照設定せずに利用している場合、ProgId すなわちプロジェクト名と
クラス名が完全に一致していれば、DLL開発環境側が実行されることになります。

あるいは利用側が参照設定しており、アーリーバインドで処理しようとしている場合には、
guid で判断されるため、バージョン間の互換性が重要になってくるかと思います。これは、
DLLプロジェクトのプロパティで、[コンポーネント]タブで設定される物の事です。


配置済みの DLL があるならば、それを OLEVIEW.EXE 等でチェックして、
そのクラスのCLSID を確認してみてください。
その上で、DLL プロジェクト起動時に作成されるレジストリのキーの、
  HKEY_CLASSES_ROOT\Project1.Class1\CLSID キーの値
が一致しているかどうか、および、
  HKEY_CLASSES_ROOT\CLSID\{……CLSID値……}\ キーの内容
が適切に書き換わっているかどうかを確認してみてください。


> 「ファイルが見つかりません」と怒られてしまいます。
ん…? それも奇妙ですね。
もしもDLL が見つからないなら、「ファイルが見つかりません」ではなく、

------------------------------------------------------
  実行時エラー '-2147024770 (8007007e)':
  オートメーション エラーです。
  指定されたモジュールが見つかりません。
------------------------------------------------------

というエラーが、オブジェクト生成時に表示されると思っていたのですが…。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -