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
相关问答:
问题:
现在Access数据库中有两张表TableA和TableB
TableA中有记录如下:
字段1(Name) 字段2(Num)
A 3
A 4
B 6
... ......
form1中有text1-8, 和command1
text8中为程序代码(生成窗体为form2(已做好))
单击command1后将text2中的代码生成EXE到d:\ 并且text1-7分别对应
产品名 公司名 合法版权 合法商标 文件描述 注释 标题
......
谁能帮我把下面这些代码改成VB形式的,多谢了,急用~~
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
float objfx(float x[]);
void constraint(float x[],float g ......
小弟用VB调EXCEL作图
objExlApp.Workbooks.Add
objExlApp.Charts.Add
objExlApp.ActiveChart.ChartType = xlLine
objExlApp.ActiveChart.HasLegend = True
objExlApp. ......