当前位置: 首页 > news >正文

甘肃住房与城乡建设厅网站视频宣传片免费模板

甘肃住房与城乡建设厅网站,视频宣传片免费模板,电子商务网站建设维护学期总结,文字生成器在线制作#xfeff;#xfeff;#xfeff;转载自#xff1a;http://blog.sina.com.cn/s/blog_53004b4901009h3b.html   应用程序使用DLL可以采用两种方式#xff1a;一种是隐式链接#xff0c;另一种是显式链接。在使用DLL之前首先要知道DLL中函数的结构信息。Visual C6.0转载自http://blog.sina.com.cn/s/blog_53004b4901009h3b.html   应用程序使用DLL可以采用两种方式一种是隐式链接另一种是显式链接。在使用DLL之前首先要知道DLL中函数的结构信息。Visual C6.0或者更先进的版本在VC\bin目录下提供了一个名为Dumpbin.exe的小程序使用方法见VS自带工具dumpbin的使用用它可以查看DLL文件中的函数结构。另外Windows系统将遵循下面的搜索顺序来定位DLL 1包含EXE文件的目录2进程的当前工作目录 3Windows系统目录 4Windows目录5列在Path环境变量中的一系列目录。   1隐式链接   隐式链接就是在程序开始执行时就将DLL文件加载到应用程序当中。实现隐式链接很容易只要将导入函数关键字_declspec(dllimport)函数名等写到应用程序相应的头文件中就可以了。下面的例子通过隐式链接调用MyDll.dll库中的Min函数。首先生成一个项目为TestDll在DllTest.h、DllTest.cpp文件中分别输入如下代码 //Dlltest.h#includeMyDll.h #pragma comment(libMyDll.lib) extern C_declspec(dllimport) int Max(int a,int b); extern C_declspec(dllimport) int Min(int a,int b); //TestDll.cpp #includeDlltest.h void main() {int a; amin(8,10) printf(比较的结果为%d\na); }在创建DllTest.exe文件之前要先将MyDll.dll和MyDll.lib拷贝到当前工程所在的目录下面也可以拷贝到windows的System目录下。如果DLL使用的是def文件要删除TestDll.h文件中关键字extern C。TestDll.h文件中的关键字Progam commit是要Visual C的编译器在link时链接到MyDll.lib文件当然开发人员也可以不使用#pragma comment(libMyDll.lib)语句而直接在工程的Setting-Link页的Object/Moduls栏填入MyDll.lib既可。   2显式链接   显式链接是应用程序在执行过程中随时可以加载DLL文件也可以随时卸载DLL文件这是隐式链接所无法作到的所以显式链接具有更好的灵活性对于解释性语言更为合适。不过实现显式链接要麻烦一些。在应用程序中用LoadLibrary或MFC提供的AfxLoadLibrary显式的将自己所做的动态链接库调进来动态链接库的文件名即是上述两个函数的参数此后再用GetProcAddress()获取想要引入的函数。自此你就可以象使用如同在应用程序自定义的函数一样来调用此引入函数了。在应用程序退出之前应该用FreeLibrary或MFC提供的AfxFreeLibrary释放动态链接库。下面是通过显式链接调用DLL中的Max函数的例子。 #include windows.h #include cstdio void main(void) { typedef int(*pMax)(int a,int b); typedef int(*pMin)(int a,int b); HINSTANCE hDLL; PMax Max HDLLLoadLibrary(MyDll.dll);//加载动态链接库MyDll.dll文件 Max(pMax)GetProcAddress(hDLL,Max); AMax(5,8); Printf(比较的结果为%d\na); FreeLibrary(hDLL);//卸载MyDll.dll文件 } 在上例中使用类型定义关键字typedef定义指向和DLL中相同的函数原型指针然后通过LoadLibray()将DLL加载到当前的应用程序中并返回当前DLL文件的句柄然后通过GetProcAddress()函数获取导入到应用程序中的函数指针函数调用完毕后使用FreeLibrary()卸载DLL文件。在编译程序之前首先要将DLL文件拷贝到工程所在的目录或Windows系统目录下。 使用显式链接应用程序编译时不需要使用相应的Lib文件。另外使用GetProcAddress()函数时可以利用MAKEINTRESOURCE()函数直接使用DLL中函数出现的顺序号如将GetProcAddress(hDLL,Min)改为GetProcAddress(hDLL, MAKEINTRESOURCE(2))函数Min()在DLL中的顺序号是2这样调用DLL中的函数速度很快但是要记住函数的使用序号否则会发生错误。 注意两点 1.上面中提到extern C表明函数使用c语言的风格编译函数这样后面显式调用时GetProcAddress第二个参数就是原来的函数名否则如果使用C编译的话支持函数重载则第二个参数会发生变化想要知道发生了什么变化可以使用前面提到的Dumpbin工具查看dll的生成函数。具体参考文章http://www.cnblogs.com/laogao/archive/2012/12/07/2806528.html 2.MAKEINTRESOURCE()函数可以代替复制dll生成的函数的一大串字符串名但是必须知道函数生成的顺序所以你也必须打开dll查看才能知道。
http://www.pierceye.com/news/559396/

相关文章:

  • 个人能进行网站开发孟村网 网站
  • 上海公司做网站的韩国购物网站模板
  • 快速建站教程网视频网站开发分析
  • 一个公司的网站怎么做的北京信息网
  • 撰写网站建设技术解决方案招聘平面设计
  • 网站的数据备份和恢复我想开网站
  • 网站建设情况报告范文wordpress用户注册提醒
  • 湛江商城网站制作公司闵行建设机械网站
  • 做网站seo赚钱吗平面广告设计作品集
  • 购物中心网站建设六安政务中心网站
  • 做网站公司赚钱吗?抖音小程序推广怎么挂才有收益
  • 滁州网站建设建设银行租房平台网站6
  • h5自适应网站模板下载阿里云域名注册好了怎么做网站
  • 德州做网站多少钱网站实现搜索功能
  • 帝国cms7.0网站搬家换域名换空间等安装教程万网云虚拟主机上传网站
  • 网站建设推广接单语wordpress 所有文章
  • 申请域名后怎么做网站网站建设与维护中国出版社
  • 洛阳做网站那家好课程网站建设开题报告
  • 到哪里建网站商务网站建设学期总结
  • 铜陵app网站做营销招聘网站开发公司需要投入什么资源
  • 建购物的网站需要多少钱wordpress不显示头像
  • 如何做一个个人网站长春网站建设wang
  • 湖南省做网站的网站资讯建设
  • 滨江网站建设制作如何建设网站方便后期维护
  • dedecms手机网站插件wordpress模板中文
  • 网站建设合同封面模板下载天津专业网站设计
  • 毕业设计网站做几个2345浏览器网页版
  • 南阳市网站建设国家建设协会工程质量分会网站
  • 苗木网站开发需求自己做网站转发新闻违法么
  • 招商网站建设解决方案wordpress页面转移