首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 认证考试-> Adobe认证
怎样把vc 代码转换成vb代码_visualbasic教程
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
对于大多数VB的爱好者来说,在很多情况下都想通过使用API函数来实现一些比较高级的功能或达到某种特殊效果,这就需要用到一些VC 的代码.
本文就如何把VC 代码转换成VB代码给出了一些策略和方法.

1.定义常量

我们首先看第一个例子:

#defineSTD_COPY1//COMMCTRL.H

在VC 代码中用#define定义常量,而在VB中是用Const来定义,因此转换成VB的代码是:

PublicConstSTD_COPY=1

第二个例子:

#defineLB_SELECTSTRING0x018C//WINUSER.h

这有一个问题,VC 中所有以"0x"开头的值是十六进制,而在VB中表示十六进制要用"&H"开头.因此转换成VB的代码为:

ConstLB_SELECTSTRING=0x018C

第三个例子:

#defineTCN_FIRST(0U-550U)

这里有个特别的是定义的值是以"U"结尾,这是意味着该常量的类型是"unsignedlong"(在VB中不支持该数据类型).但是unsignedlong和signedlong(在VB中是Long)两种数据类型的值在存储方式上是一样的,只是表现的形式不同.因此,我们只需要去掉末尾的"U"就可以了.

ConstTCN_FIRST=(0-550)这同样适合以"L"结尾的值

另外,对于#defineCDDS_ITEMPOSTERASE(CDDS_ITEM|CDDS_POSTERASE),我们需要用"Or"来取代"|"

2.结构的定义

我们先看VC 定义的一个比较简单的结构:

typedefstructtagTBSAVEPARAMSA{
HKEYhkr;
LPCSTRpszSubKey;
LPCSTRpszValueName;
}TBSAVEPARAMSA,FAR*LPTBSAVEPARAMSA;

首先我们需要把第一行的"typedefstruct"转换成"PublicType"

PublicTypetagTBSAVEPARAMSA

然后处理结构成员,

HKEYhkr;
LPCSTRpszSubKey;
LPCSTRpszValueName;

对于第一个成员类型HKEY.我们要知道VC 中的以"H"开头的大部分数据类型代表的是某种句柄.在VB中每一个Form对象和许多控件都有一个hWnd属性,它代表所属窗口的句柄.hWnd的类型是Long,并且所有用来存储句柄的变量类型都是Long.因此,该成员在VB中定义为:

hkrAsLong

同样的,VC 数据类型LPSTR和LPCSTR代表指向字符串的指针,在VB中可以当作String类型.因为当你传送结构给API时,VB将把结构中所有的String转换成指向ANSI字符串的指针.因此后两个成员在VB中表示为:

pszSubKeyAsString
pszValueNameAsString

对于最后一行"}TBSAVEPARAMSA,FAR*LPTBSAVEPARAMSA;"我们只需要用"EndType"取代

就可以了.转换成VB代码后完整的结构为:

PublicTypetagTBSAVEPARAMSA
hkrAsLong
pszSubKeyAsString
pszValueNameAsString
EndType

以下是VC 中数据类型对应到VB中的数据类型VC 数据类型VB数据类型

shortInteger
intLong
longLong
UNITLong
ULONGLong
WORD,DWORDLong
WPARAM,LPARAMLong
WMSG,UMSGLong
HRESULTLong
BOOLBoolean
COLORREFLong
HWND,HDC,HBRUSH,HKEY,等等.Long
LPSTR,LPCSTRString
LPWSTR,OLECHAR,BSTRString
LPTSTRString
VARIANT_BOOLBoolean
unsignedcharByte
BYTEByte
VARIANTVariant
(任何以*或**结尾的数据类型)Long

3.函数的转换

我们知道VB提供了APIVieweradd-in,但是有很多API函数它并没有包括在内.因此知道如何把VC 函数转换成VB的函数格式是非常重要的.先看第一个例子:

WINCOMMCTRLAPIHWNDWINAPI
CreateStatusWindowsA(LONGstyle,
LPCSTRlpszTest,HWNDhwndParent,UINTwID);

这个函数创建一个StatusBar控件.从WINCOMMCTRLAPI可以得知该函数来自动态链接库ComCtl32.dll.(有时,我们需要从MSDN中查找某函数对应的DLL)然后我们知道该函数的返回类型是HWND,对应VB的类型是Long.最后,根据前面提到类型对应表,很容易的转换相应的函数参数.

PublicDeclareFunctionCreateStatusWindowALib"ComCtl32.dll"(ByvalstyleAsLong,ByvallpszTextAsString,ByvalhwndParentAsLong,ByvalwIDAsLong)AsLong->


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·Java开发工具配置 UltraEdit-JSP教程,Java技巧及代码
·遍历设备管理器的设备-.NET教程,评论及其它
·用正则表达式剔除文本中的HTML标记-ASP教程,正则表达式
·一个通用的DataGridTableStyle的做法-.NET教程,数据库应用
·java连接Oracle数据库-JSP教程,Java技巧及代码
·将XML存入关系数据库-JSP教程,数据库相关
·如何在Web页面上直接打开、编辑、创建Office文档-ASP教程,ASP应用
·asp之日期和时间函数示例-ASP教程,ASP应用
·ASP.Net Web Page深入探讨-ASP教程,ASP应用
·浅析Microsoft .net PetShop程序中的购物车和订单处理模块(Profile技术,异步MSMQ消息)-.NET教程,.NET Framework
最新文章
·fireworks 8绘制精致指南针图案_fireworks教程
·卸载多重引导系统中的windows vista操作系统_windows vista
·如何做到google adsense好收入的几点_网赚技巧
·百度主题推广和google adsense的综合比较_网赚技巧
·[新闻会客厅]孙雁:八零后的女闪客_站长访谈
·“流量交换型站点”访客黏度问题凸显_站长心得
·大唐社区站长经验谈社区运营_站长心得
·blog站点如何用rss搜索来推广_站长心得
·自我防护web站点和恶意链接的方法_站长心得
·网站投资你和我的20个自身检查(2)_站长心得
相关主题
西部数码虚拟主机

友情链接
CNNIC 西部数码
万网 自助建站
虚拟主机 asp空间
域名注册 域名
域名申请 主页空间
论坛空间 网站空间
国际域名 虚拟空间
空间租用 DDOS防火墙
成都主机托管 四川主机托管
主机租用 服务器租用
网站目录 自助建站
虚拟主机 网址大全
软件下载
自助链接
虚拟主机资讯 特价虚拟主机
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
发表评论 打印  刷新     关闭