| 域名空间 下载中心 社区论坛 信息公告 MY小屋 |
![]() |
联系我们 设为首页 加入收藏 |
|
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿 论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图 专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版 社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务 |
| 新版上线![旧版] | |||||
注:打开慢时请稍等
如何把VC++代码转换成VB代码?http://www.iyit.net 日期:2006-5-23 11:47:19 来源:本站整理转载 点击: |
对于大多数VB的爱好者来说,在很多情况下都想通过使用API函数来实现一些比较高级的功能或达到某种特殊效果,这就需要用到一些VC++的代码. 本文就如何把VC++代码转换成VB代码给出了一些策略和方法. 1.定义常量 我们首先看第一个例子: #define STD_COPY1//COMMCTRL.H 在VC++代码中用#define定义常量,而在VB中是用Const来定义,因此转换成VB的代码是: Public ConstSTD_COPY=1 第二个例子: #define LB_SELECTSTRING0x018C//WINUSER.h 这有一个问题,VC++中所有以"0x"开头的值是十六进制,而在VB中表示十六进制要用"&H"开头.因此转换成VB的代码为: Const LB_SELECTSTRING=0x018C 第三个例子: #define TCN_FIRST(0U-550U) 这里有个特别的是定义的值是以"U"结尾,这是意味着该常量的类型是"unsigned long"(在VB中不支持该数据类型).但是unsignedlong和signedlong(在VB中是Long)两种数据类型的值在存储方式上是一样的,只是表现的形式不同.因此,我们只需要去掉末尾的"U"就可以了. Const TCN_FIRST=(0-550)这同样适合以"L"结尾的值 另外,对于#define CDDS_ITEMPOSTERASE(CDDS_ITEM |CDDS_POSTERASE),我们需要用"Or"来取代"|" 2.结构的定义 我们先看VC++定义的一个比较简单的结构: type defstruct tagTBSAVEPARAMSA{ 首先我们需要把第一行的"type defstruct"转换成"Public Type" Public Type tagTBSAVEPARAMSA 然后处理结构成员: HKEYhkr; 对于第一个成员类型HKEY.我们要知道VC++中的以"H"开头的大部分数据类型代表的是某种句柄.在VB中每一个Form对象和许多控件都有一个hWnd属性,它代表所属窗口的句柄.hWnd的类型是Long,并且所有用来存储句柄的变量类型都是Long.因此,该成员在VB中定义为: hkrAsLong 同样的,VC++数据类型LPSTR和LPCSTR代表指向字符串的指针,在VB中可以当作String类型.因为当你传送结构给API时,VB将把结构中所有的String转换成指向ANSI字符串的指针.因此后两个成员在VB中表示为: pszSubKeyAsString 对于最后一行"}TBSAVEPARAMSA,FAR*LPTBSAVEPARAMSA;"我们只需要用" EndType "取代 就可以了.转换成VB代码后完整的结构为: Public Type tagTBSAVEPARAMSA 以下是VC++中数据类型对应到VB中的数据类型 VC++ VB 3.函数的转换 我们知道VB提供了APIVieweradd-in,但是有很多API函数它并没有包括在内. 因此知道如何把VC++函数转换成VB的函数格式是非常重要的.先看第一个例子: WINCOMMCTRLAPIHWNDWINAPI 这个函数创建一个StatusBar控件.从WINCOMMCTRLAPI可以得知该函数来自动态链接库ComCtl32.dll.(有时,我们需要从MSDN中查找某函数对应的DLL)然后我们知道该函数的返回类型是HWND,对应VB的类型是Long.最后,根据前面提到类型对应表,很容易的转换相应的函数参数. Public Declare Function CreateStatusWindowA Lib "ComCtl32.dll" (Byvalstyle As Long, ByvallpszText As String, ByvalhwndParent As Long,ByvalwID As Long) As Long 编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部] 上一篇:VC编程实现IE风格的界面 下一篇:初探WINDOWS下IME编程 转载请注明来源:www.iyit.net 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 最新更新 | 热点排行 | 推荐新闻 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
| 友情链接 | ||||||
| 设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
| |||||||