アプリ版:「スタンプのみでお礼する」機能のリリースについて

CADのVBA(6.0)ですが、DLLが見つからないエラーが出ます
' こっちはエラーが出ない
Public Declare Function SearchVBApath Lib _
"C:\Program Files\AppliTool\VB\DDDD.dll" (ByVal env As String, ByVal s As String) As Integer
'こっちだとエラーが出る
Public Declare Function SearchVBApath Lib "DDDD.dll" (ByVal env As String, ByVal s As String)    As Integer
VBAプロジェクトファイルとDLLは同じフォルダにおいてあります
上記のようにフルパスだとエラーが出ないのですがDLL名だけだとこの関数のところでエラーがでます
このDLL関数宣言行の前の方には他のDLL関数も同じようにパス省略で記述しているのですがそちらにはエラーが出ません
どなたかヒント下さい、よろしくお願いします。

A 回答 (2件)

AutoCAD でしょうか、それとも VBA が組み込まれた別の CAD 製品でしょうかね。


そっち方面には詳しくないのですが、例えば Excel VBA の場合もデーター ファイルと DLL を同じ場所に置いてファイル名だけ指定しても NG です。
Excel VBA で言う場合のカレント フォルダーはオプションで設定する "既定のファイルの場所" (Excel 2007 の場合) です。
MsgBox CurDir
でカレント フォルダーがどこなのか確認できます。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr; …
    • good
    • 0
この回答へのお礼

temtemomai さん
piyo2000 さん
回答ありがとうございました、
申し訳ありません、やはりこれだと!いう解決ヒントにはなりませんでした
質問に書きましたが、宣言部には同じDLL内の他の関数も羅列しているのですが
この関数だけがエラーを出すのです
最初はフルパス書いていたのですがソースとDLLを同じ所に置けば
見つけるのを確認してパスを消していったらこんなことになってしまいました。

お礼日時:2011/12/07 10:25

>VBAプロジェクトファイルとDLLは同じフォルダにおいてあります



デバッガ(IDE上)での話ですよね?
この場合、カレントはVB6.exeのインストールパスとなるので、見つからないのだと思います。(プロジェクトファイルは関係なかったはず)

試しに("DDDD.dll"で)コンパイルしてexeにし、exeとDLLを同じパスに置いて実行してみてください。動くと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!