VBからVCのDLLのメソッドを参照するには「

解決


そんでんほうし  2006-05-02 19:55:13  No: 61643

以前FTP、HTTP転送を行うDLLをVCで作成しました。
それをVB側のアプリケーションで使用しています。
今回、機能追加により新しいメソッドを追加しました。
ところが以前からあるメソッドは参照できるのですが、
追加した新しいメソッドがVB側から参照できません。
追加した新しいメソッドをVB側から参照できるようにするには
どうしたらよいのでしょうか?


Blue  2006-05-02 20:03:03  No: 61644

メソッドって?普通の関数でしょうか?
どのようなエラーメッセージが出るのでしょうか?


そんでんほうし  2006-05-02 20:09:43  No: 61645

ご連絡ありがとうございます。
普通の関数です。
VC上ではコンパイルエラーなどはでません。
VB上でDLLを参照設定してオブジェクトブラウザで
確認すると機能追加したメソッド(関数)だけが
参照できません。
VB上でそのメソッドをcallする記述をすると
メソッド(関数)がないとのエラーが出ます。
以前のメソッドは使用でき、参照できるのですが、
追加したものだけ見れません。


Blue  2006-05-02 20:16:56  No: 61646

> VB上でDLLを参照設定して
ということは、VC側はタイプライブラリ(COM)を作成したんですね。
(ならばメソッドという表現は正しいです)

> VB上でDLLを参照設定してオブジェクトブラウザで
> 確認すると機能追加したメソッド(関数)だけが
> 参照できません。
ということは、登録的なことが上手くいっていないとか。
あまり詳しくないので力になれずすいません。


そんでんほうし  2006-05-02 20:44:24  No: 61647

タイプライブラリ(COM)とはなんですか?
私も使用したことがないので・・・。
以前のものは私が作成したものでないので。


Blue  2006-05-02 21:15:28  No: 61648

> タイプライブラリ(COM)とはなんですか?
COMとはComponent Object Modelの略。


そんでんほうし  2006-05-02 22:14:26  No: 61649

タイプライブラリーを使わずに拡張子「*.idl」のテーブルに追加しましたら認識するようになりました。  とりあえず、これで見て見ます。  普通はタイプライブラリを使って直すものでしょうか?


Blue  2006-05-02 22:22:31  No: 61650

多分、COMの場合ソースの変更があれば「*.idl」のファイルも変更しないと
つかえないということでしょう。

タイプライブラリーを使わずではなく、VCのプロジェクト自体が
COMを作成するようなプロジェクト(ATL COMなんたら)になっているんでしょう。
(タイプライブラリはツールの名前ではないです。)


そんでんほうし  2006-05-03 20:13:22  No: 61651

動作しましたが関数(メソッド)を追加するたびに「*.IDL」のソースファイルを書き換えてあげなければならないので何かの手続きで「*.IDL」を自動更新する方法があるものでしょうか?  初心者ですみません。


通りすがり  2006-05-04 05:27:20  No: 61652

ソースにじかにメソッド追加するんじゃなくて、
ClassViewからメソッドの追加をすればIDLも同時に書かれますよ


そんでんほうし  2006-05-05 21:51:49  No: 61653

ClassViewからメソッドの追加を
おこないましたがIDLは更新されませんでした。
やり方がわるいのでしょうか?
VC初心者


そんでんほうし  2006-05-05 23:00:12  No: 61654

やっぱり、IDLを強制的に
書き換えた影響で同期がとれない状況です。
新しい引数を追加したのですがVB側で
新しい引数を認知してくれない状況です。
ClassViewでも追加しても、IDLに
反映されず困っております。
なにか「*.LIB」ファイルと「*.DLL」の
同期が取れていない感じです。


んー  2006-05-06 01:17:14  No: 61655

>やり方がわるいのでしょうか?
どうやったのかもっと詳しく書かないと
読んでる方もわからんよ


そんでんほうし  2006-05-07 20:13:18  No: 61656

ClassViewからメソッドの
追加のやり方が悪く
「+」を開いてから「メソッドの追加」を
行わなかったようです。
すみませんでした。
「通りすがり」様のやり方が正解でした。
「*.H」、「*.CPP」、「*.IDL」に
メソッドが追加されました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加