VB加载DLL中遇到的问题 - VB / API
我用VB加载一个DLL,在“工程==〉引用”引用这个DLL的时候,显示该DLL不能加载could not be loaded
如果直接运行Private Declare Function RDBPointQuery Lib "C:\WINDOWS\system32\MACSVIDBCom.dll" (ByVal pQueryFlag As PointQueryFlag, ByRef lPNum As Long, ByRef PNameArr() As String_struct, ByVal lDomainNo As Long) As Long
则会报编译出错:'user-defined type not defined',请问是什么原因?
错误是:用户定义类型未定义。
dll不能引用,这很正常,表示该DLL有可能是标准的,不通通过引用调用,只能通过Declare声明调用。
编译出错的原因有可能是类型PointQueryFlag、String_struct没有定义。还有你那些ByVal,ByRef要斟酌一下。
PointQueryFlag、String_struct可能需要自己定义一下,你需要查找一下里面包含哪些数据类型,然后类似下面方法定义:
Public Type PointQueryFlag
a As Integer
b As Integer
rcv_dg_outstanding As Integer
rcv_any_outstanding As Integer
End Type
用户类型定义的问题解决了,谢谢两位。然后我运行以下代码时
--------------------------------------
Private Sub Command1_Click()
Dim pQueryFlag As pointqueryflag
Dim lPNum As Long
Dim PNameArr(10) As String_struct
Dim PointNam(10) As String_struct
pQueryFlag.BSDes = ""
pQueryFlag.BSPTypeName = ""
pQueryFlag.lQueryFlag = 0
pQueryFlag.lStationNo = 0
Dim ret As Long '
ret = RDBObj.RDBPointQuery(pQueryFlag, lPNum, PNameArr, 0)
If ret = 0 Then
相关问答:
DIM ds as new DataSet
我这样声明 怎老是报 用户定义类型未定义? 这个需要引用什么吗??
前提是DataSet对象要存在,就是对象浏览器中有它.没有就要引用.
dataset是ADO.NET对象
如果你用的是vb.net,那么在� ......
现在我想根据treeview上每个节点的权限,没有权限的节点不能被选中,而且成灰色,怎么实现,在线等。。。
这个?。。。
貌似没法。
试试能不能改某些node的颜色,记录下上次的nodeclick里的node。
下次点击的如� ......
我想把word另存为xml之后,用vb读取这个xml的内容,请问如何实现?
dim f as integer
dim b() as byte
dim s as string
dim L as long
f=freefile()
open "abc.xml" for binary access read as #f
......
谁能帮我把下面这些代码改成VB形式的,多谢了,急用~~
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
float objfx(float x[]);
void constraint(float x[],float g ......
用VB编程读取短信,得到一大堆unicode编码,请教如何转换成文本
例如:读取短信后(华为900C或TC35i),串口得到如下数据:
+CMGL: 17,"REC UNREAD","8615007557713",,"10/03/30,09:37:15+32&qu ......