VC制作的DLL中的核心代码如下:
student * getStudent()
{ struct student stu = {1,"Li"};
struct student *p;
p = &stu;
return p;
}
其中
struct student
{
int num;
char name[20];
};
现要在VB中调用getStudent这个函数,并得到相应的数据,代码如下:
Private Declare Function VarPtr Lib "MSVBVM60" (var As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Type student
num As Integer
name As String * 20
End Type
Private Declare Function getNum Lib "vcdll.dll" () As Long
Private Declare Function getStudent Lib "vcdll.dll" () As LongPrivate Sub Command2_Click()
Dim sp As Long
Dim s As student
'sp = VarPtr(s)
sp = getStudent()
CopyMemory s, ByVal sp, LenB(s)
Text1.Text = s.num
Text2.Text = s.name
End Sub
无法得到正确的数据,请高手指教。
student * getStudent()
{ struct student stu = {1,"Li"};
struct student *p;
p = &stu;
return p;
}
其中
struct student
{
int num;
char name[20];
};
现要在VB中调用getStudent这个函数,并得到相应的数据,代码如下:
Private Declare Function VarPtr Lib "MSVBVM60" (var As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Type student
num As Integer
name As String * 20
End Type
Private Declare Function getNum Lib "vcdll.dll" () As Long
Private Declare Function getStudent Lib "vcdll.dll" () As LongPrivate Sub Command2_Click()
Dim sp As Long
Dim s As student
'sp = VarPtr(s)
sp = getStudent()
CopyMemory s, ByVal sp, LenB(s)
Text1.Text = s.num
Text2.Text = s.name
End Sub
无法得到正确的数据,请高手指教。
解决方案 »
- 三合一优化
- 怎么提取WORD的页眉和页脚啊
- 如何判断一个对象变量是否用New申请了对象实例?
- 请问CSDN文档中心的DES加密、解密算法如何使用?
- SELECT INTO 语句创建一个新表?
- 我的程序在vb环境下一切正常!生成exe文件后在98下运行正常,在2000下提示找不到可插入的isam,打包按装后出现同样问题!
- Simulated Annealing 模拟退火算法
- 高手:dll--找不到入口?
- Access2000压缩时出错的问题
- 如何在不连接网络的情况下测试程序?
- 那位高手知道在哪里可以下Windows help designer 6.03版本
- vb如何读取数据库中的图片然后放到picturebox控件???
num As long
name As String * 20
End Type