• ベストアンサー

VSのDLLをVB6で利用

Visual Studio で作成したDLLをVB6に取り込んで利用しようとしていますが、 うまくいきません。 参照利用すること自体は可能なのでしょうか?

  • ENTRE
  • お礼率0% (16/2523)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

どこがうまくいかないのか分からないので陥りやすい注意点を。 ・VSからはCOMクラスとして作成する必要があります。(クラス属性の変更、GUIDの設置、プロジェクトをCOM参照にするなどなど。クラスはCOMクラス用のテンプレがあります) ・レジストリへの登録はRegAsm.exeで。(.NET Frameworkのバージョンごとにあるので開発と同じバージョンを使います。RegSvr32.exeでは登録できません。) ・オーバーロード、引数付きコンストラクタ等、COMにない仕様のクラス・メンバーは使えません。メソッド等の変数の型にも気をつける必要があります。特に配列は少しややこしかった記憶が・・・。 そのほか「VB.NET COMクラス」で検索するといろいろ見つかります。

その他の回答 (1)

  • uchan777
  • ベストアンサー率0% (0/2)
回答No.2

VSも同じ6.0でしょうか? 基本的にはVSで作成したDLLもVB6.0から呼ぶことはできます。 APIなどを利用するようにDeclare宣言をすれば使用できるはずですよ。 例)GetModuleFileNameを使用するとき Declare Function GetModuleFileName Lib "kernel32.dll" _ Alias "GetModuleFileNameA" _ (ByVal hModule As Long, _ ByVal lpFileName As String, _ ByVal nSize As Long) As Long 具体的にどのようなインタフェースでDLLを使用してどのように上手くいかないか書いてもらえればアドバイスできると思うのですが・・・

関連するQ&A

  • VBAで呼び出したVBのDLLのデバッグ方法

    VB2010で、COM相互運用機能を使って作成したDLLを VBAから呼び出すことはできるのですが この状態でこのDLLをデバッグすることはできないでしょうか。 本来ならば、DLLをデバッグするテストプログラムを VB2010のVB.NETのWindowsフォームアプリケーションか ConsoleApplication1で作成して、 同じソリューションの中に DLLとテストプログラムのプロジェクトを配置して 参照の追加でDLLを参照設定して 両者をデバッグをすると思われますが、 テストプログラムを作るのがかなり大変なのと、 今回作成したDLLは、元々はVBAの中のひとつのプロシージャ―で、 事情があって、このプロシージャ―だけをVBのDLLにしたものです。 このプロシージャ―は元々はVBAの中で正しく動作していたものです。 VBに書き直した時に何らかの不具合が起きていると思われます。 テストプログラムを作らずに、既存のVBAから呼び出して、 DLLの部分の動作だけを(できればVB2010で)デバッグできないでしょうか。 よろしくお願いします。 (WindowsXP SP3 , Excel2003のVBA , Visual Studio 2010)

  • VB 2008 DLL作成の方法

    当方Visual Studio 2008のVB、C++で開発をしています。 VS2008のVBでクラスライブラリとして作成し、ビルドをしてDLLを作成したのですが、 対となるLIBファイルがどこにも見当たりませんでした。 VS6.0のVBではLIBファイルも作成されました。 VS2008のVBでLIBファイルを作成する方法をご存知の方いらっしゃいましたら教えてください。 LIBファイルを使用する理由は、VBで作成したDLLをC++に組み込むときにリンクさせる為です。 ※今回はLoadLibrary関数を使わず、LIBファイルを使おうと考えています 以上、宜しくお願い致します。

  • VS2010でC#のDLLを作成する手順

    Visual Studio 2010でVisual C#のコードのDLLを作成したいのですが 簡単なコード例で具体的な操作手順を教えていただけないでしょうか。 (Microsoft Visual Studio 2010、OS WindowXP) Visual C++でDLLを作成する手順については 「チュートリアル: ダイナミック リンク ライブラリの作成と使用 (C++)Visual Studio 2010 」 <http://msdn.microsoft.com/ja-jp/library/ms235636(v=vs.100).aspx> に詳しく手順が記載されていましたが、このVisual C#版が見たいのですが見当たりませんでした。 よろしくお願いします。

  • Visual Studio .NET C# でDLLを作成し、VB.N

    Visual Studio .NET C# でDLLを作成し、VB.NETで呼び出す初心者向けのサンプルについて  現在、Visusal Studio .NET C#でDLLを作成して、それを、VisualBasic.NETのWindowsアプリケーションで呼び出す簡単なプログラムを作成したいと思っているのですが、書籍をあたってもなかなか参考になる書籍がみつけられなく、サンプルのサイト又は、自分でそのようなプログラムを作成している人にぜひご教授願いたく、質問させていただきました。当方、初心者ですので、何卒宜しくお願いいたします。

  • VBから参照できないCのDLLを使用する方法

    Cで作成されたDLLがあるのですが、VBから参照設定しても「指定されたファイルへの参照は登録できません。」と怒られます。 そのようなDLLをどうしてもVBから使用したい場合はどうすれば良いでしょうか? 直接は無理だとしても、間に何かをかましてできると思うのですが、良い方法があれば教えてください。 ちなみに VB6 です。 よろしくお願いします。

  • VB2010で作成したdllからtlbが作れない

    VB.NETで作成したDLLをExcelのVBAから呼び出すということをやっています。 VB2007のときはよかったのですが、VB2010にしてからうまくいかなくなりました。 具体的には、コンパイルしてClassLibrary1.dllファイルを作成してから C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe ClassLibrary1.dll /tlb:ClassLibrary1.tlb /codebase を実行すると、 ClassLibrary1.dllは有効な.NETアセンブリではないため、読み込めませんでした。 となります。 ClassLibrary1の「アセンブリをCOM参照可能にする」にはチェックを入れています。 おわかりの方がいらっしゃいましたら、どうぞよろしくお願いいたします。

  • VisualStudio2010 DLL作成方法

    VisualStudio2010を使っています(初心者)。 VBで作成していたのですが、一部VC++を使わなければいけなくなりました。VC++はDLLで作成して、VBの方でDLLを参照して処理を行いたいと考えています。 そこで試しに作成したVC++で作成したDLLをVBで参照しようとしたらERRORになってしまい上手にできませんでした。※ERRORの内容までは詳しく覚えてません。VC++のDLLを作成~VBのDLLの参照までを説明しているサイトなどありましたら教えて下さい。 よろしくお願いします。

  • VB6から参照可能なDLLの作成

    VB6から参照可能なDLLの作成を参考書をみながらしましたが、上手くいかない為質問させていただきます。 開発環境VC++ 2005 C++ CTEST.dll #include <windows.h> __declspec (dllexport) int __stdcall test(int i) { i = i + 5; return i; } .defファイル LIBRARY "test" DESCRIPTION EXPORTS A 以上でDLLを作成し、VB6側で Private Declare test Lib "CTEST.dll" (ByVal i as integer) で宣言しても「エラー53 ファイルがみつかりません」と表示されます。「参照の追加」から参照しようとしても「このファイルは参照できません。」をエラーがでてしまいます。 直すべき点はどの部分なのでしょうか? ご教示ねがいます。

  • VB.NETで、DLLを頂いたんですが・・

    VB.NETでプログラムを作成しているのですが、 DLLを頂きました。 このDLLをプログラムで使いたいのですがよくわかりません。 (1)DLLは実行ファイルにおけばいいんですよね? (2)DLLを参照しろっていう設定は必要ですか? (3)DLLには、プロパティ、メソッド、イベントとあるみたいなんですが、これらを宣言しないといけないと思うのですがどうやればいいのでしょうか? (4)下のような資料もらったのですがVBcnvというのが定義されていないとエラーがでるのですがどうやって宣言するのでしょう? private <任意名> as VBcnv (5)libファイルも一緒にあったのですが、どういう風に使えばいいのでしょうか?何につかうのでしょうか? すいません、どなたかお助けを~

  • C++.NETで作ったDLLをVB6で使用するには

    Visual Studio .NET のC++で作られたDLLをVisual  Basic 6.0 で使用することはできますか。    

専門家に質問してみよう