VB调用dll出错

PublicDeclareFunctionGetHardwareIDLib"HardwareID.DLL"(ByValHDDAsBoolean,ByValNICAsBoo... Public Declare Function GetHardwareID Lib "HardwareID.DLL" (ByVal HDD As Boolean, ByVal NIC As Boolean, ByVal CPU As Boolean, ByVal BIOS As Boolean, ByVal RegCode As String) As String
Public Declare Function GetHardwareIDWithAppID Lib "HardwareID.DLL" (ByVal AppID As String, ByVal HDD As Boolean, ByVal NIC As Boolean, ByVal CPU As Boolean, ByVal BIOS As Boolean, ByVal RegCode As String) As String
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Sub Main()
Dim b_HDD As Boolean
Dim b_NIC As Boolean
Dim b_CPU As Boolean
Dim b_BIOS As Boolean
Dim n As String
Dim m As String
Dim x As String
Dim y As String

b_HDD = False
b_NIC = False
b_CPU = False
b_BIOS = False

Shell "regsvr32 /s HardwareID.dll"

n = CStr(GetHardwareID(b_HDD, b_NIC, b_CPU, b_BIOS, "R5LR-S4TQ"))
m = CStr(App.EXEName)
x = "本程序的名字(Appname)=" & CStr(m) & "/硬件识别码(mid)=" & CStr(n)
MsgBox x
End Sub
本程序要调用一个dll(就是GetHardwareID.dll),我在本机里用VB 6.0调试可以用,但是我生成exer了就报错发生故障。实在不得其解。望各路神仙指点迷经。鄙人先谢过。
展开
 我来答
网海1书生
科技发烧友

推荐于2016-10-07 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26226

向TA提问 私信TA
展开全部
你程序开头的两个API函数声明(就是涉及HardwareID.DLL的那两个)要求HardwareID.DLL已经注册才行,否则就出错。而你程序中的Shell "regsvr32 /s HardwareID.dll"已经是马后炮了!换句话说就是API函数的声明是先于程序代码运行的。

你必须把你的exe文件和dll文件打包生成setup安装程序,在安装过程中对dll文件进行注册才行。或者你用其他方法也行,只要保证dll的注册是先于程序的运行的。
断涯生无可恋
2014-07-28 · TA获得超过142个赞
知道小有建树答主
回答量:564
采纳率:0%
帮助的人:285万
展开全部
GetHardwareID.dll插件放exe程序旁边就行,注册那句命令,可以去掉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿瑟00980
2014-07-28 · TA获得超过218个赞
知道答主
回答量:157
采纳率:33%
帮助的人:52万
展开全部
重新注册下SkinH_VB6.dll,或将其放入system32 regsvr32 /s DLL路径
希望能解决您的问题。
追问
不行的。要不369352029   + 我,帮我下好吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式