引用:
> Footy2というテキストエディタを使おうと思って普通に
>
> Declear function GetVersionFooty()....
>
> っという風に普通に呼び出そうと思ってコードを書いていざコンパイルしたら、
> 「Footy2.DLLが見つかりません。」となってしまいます。
>
> ABのフォルダにも入れてますがだめ、Windowsフォルダに入れてもだめ、
> ABから、Footy2が使えないのでしょうか?
>
> 追記
> ちなみに、C言語のヘッダファイルを移植してあります。
> バージョン情報だけ取得する命令でも認識しません。
> いま、手元にソースがないのでちょっと公開できませんが...
ABのフォルダに入れてもWindowsフォルダに入れてもDLLの検索には引っかかりませんよ。
DLLはコンパイルした実行ファイル(EXE)のあるフォルダかWindowsディレクトリ下のSystemフォルダまたはSystem32フォルダ内に入れる必要があります。
開発しているソフトが再配布を考慮したものであれば、
実行ファイルのあるフォルダに同梱しておくのが良いと思います。
もし、DLLのあるフォルダと実行ファイルのあるフォルダを別にしたいときは
関数をGetProcAddress()を使って動的に読み込む方法もあります。
コード:
TypeDef FuncPtr_GetFooty2Ver = *Function() As Long
Dim hLib_Footy2 As HINSTANCE
hLib_Footy2=LoadLibrary("./DLL/footy2.dll")
Dim GetFooty2Ver As FuncPtr_GetFooty2Ver
GetFooty2Ver=GetProcAddress(hLib_Footy2,"GetFooty2Ver")
Dim Versione_Footy2 As Long
Versione_Footy2=GetFooty2Ver()
FreeLibrary(hLib_Footy2)
上記は実行ファイルのあるディレクトリ下にDLLフォルダを作成してその中に
Footy2.DLLをおいた場合です。