标题:一个c++代码转换成vb代码的问题
只看楼主
xlin1033xl
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:160
专家分:129
注 册:2007-6-24
结帖率:100%
 问题点数:0 回复次数:4 
一个c++代码转换成vb代码的问题
strcat ( szInspectDllPath, "A.dll">\\debug\\B.dll" ) ;
以上代码在vb中如何写?
szInspectDllPath=szInspectDllPath & "A.dll>\debug\B.dll",是否正确?

另外
LPVOID VirtualAllocEx(
HANDLE hProcess, // process within which to allocate memory
LPVOID lpAddress, // desired starting address of allocation
DWORD dwSize, // size, in bytes, of region to allocate
DWORD flAllocationType,
// type of allocation
DWORD flProtect // type of access protection
);
该函数在vb中如何定义?

[此贴子已经被作者于2007-10-23 13:38:32编辑过]

搜索更多相关主题的帖子: dll 代码 allocation DWORD 
2007-10-23 13:32
ytmGring
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-5-27
得分:0 
呵呵,你也在研究VB/VC混合编程啊

欢迎参观http://blog..cn/ytmGring
2007-10-23 13:42
ytmGring
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-5-27
得分:0 
LPVOID VirtualAllocEx(
HANDLE hProcess, // process within which to allocate memory
LPVOID lpAddress, // desired starting address of allocation
DWORD dwSize, // size, in bytes, of region to allocate
DWORD flAllocationType,
// type of allocation
DWORD flProtect // type of access protection
);

Private Declare Function VirtualAllocEx Lib "这里填函数所在的模块名字" (hProcess As long,lpAddress as long,
byval dwSize as long,byval flAllocationType as long,byval flProtect as long) As Long

好像是这样

欢迎参观http://blog..cn/ytmGring
2007-10-23 13:45
ytmGring
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-5-27
得分:0 
在VB中声明DLL中的导出函数

Declare Function 函数名 Lib "完整路径\文件名.dll" [Alias "函数别名"] (ByVal 变量1 As 类型1, ByVal 变量2 As 类型2,…) As 类型3

下面是例子:
public Declare Function CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long

例子解释public说明公有的,所有模块都可以调用
Declare VB中对DLL的调用实现都是通过Declare语句来引入的
Function说明此库函数是一个带有返回值的函数而不是Sub过程
(函数和过程这只是在VB里面的概念,在C和C++里面都叫函数)
CloseHandle它就是库函数的名字
Lib "kernel32"指明了需要调用的DLL为系统文件夹下的kernel32.dll
Alias "CloseHandle"为该函数指定了一个别名
(ByVal hObject As Long)是参数列表,该函数只有一个参数,ByVal指明了参数传递方式为传值
hObject是参数的名字,As Long指明了参数的数据类型
As Long声明明语句最后的这项指明了函数的返回值类型

说明
声明前可以加上public或private
public:表示所有模块的所有过程都可以调用这个函数
private:表示该函数是这个模块私有的

declare:声明DLL中的函数都是从declare开始的

lib:用来告诉VB如何找到DLL文件(如果不是windows系统文件
夹下的的DLL,lib子句还须指定dll文件的路径及扩展名_lib "c:\110.dll")


alias:该子句表名为函数取一个别名(这个通常很少用)

在变量列表中
ByVal:表示参数的传递方式为传值(通常都用这种方式)
ByRef:表示参数的传递方式为传址VB中默认的参数传递方式为传址,所以ByRef可以省略

参数列表括号外的 AS 数据类型 指明了该函数的返回值的类型


欢迎参观http://blog..cn/ytmGring
2007-10-23 13:49
xlin1033xl
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:160
专家分:129
注 册:2007-6-24
得分:0 

我试试,谢谢


-------------程序*酒*人生
2007-10-23 13:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-180066-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.820193 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved