首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

急API方式调用DLL,有个例子可以,Copy到小弟我新建的工程里不行,为什么

2012-02-27 
急:API方式调用DLL,有个例子可以,Copy到我新建的工程里不行,为什么?我从网上下载了个例子,是用DiskID32.DL

急:API方式调用DLL,有个例子可以,Copy到我新建的工程里不行,为什么?
我从网上下载了个例子,是用DiskID32.DLL得到硬盘物理ID的,

例子中有源代码,很简单:只是一个工程加了一个form,DiskID32.DLL和工程及生成的exe在同一目录下.并且DLL没有手动注册,下载下来运行就可以正常使用.在form中有一个按钮和两个文本框.代码如下:

Private Declare Function DiskID32 Lib "DiskID32.DLL" (ByRef DISKMODEL As Byte, ByRef DiskID As Byte) As Long
Dim arrSBox(0 To 255) As Integer
Dim arrPW(0 To 255) As Integer
Dim Bi As Integer, Bj As Integer
Const serialCodeLen1 = 8
Const serialCodeLen2 = 15
Const keyCodeLen = 8
Dim mresult

Private Sub Command1_Click()
  Dim bDiskModel(20) As Byte
  Dim bDiskID(20) As Byte
  Dim strDiskModel As String
  Dim strDiskID As String
   
  DiskID32 bDiskModel(0), bDiskID(0)
   
  strDiskModel$ = bDiskModel()
  strDiskModel$ = StrConv(strDiskModel$, vbUnicode)
  Text1.Text = strDiskModel
  strDiskID$ = bDiskID()
  strDiskID = StrConv(strDiskID$, vbUnicode)
  Text2.Text = strDiskID
   
End Sub

我也同样建了一个新工程,加了一个form,把这个DLL放在同一目录下面,Copy了上面的代码,当我运行的时候确提示找不到DLL?这是为什么?请指点,谢谢.

另外,我还有一点不明白:这里的字符串后加$符是什么意思?谢谢
 strDiskModel$ = bDiskModel() strDiskModel$ = StrConv(strDiskModel$, vbUnicode)
  Text1.Text = strDiskModel
  strDiskID$ = bDiskID()
  strDiskID = StrConv(strDiskID$, vbUnicode)
  Text2.Text = strDiskID

分不够再加,请高手一定指点一下.或加我QQ:419356949


[解决办法]
DLL文件是要引用的.
[解决办法]
dll要注册
$ 感觉上可有可无。
[解决办法]
Private Declare Function DiskID32 Lib "DiskID32.DLL" (ByRef DISKMODEL As Byte, ByRef DiskID As Byte)

应该是以api的方式使用的,不是引用的问题
[解决办法]
$是用来定义变量,这里变量已经定义,没有也可以,这里用来表明变量类型,方便读程序
[解决办法]
第一种方案: 楼主试一下把 DLL 复制到 System32 目录下。


第二种方案:
  主菜单“工程”→“引用……”,再点右上方的“浏览……”按钮,指定你的 DLL 文件。

[解决办法]
就把 DLL 复制到 System32 目录下

其他没有问题(编译器不会到当前目录找dll,编译成exe才会先到当前目录找dll的)
所以你用编译器全编译执行,是找不到的
[解决办法]

探讨
DLL文件是要引用的.

[解决办法]
探讨
我也同样建了一个新工程,加了一个form,把这个DLL放在同一目录下面,Copy了上面的代码,当我运行的时候确提示找不到DLL?这是为什么?请指点,谢谢.

热点排行