tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル実行時エラー '48'
記事No12075
投稿日: 2021/05/18(Tue) 14:36
投稿者だい
お世話になります。

64bit で作成したDLLファイルあります。
win10  64bitの エクセル2010 vba よりDLLファイル(C:\test\test.dll)を
開こうとすると以下のエラーでます。

実行時エラー '48':
ファイルが見つかりません。 C:\test\test.dll

Declare PtrSafe Function test Lib "C:\test\test.dll" Alias "_test@32" (ByVal a As String, ByVal b As String, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByVal f As Double, ByVal g As Integer) As Integer

何か良い方法ありましたら教えてください。


[ツリー表示へ]
タイトルRe: 実行時エラー '48'
記事No12076
投稿日: 2021/05/18(Tue) 15:26
投稿者魔界の仮面弁士
ここは .NET 版の Visual Basic 向けの掲示板です。
VBA に関する質問は、お隣の VB6 向け掲示板をご利用ください。
http://hanatyan.sakura.ne.jp/vb60bbs/wforum.cgi


> 実行時エラー '48':
> ファイルが見つかりません。 C:\test\test.dll

このエラーは、DLL そのものが見つからない場合だけでなく、
その DLL が依存しているライブラリが不足している場合にも発生します。
(例:Visual C++ ランタイム等)
https://dixq.net/forum/viewtopic.php?t=17768

Dependency Walker を使うなどして、依存ファイルが揃っているか確認してみてください。
https://github.com/lucasg/Dependencies/
http://www.dependencywalker.com/


依存ファイルはあるけれどパスが揃っていない場合には、API を呼び出す直前に、
 ChDrive "C"
 ChDir "C:\test"
の 2 行を VBA 側で呼んでおくか、もしくはその依存ファイルの場所を
環境変数 PATH に含めておくことで改善されるケースもあります。

[ツリー表示へ]