人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: tabira
●カテゴリ:コンピュータ
✍キーワード:.NET AAA CCC DLL EXPRESS
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kurukuru-neko
●27ポイント

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

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

◎質問者からの返答

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

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


2 ● kurukuru-neko
●27ポイント

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...

◎質問者からの返答

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

ありがとうございます。


3 ● freemann
●26ポイント

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

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

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

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

◎質問者からの返答

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ