VC++6.0からVB.NETで作成した関数を呼ぶことができますか?


VC++6.0で作成したライブラリでしか動作を保証しない言語があります。その言語から.NETframeworkの機能を使用したいという状況です。

具体的には、VB.NET(Visual Basic 2005 Express Edition)でクラスライブラリ(AAA.dll)を作成し、BBBというModuleにCCCというFunctionをひとつ作成しました。

そのFunctionをVC++6.0で作成したプログラムから呼び出すことは可能でしょうか?また、可能な場合はどのような手順で呼び出すことができるのでしょうか?

■VB6.0でDLLを作成した場合は簡単にできる
DLLのファイル名とFunction名さえ指定すればVC++6.0よりLoadLibrary、GetProcAddress関数を使用して呼び出せる。

■VB.NETでDLLを作成した場合は・・・?
DLLのファイル名+Module名+Function名という構成になってしまい、従来のLoadLibrary、GetProcAddress関数ではModule名が指定できないように思われるのですが・・・どうなんでしょう。

ご存知の方いらっしゃいましたらご教授お願いいたしますm(_ _)m

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/08/25 09:37:03
  • 終了:2006/09/01 09:40:02

回答(3件)

id:kurukuru-neko No.1

kurukuru-neko回答回数1844ベストアンサー獲得回数1552006/08/25 11:23:08

ポイント27pt

COM経由でないと呼び出せません。

http://www.sev.or.jp/ijupiter/world/dc_interrop/dotnet_com_i...

id:tabira

タイプライブラリを作成すればよいのですね。

ありがとうございました。

2006/08/30 09:10:08
id:kurukuru-neko No.2

kurukuru-neko回答回数1844ベストアンサー獲得回数1552006/08/25 20:38:36

ポイント27pt

VB6.0でDLLは、のネイティブ・コードです。

VB.NETのDLLはMSIL(Microsoft Intermediate Language)

と呼ばれる中間コードを出力します。

実行するコードがないのでLoadLibrary、GetProcAddress

で取り出して実行できるないのでよびだし不可能。

http://www.atmarkit.co.jp/fdotnet/vbcheer/vbcheer08/vbcheer0...

https://www.microsoft.com/japan/msdn/vbasic/techinfo/upgrade...

http://www.microsoft.com/japan/msdn/vs/vc/vcconMixedDLLLoadi...

id:tabira

非常に参考になりました。

ありがとうございます。

2006/08/30 09:25:44
id:freemann No.3

freemann回答回数315ベストアンサー獲得回数502006/08/27 01:42:08

ポイント26pt

まったくの推論でお話します。

VC++.NETでは、マネージコードとアンマネージコードの両方を使えるので、VC++.NETでアンマネージコードでVB.NETのDLLを呼び出し、そのVC++.NETのアンマネージコードのメソッドをVC++6.0で呼び出すというのはどうでしょうか?

はずしてたらすみません。

http://q.hatena.ne.jp/1156466222

id:tabira

いいヒントをいただきました。

この方法も含めて検討します。

ありがとうございました。

2006/08/30 09:26:37

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません