我正在尝试使用命令
在VB6中加载DLL Private Declare Function myFuncLib "myDLL.dll" (ByVal file_name_in As String, _
ByVal file_name_out As String) As Long
但是一旦我运行该程序,它会弹出一个文本框为“:”运行时错误:53找不到:myDLL.dll“
DLL放在项目的同一目录中。
如果我将myDLL.dll放在system32文件夹中,它可以工作,但我不想这样做,我想将dll放在项目的同一个文件夹中。
有没有办法解决这个问题?
由于
答案 0 :(得分:7)
我的通灵能力预测你是从VB6 IDE运行的 - 因为内置的EXE 将在app目录中找到DLL(与exe相同的目录)。
Chdrive App.Path: Chdir App.Path
(航空代码)C:\Program Files\Microsoft Visual Studio\VB98\
您可以将带有内置EXE的DLL放在用户计算机/生产机器上。答案 1 :(得分:0)
您需要先注册您的DLL ..
Shell“regsvr32.exe / s”&路径
其中“path”是DLL的路径..如果DLL放在同一目录中,则可以设置:
path = App.path& “/myDLL.dll”
答案 2 :(得分:0)
使用“取决于”
解决DLL中存在不满意的依赖关系,但显然它是在第一个DLL入口点上返回错误。
谢谢大家
答案 3 :(得分:0)
声明对Kernel32.lib的引用SetDllDirectory函数:
Private Declare Function SetDllDirectory Lib "Kernel32" Alias "SetDllDirectoryA" (ByVal path As String) As Long
然后按如下方式设置Dll目录:
SetDllDirectory App.path
答案 4 :(得分:0)
正如Beppe在their answer中所说,使用
Depends yourdll.dll
如果您使用其他DLLS?在他们的名字旁边,这意味着他们失踪了 通常它将是Microsoft C ++ Debug dll之一,即MSVCR120D.DLL