通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>VC编程>>正文 新版上线![旧版]
注:打开慢时请稍等

VB与VC通信初探(一)

http://www.iyit.net  日期:2006-5-23 11:43:25  来源:本站整理转载   点击:
参加讨论   在使用VB调用VC写的DLL的时候,可以实现一些VB不能实现或者很难实现的功能,但是,因为VB与VC之间的数据类型并不总是完全对应的,所以,在进行参数传递的时候,就需要进行类型转换了。下面我将通过逐步的推进的方法,来看看如何达到VB与VC之间的通信。

   首先,看一个简单的例子。

   VC中的程序:

   extern "C" _declspec(dllexport) void ReadString(void)

   {

   //函数功能

   }

   将这个VC程序编译成DLL程序供VB调用(假设生成的为commication.dll)

   VB中的程序:

   ……………………

   Private Declare Function ReadString Lib "commication.dll" ()

   ……………………

   call ReadString

   在这里,我们实现了一个简单的通信,即在VC中写了一个DLL,然后再在VB中调用了这个DLL,但是,在这次的通信中,实际上他们之间没有传递任何数据,仅仅是VB调用了DLL,从而使得commication.dll中的函数ReadString()函数执行。这种通信实现是非常简单,所以他完成的功能也就非常的简单,然而我们的要求肯定不止于此。

   现在就让我们来实现一个使用DLL来处理VB中的数据的例子,并且将处理结果返回给VB程序:

   VC中的程序:

   extern "C" _declspec(dllexport) bool ReadString(bool receive)

   {

   if(receive==true)

   return true;

   else

   return false;

   }

   VB中的程序:

   ……………………

   Private Declare Function ReadString Lib "commication.dll" (ByVal send As Boolean) as Boolean

   ……………………

   Dim result As Boolean

   Dim send As Boolean

   send = False

   result = ReadString(send)

   If result Then

   MsgBox "The return value is 'true'"


   Else

   MsgBox "The return value is 'false'"

   End If

   在这次的通信过程中,我们还是实现了一个很简单的通行过程,在DLL中,根据VB调用的时候传递进来的参数将接收到的参数返回给了VB调用程序,虽然简单,但是已经实现了VB与DLL之间的数据传递了,在这里要注意的是它们之间的数据类型,布尔类型的数据在VC中使用的关键字是Boolean,而在VC中使用的关键字则是bool。

   由于VB与VC之间的数据类型没有相同的关键字,为了方便,下面列出常用数据类型在VC与VB中分别使用的关键字以及它们之间的对应关系:

   c中的数据类型 VB中的声明 结果

   ATOM ByVal variable As Integer 结果为Integer 类型的表达式

   BOOL ByVal variable As Boolean 结果为 Long 类型的表达式

   BYTE ByVal variable As Byte 结果为 Byte 类型的表达式

   CHAR ByVal variable As Byte 结果为 Byte 类型的表达式

   COLORREF ByVal variable As Long 结果为 Long 类型的表达式

   DWORD ByVal variable As Long 结果为 Long 类型的表达式

   HWND, HDC, HMENU ByVal variable As Long 结果为 Long 类型的表达式等Windows 句柄

   INT, UINT ByVal variable As Long 结果为 Long 类型的表达式

   LONG ByVal variable As Long 结果为 Long 类型的表达式

   LPARAM ByVal variable As Long 结果为 Long 类型的表达式

   LPDWORD variable As Long 结果为 Long 类型的表达式

   LPINT, LPUINT variable As Long 结果为 Long 类型的表达式

   LPRECT variable As type 自定义类型的任意变量

   LPSTR, LPCSTR ByVal variable As String 结果为 String 类型的表达式

   LPVOID variable As Any 任何变量(在传递字符串的时候使用ByVal)

   LPWORD variable As Integer 结果为Integer 类型的表达式

   LRESULT ByVal variable As Long 结果为 Long 类型的表达式

   NULL As Any 或 ByVal Nothing 或 ByVal variable As Long ByVal 0& 或 VBNullString

   SHORT ByVal variable As Integer 结果为Integer 类型的表达式

   VOID Sub procedure 不可用

   WORD ByVal variable As Integer 结果为Integer 类型的表达式

   WPARAM ByVal variable As Long 结果为 Long 类型的表达式

   好了,现在我们已经建立了基本的通信模式了,并且实现了两个简单的通信过程,该休息一下了,之后再来看看更复杂的通信该如何去实现了!(待续)

编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:经典:用API 作简繁体转换
下一篇:VB与VC通信初探(二)
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
用VC++自制王码五笔输入法安装包  在VC++项目中为MDI主框架窗口添加位图 VC++编程实现对火焰的计算机动态仿真
VC下ADO开发实践之一 VC制作具有声音效果的动画桌面精灵 VC中如何等比例缩放图像
在VC中调用DirectShow全屏播放视频 『VC++技术内幕』学习笔记(10) 『VC++技术内幕』学习笔记(9)
『VC++技术内幕』学习笔记(7) 『VC++技术内幕』学习笔记(6) 『VC++技术内幕』学习笔记(5)
『VC++技术内幕』学习笔记(4) 『VC++技术内幕』学习笔记(3) 『VC++技术内幕』学习笔记(2)
『VC++技术内幕』学习笔记(1) 『VC++技术内幕』学习笔记(目录) 如何利用VC的Remote Debug功能
如何把VC++代码转换成VB代码? VC编程实现IE风格的界面 在VC中如何将数据导入Word中
VC++实现拨号上网程序详解 VC一点通:实现文件夹的缩略图显示 VC下TabCtrl的控制问题解决办法
最新更新 热点排行 推荐新闻
用VC++自制王码五笔输入法安装包 
在线资源指导
实用组件介绍
如何以最佳方式购买组件
ActiveX和OCX组件资源
用VC++自制王码五笔输入法安装包 
在线资源指导
实用组件介绍
如何以最佳方式购买组件
ActiveX和OCX组件资源
建立安装程序
收 集 文 件
理解各种打包类型
打包应用程序
向应用程序增加基于HTML的帮助
VC++实现对远程计算机屏幕的监视
用VC++6.0的Sockets API实现一个聊天室
多线程技术在VC++串口通信程序中的应用
用VC++制作一个简单的局域网消息发送工
用VC 6.0实现串行通信的三种方法
优秀公益广告作品欣赏(8)
java数据类型转换
Windows XP专业版IIS连接数的更改
新开放QQ免费挂级网站
优秀公益广告作品欣赏(7)
免费在QQ上看在线电影电视听音乐
WEB服务器配置全攻略(三)
QQ珊瑚虫外挂4.0版本发布!
免费把QQ炫铃设为本机QQ的系统提示音
Office2007简体中文版浮出水面 美图抢
微软将在华推分期付款,充值卡PC 可低价
 AMD处理器AM2测试 风扇竟运行7分钟
exeplorer.exe错误的问题的总结、解决
ASP.NET 2.0 中的异步页功能应用
硬盘坏道修复及数据恢复宝典
免费登录搜索引擎入口大全
搜索引擎注册九大秘法
小心摄像头成为黑客偷窥你的眼睛
内存混插常见问题和解决方法
Office2007简体中文版浮出水面 美图抢
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息