广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 10081 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
mainchen 葫芦墩家族
个人头像
个人文章 个人相簿 个人日记 个人地图
社区建设奖
头衔:
版主
级别: 版主 该用户目前不上站
版区: 星侨五术软体
推文 x22 鲜花 x36
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[Delphi][教学] [教学] 如何用 Delphi6.0 call vc++6.0 写的 DLL 档
此为转贴资料
肖运勇

Delphi以其独特的面向控制项的开发方式、强大的资料库功能、快速的编译技术以及简单易学的编程特性,使得它自发布之日起即格外引人注目,许多程式师也因此将它作?首选的开发工具。然而,Delphi在科学计算、低端编程等方面的功能不如VC++。VC++功能强大、齐全,但是整个系统比较复杂、庞大,尤其对于初学者来说比较难学,其用户介面的开发远不如Delphi那样方便、快捷。那?,我们能否将两者的优点结合起来呢?答案是肯定的!具体做法是:将涉及到比较低级的操作、计算等方面的程式用VC++写成函数放在动态连结程式库中,而涉及到介面及与用户交互的编程则用Delphi来实现,最后只需在Delphi中调用VC++编写的动态连结程式库即可。
一、动态连结程式库简介
动态连结程式库(DLL,即 “Dynamic-Link Library”)是一个能够被应用程式和其他的DLL调用的过程和函数的集合体,它里面包含的是公共代码或资源。DLL是Windows的基石,所有的Win32 API函数都包含在DLL中。
使用DLL有许多优点:
1、一个DLL可以提供给不同的程式使用,如果有多个程式使用相同的DLL,也只需将DLL在记忆体中装载一次,这样就节省了记忆体开销。
2、DLL可以使我们的编程更加模组化,将功能相对独立的模组编成一个动态连结程式库,这样改动程式时不需将整个程式重新编译,只需重新编译所改动的模组。
3、使用了DLL元件包可以大大减小可执行文件的规模。
4、对于一个大型的、不断更新的应用程式,可以将许多重复的功能写成DLL,用主程序调用,这样既减少了开发的工作量,又提高了访问速度。
5、DLL独立于编程语言,大多数WINDOWS编程环境都允许主程序调用DLL中的函数。即可以用VC++、VB、PowerBuilder、Delphi、组合语言等建立DLL,然后在不同语言编制的应用程式中调用它。这样就给多人使用不同的编程语言开发专案提供了极大的方便。

二、在Delphi中调用VC++创建的动态连结程式库的实例
(一)实验环 ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



[ 此文章被panasonic732在2004-12-20 23:40重新编辑 ]



献花 x0 回到顶端 [楼 主] From:未知地址 | Posted:2002-10-29 15:52 |
AndersenC
数位造型
个人文章 个人相簿 个人日记 个人地图
路人甲
级别: 路人甲 该用户目前不上站
推文 x0 鲜花 x0
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

大大辛苦你了,
小弟有点小小意见不知道对不对,
大家参考一下。

大大文章中提到制作 MFC DLL 的部分,
有点错误,
VC++中若没有作设定,
预设的 Function Call Conversion 是 __cdecl,
所以 Export 的 API 会是 __cdecl 不是 __stdcall,
这样会造成 Delphi 的程式呼叫时,
参数传递造成错误,
故而必须在 MFC DLL 的程式宣告修正如下:
extern "C" _declspec(dllexport) int __stdcall Min1(int x,int y,int z);
extern "C" _declspec(dllexport) int __stdcall Max1(int x,int y,int z);

请多多指教 ^_^ ...


献花 x0 回到顶端 [1 楼] From:未知地址 | Posted:2003-04-09 11:53 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.101584 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言