QA@IT
«回答へ戻る

回答を投稿

http://msdn.microsoft.com/ja-jp/library/dt232c9t(v=vs.90).aspx

WINAPI や __stdcall など使われていません。
そもそも dllがそういう使い方ができるように作られていませんので、Declare Functionでは呼び出す事ができません。

作者のC#のサンプルのようにLoadLibrary, GetProcAddress といったWin32APIを経由して呼び出すしかないでしょうが、ポインタが絡んできているのでそれ相応の知識が必要ですので簡単に・・・とはいかないと思います(現在の知識では厳しいと思った方がいいでしょう)。

使いたい機能がライブラリのごく一部の機能だけであるなら、

  • Cでラッパを作る( 呼び出しを肩代わりしてくれる WINAPI付きのCライブラリを自作) CでDLLが書けるぐらいなら苦労していないと思いますので、あまり現実的ではないですね。
  • .NETでラッパを作る( COM オブジェクトなDLLを自作。VB.NETでも構わないと思います) C#が読めるなら、作者のC#でのサンプルを参考に作れますのでわりと現実的かと思います。

という手段もあります。

VB6にこだわる理由がないならばアプリケーションもろとも .NETで作るという手もあると思います。

http://msdn.microsoft.com/ja-jp/library/dt232c9t(v=vs.90).aspx

WINAPI や __stdcall など使われていません。
そもそも dllがそういう使い方ができるように作られていませんので、Declare Functionでは呼び出す事ができません。

作者のC#のサンプルのようにLoadLibrary, GetProcAddress といったWin32APIを経由して呼び出すしかないでしょうが、ポインタが絡んできているのでそれ相応の知識が必要ですので簡単に・・・とはいかないと思います(現在の知識では厳しいと思った方がいいでしょう)。


使いたい機能がライブラリのごく一部の機能だけであるなら、

* Cでラッパを作る( 呼び出しを肩代わりしてくれる WINAPI付きのCライブラリを自作)
  CでDLLが書けるぐらいなら苦労していないと思いますので、あまり現実的ではないですね。
* .NETでラッパを作る( COM オブジェクトなDLLを自作。VB.NETでも構わないと思います)
  C#が読めるなら、作者のC#でのサンプルを参考に作れますのでわりと現実的かと思います。

という手段もあります。

VB6にこだわる理由がないならばアプリケーションもろとも .NETで作るという手もあると思います。