当用vb引用dll文件时,出现毛病了
Public Declare Function Sign Lib "pkicom32.dll" (ByVal p12FileName As String, ByVal p12Password As String, ByVal data As String, ByVal dataLen As Long, ByRef signedData As String, ByRef signedDataqLen As Long) As Long
程序如下:
Private Sub Command1_Click()
Dim a As Long
Text1.Text = Sign("Client.pfx", "111111", "1010101001", 10, Text1.Text, a)
End Sub
运行时,系统说“实时错误‘53’:文件未找到:pkicom32.dll”
而pkicom32.dll已经保存在程序所在目录了,怎样才能顺利调用?
希望大虾们指教!
问题点数:30、回复次数:10Top
1 楼clear_zero(clear_zero)回复于 2006-03-18 05:36:06 得分 10
这个dll注册了么?需要注册一下的
regsvr32.exe
Top
2 楼jobs002(Oh! Office)回复于 2006-03-18 08:17:38 得分 0
不会是没有引用吧,regsvr32 文件所在路径Top
3 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-18 10:53:07 得分 20
不是注册的问题,应该是文件路径的问题,你可以把那个Dll文件放到系统目录下
如果一定要放在当前目录下,那么得改一下工程文件(.vbp):用记事本打开.vbp文件,在倒数的后面几行里,找到MaxNumberOfThreads=1,在它后面添加上:DebugStartupOption=0
改后的文件内容如下:
......
ThreadPerObject=0
MaxNumberOfThreads=1
DebugStartupOption=0
[MS Transaction Server]
AutoRefresh=1Top
4 楼cdwq88(~学习~)回复于 2006-03-18 11:15:20 得分 0
标准DLL不需要引用,应该是路径问题,只有在系统目录下或当前目录下才可以直接
Public Declare Function Sign Lib "pkicom32.dll" (ByVal p12FileName As String, ByVal p12Password As String, ByVal data As String, ByVal dataLen As Long, ByRef signedData As String, ByRef signedDataqLen As Long) As Long
否则请在"pkicom32.dll"前加上路径.Top
5 楼tztz520(午夜逛街)回复于 2006-03-18 11:16:40 得分 0
生成EXE再试试看Top
6 楼cdwq88(~学习~)回复于 2006-03-18 11:22:10 得分 0
或者pkicom32.dll文件不存在.Top
7 楼xbottle(xbottle)回复于 2006-03-18 15:18:17 得分 0
1
DebugStartupOption=0加上也没用,这边文章我看过
2
pkicom32.dll肯定存在,
windows\system
windows\system32
当前目录
exe所在目录
我都复制了这个文件
3
生成EXE也没用
4
写上pkicom32.dll的绝对路径还是没用
5
我没有用引用,直接在模块中声明的
怎么回事啊Top
8 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-18 15:34:32 得分 0
估计pkicom32.dll文件有问题Top
9 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-18 20:59:21 得分 0
用depends看看它是否引用了别的dll,如果是,那么把那个dll找出来,如果它是Active Dll,把它注册一下Top
10 楼cdwq88(~学习~)回复于 2006-03-20 14:13:02 得分 0
faysky2() 说得有道理,是否引用了其他的DLL文件。Top




