【VC DLL学习】(基础 较详细 dll创建vc vs显式 隐式调用).docxVIP

【VC DLL学习】(基础 较详细 dll创建vc vs显式 隐式调用).docx

  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文档。上传文档
查看更多
【VC DLL学习】(基础 较详细 dll创建vc vs显式 隐式调用)

VC DLL学习1-用VS创建DLL动态链接库1.1 创建dll项目1.2 为dll项目编写源文件头文件dllDemo.hextern?C?_declspec(dllexport)?int?Sum(int?a,int?b);//加法函数。extern?C?_declspec(dllexport)?int?Max(int?a,?int?b);//取较大值函数extern?C?_declspec(dllexport)?int?Min(int?a,?int?b);//取较小值函数源文件dllDemo.cpp大气象#include?dllDemo.hextern?C?_declspec(dllexport)int?Sum(int?a,?int?b){return?a+b;}extern?C?_declspec(dllexport)int?Max(int?a,?int?b){????if(a=b)????????return?a;????else????????return?b;}extern?C?_declspec(dllexport)int?Min(int?a,?int?b){????if(a=b)????????return?b;????else????????return?a;}1.3 生成dll文件编译源文件,如果没有出现错误提示,那么,在项目文件根目录的Debug文件夹内会生成一个dll文件“dllDemo.dll”。调用新建了个MFC单对话框项目,将“dllDemo.dll”和”dllDemo.lib”文件复制到本项目的Debug目录下,在VC工作空间的文件视图下面将”dllDemo.lib”添加到项目中在对话框头文件添加引用:大气象//?FileOperDlg.h?:?头文件//#pragma?onceextern?C_declspec(dllimport)?int?Sum(int?a,int?b);extern?C_declspec(dllimport)?int?Max(int?a,int?b);extern?C_declspec(dllimport)?int?Min(int?a,int?b);//?CFileOperDlg?对话框class?CFileOperDlg?:?public?CDialog{//?构造public:????CFileOperDlg(CWnd*?pParent?=?NULL);????//?标准构造函数//?对话框数据????enum?{?IDD?=?IDD_FILEOPER_DIALOG?};????protected:????virtual?void?DoDataExchange(CDataExchange*?pDX);????//?DDX/DDV?支持//?实现protected:????HICON?m_hIcon;????//?生成的消息映射函数????virtual?BOOL?OnInitDialog();????afx_msg?void?OnSysCommand(UINT?nID,?LPARAM?lParam);????afx_msg?void?OnPaint();????afx_msg?HCURSOR?OnQueryDragIcon();????DECLARE_MESSAGE_MAP()public:????CString?m_info;};?调用:CString?str;int?c=Sum(4,5);??//c=Max(5,6);??//c=Min(5,6);str.Format(%d,c);AfxMessageBox(str);?调试直接运行,选择一个调用dll的exe确定之后,就可以调试了,设置个断点试试。???参考:VC++的DLL应用(含Demo演示)作者:一点一滴的Beer/????? 在大学大一的时候学的是C,然后后来大二的时候专业又开了C++这个课程,然后再后来自己又自学了一点VC++,大三的时候也试着编写过一个MFC的最简单的窗口程序。到大四的时候,自己又做了一个GIS的项目,是用C#.NET来编写的,然后发现C#上手好容易,而且还大部分语法规则都沿用了C,C++的习惯,于是觉得C++实在是没有一点优势可言啊。但这个暑假的实习经历又改变了我的观点:C++在写窗口程序虽然麻烦,但是却什么能做,而且对比C#来说,对运行环境的要求不高,不用像C#程序在安装之前还要安装100M多的运行.NET环境。C++和C#各有优缺,目前我对它们俩的定位是:C++用来写一些底层的程序,比如驱动,或者是一些算法类型的函数接口,然后用C#来调用这些接口并进行界面设计。如何函数的实现跨语言呢?显然DLL是个很重要的内容,故在此对VC++的DLL模块进行介绍。1 用VC创建DLL动态连接库?

文档评论(0)

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

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

1亿VIP精品文档

相关文档