浅谈Visual C++及Visual Basic的混合编程.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈Visual C++与Visual Basic的混合编程 课题组研讨会 提纲 关于编程 认识DLL VC6.0中如何开发DLL程序 VB6.0中如何调用DLL程序 一个例子 一、关于编程 编程就是指令的合理组合 因此,指令决定了编程的能力 什么指令功能最强? 函数的来源 语言附带的库 操作系统的开发库 可执行程序的生成 编译(Compile) 链接(Link) 关于编程(续) 编译 将源代码处理成目标机器上的机器语言模块 链接 将编译得到的机器语言与系统提供的函数库联系起来 打个比喻 编译→有人把一本学术著作翻译成了中文 链接→把书中的术语给你解释清楚 函数库的分类 静态库 .LIB 链接时将相关函数代码放入到应用程序中 应用程序体积大,启动速度慢 优点是对运行环境无依赖性 动态库 一般封装成DLL 链接时仅进行符号链接 程序运行时再从函数库中加载所需的函数代码 应用程序体积小,启动快 对运行环境依赖性大 静态链接库 静态库只能给C语言兼容的开发语言使用 演示 如何利用VC制作静态链接库 如何使用静态库 二、动态链接库DLL DLL Dynamic Linkable Library 是实现共享代码的一种方式 DLL的使用与语言无关(可以用VB) DLL随处可见 VC的DLL的分类 NON-MFC DLL MFC-Regular DLL MFC Extension DLL 认识DLL 如何查看DLL中暴露出的函数 Microsoft Visual Studio中Depends工具 VB、VC混合编程 什么是混合编程 一个应用软件系统中,不同的模块采用不同的编程语言开发 VB和VC的分工 VB负责界面,人机交互,用户响应 VC负责复杂的算法,计算或者访问硬件 VB、VC混合编程的方式 通过DLL← VC生成DLL,在VB中调用 常用,简单 ActiveX控件的方法 VC生成控件,在VB中调用 更通用,较复杂 ActiveX Automation服务器的方法 VC生成应用服务器,在VB或者VBA中调用 最复杂的一种方法,适合大型软件的二次开发 VC编写VB可以使用的DLL(1) 不是任何VC编写的DLL,VB都可以使用 只有Regular DLL才有可能被VB使用 VB中对函数的声明必须与VC中对函数的声明绝对一致才行 两个必备条件,缺一不可 VC中声明函数的调用方式为stdcall VC中声明的函数必须被export VC编写VB可以使用的DLL(2) 一定要写定义文件(*.def) 举例 Add.h Add.cpp 注意事项(1) 注意不同语言对类型的定义不同 VB中Integer-VC中的short VB中的Long-VC中的int 结构尤其要注意,C语言存在着对齐的问题 注意事项(2) 大数据量的传递(VB到VC) 用数组,用指针(地址) VB将数组首字节地址以及数组长度传递给VC VC程序中利用地址和长度访问数据 注意VB中函数声明的byVal和byRef byVal相当于VC中的传值 ByRef相当于VC中的传地址(指针) 注意事项(3) 大数据量的传递(VC到VB) 如果VB负责申请内存,同上 如果VC负责申请内存 在VC的函数中利用返回值将地址传递给VB 在VB中将函数的返回值声明为long 切记不要忘记在VC中释放所申请的内存 * * LIBRARY TestAdd EXPORTS add @ 1 #ifndef ADD_H #define ADD_H extern C int __stdcall add(int a, int b); #endif #include add.h int __stdcall add(int a, int b) { return a+b; } 例如: Type Person  Age As Long  Height As Double End Type *

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档