DLLの参照場所

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
MSXマスター

DLLの参照場所

#1 投稿記事 by MSXマスター »

初めて投稿します。教えてください。

active basic はversion 5.0.0.5です。Win10 64bit

DeclareでDLLを読み込もうと"C:\test\HOGE_HOGE_HOGE.DLL"にしたら、
(1)「DLL名が長すぎます(拡張子を含め、16文字以下にして下さい)。」
と怒られました。

C:\Windows\System32とかを読んでいるのかと思って、そこにDLLを
コピーしても
(2)「DLLファイル "HOGE_HOGE_HOGE.DLL" が見つかりません。」
とまたもや怒られました。

デフォルト値で「参照フォルダを追加・変更できるかな」と調べてたんですが、
それもどこだか分からず質問しました。
たかせ
記事: 215
登録日時: 2006年2月05日(日) 17:10
お住まい: 東京都

Re: DLLの参照場所

#2 投稿記事 by たかせ »

①出来ればDLL定義部分とDLLを呼び出し部分を記載して下さい。
②確認したいのですがDLLを呼び出すプログラムは32ビットモードまたは64ビットモードどちらでコンパイルされましたか?

よろしくお願いいたします。
MSXマスター

Re: Re: DLLの参照場所

#3 投稿記事 by MSXマスター »

たかせ様へ
①「Declare sub 関数名 Lib "c:\test\hoge_hoge_hoge.dll" ()」
 の様な感じで呼び出しました。
②32ビットでコンパイルしました。

ちなみになんですが、私、Cは読める程度でガリガリ書けませんが、
DLLは作れるので「hoge_hoge_hoge.dll」部分を短い名前に
すれば呼び出せました。DLLや呼び出す関数名にミスはないです。

「C:\Windows\SysWOW64」にもコピーしてみましたが、
PATHを指定すれば、「長い」と怒られるし
PATHを省略すれば、「見つかりません」と怒られます。

最終的には、短い名前でDLLを作成すればOKですが、後学の為に
(A)PATH部分を「どこかで設定できるのかな」
(B)PATH省略時は、「デフォルトでどこを見に行ってるんだろう」
と言う感じです。

説明が下手ですいません。お忙しいところ宜しくお願いします。
MSXマスター

Re: Re: Re: DLLの参照場所

#4 投稿記事 by MSXマスター »

一応、自己解決できました。

(イ)「Win64」でデバッグ・ビルドしましたら
  「C:\Windows\System32」を呼びに行ってました。

(ロ)「Win32」でデバッグ・ビルドだと
  どこを呼びに行っているか不明状態でした。

要は、64bit機なら「32bitでビルドしちゃダメよ。」って事ですね。
疑問は残りますが、32bitのDLLの場合は短い名前で作る様にします。

たかせ様、皆様ありがとうございました。
返信する