请问如何在VB里向vc的dll中函数传递结构体变量?

winagain 2003-08-19 03:58:20
如题
...全文
99 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
winagain 2003-08-20
  • 打赏
  • 举报
回复
谁有现成的例子??
kingzai 2003-08-20
  • 打赏
  • 举报
回复
use VARIANT
winagain 2003-08-20
  • 打赏
  • 举报
回复
お願いします
winagain 2003-08-20
  • 打赏
  • 举报
回复
最好能有个例子!!!!
fbmsf 2003-08-20
  • 打赏
  • 举报
回复
方法是这样的:
首先 vb里一般的是用传地址的方式,来进行参数的传递的。
如果你要传值的话,要加上byval ,
其次和你在vb里面的定义也有很大的关系,
举个列子:
Public Declare Function SetFileTime Lib "kernel32" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long

比如setfiletime 在vb里的标准的定义是如上的,但是有时我们只想改lpLastWriteTime
,而这样也是允许的,那么就应该把lpLastAccessTime,lpCreationTime 的值传如0,
而用上面的定义是不可以的,所以就要改为:
Public Declare Function SetFileTime Lib "kernel32" (ByVal hFile As Long, ByVal lpCreationTime As Long, ByVal lpLastAccessTime As Long, lpLastWriteTime As FILETIME) As Long
然后'''以下为VB代码
dim LastWT as FILETIME
dim HFile as long
HFile=......
LstWT.dwLowDateTime =97392
LstWT. dwHighDateTime=32545
Call SetFileTime(HFile,0,0,LstWT)
就可以了。
最后:
就是你在vc的dll里定义了一个什么样的结构,那么你在vb里面也定义一个相同的结构,
然后在vb里写函数定义的时候,用 MyMsg as MSG 而不要加byval.

HarryandMark 2003-08-19
  • 打赏
  • 举报
回复
VB我不清楚,所以没法子给你例子,
用VB传引用调用VC的函数应该是可行的。
winagain 2003-08-19
  • 打赏
  • 举报
回复
kingzai(kingzai) ( )谢谢前辈
但是它得结构体内变量太单一了
能不能有
struct
{
int intVar;
long longVar;
char charVar;
string stringVar;
..
}
这样的例子???
kingzai 2003-08-19
  • 打赏
  • 举报
回复
http://www.china-askpro.com/msg13/qa01.shtml
winagain 2003-08-19
  • 打赏
  • 举报
回复
能不能具体一点?

最好有例子
功名半纸 2003-08-19
  • 打赏
  • 举报
回复
最好使用传引用方式!!
VC使用指针!!!!!!!!!!!

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧