动态链接库的隐式动态链接和显示动态链接
创建dll工程:
1 #include"CustomDll.h" 2 #include<windows.h> 3 BOOL APIENTRY DLLMAIN(HMODULE hModule, DWORD reason_for_call, LPVOID lpReserved) 4 { 5 switch (reason_for_call) 6 { 7 case DLL_PROCESS_ATTACH: 8 case DLL_PROCESS_DETACH: 9 case DLL_THREAD_ATTACH: 10 case DLL_THREAD_DETACH: 11 break; 12 } 13 return TRUE; 14 } 15 int DLLFuncAdd(int a, int b) 16 { 17 return a + b; 18 }
创建useDll工程,隐式动态链接:将dll工程编译好后的复制到useDll工程根目录下,然后使用如下代码
1 #include<windows.h> 2 #include"CustomDll.h" 3 #include<iostream> 4 using namespace std; 5 #pragma comment (lib,"CustomDll") 6 int main() 7 { 8 int c = 1, b = 2; 9 cout << DLLFuncAdd(c, b) << endl; 10 return 0; 11 }
显示动态链接:在原dll工程中点击项目,添加新项,选中模块定义文件(.def),然后名称输入dll,确定
在dll.def文件中添加如下代码:
1 EXPORTS 2 DLLFuncAdd
然后在usedll工程中进行编辑,代码如下:
1 #include<windows.h> 2 #include<iostream> 3 using namespace std; 4 typedef int(*PFNEXPORTFUNC)(int a, int b); 5 int main() 6 { 7 int c = 1, b = 2; 8 HMODULE hModule = LoadLibrary(L"CustomDll.dll"); 9 if (hModule != NULL) 10 { 11 PFNEXPORTFUNC mDLLFuncAdd = (PFNEXPORTFUNC)GetProcAddress(hModule, "DLLFuncAdd"); 12 if (mDLLFuncAdd != NULL) 13 { 14 cout << mDLLFuncAdd(c, b) << endl; 15 } 16 FreeLibrary(hModule); 17 } 18 19 return 0; 20 }
就行了。
转载于:https://www.cnblogs.com/newworldcom/p/4332845.html
动态链接库的隐式动态链接和显示动态链接相关推荐
- 游标(概念、优点、分类、静态游标的使用(显示游标(显示游标的属性、遍历显示游标、显示游标的FOR循环)、隐式游标(隐式游标的属性))、动态游标的使用、静态游标和动态游标的区别、更新或删除当前游标数据
文章目录 游标 游标概念 游标优点 游标分类 静态游标的使用 显示游标 显示游标的属性 遍历显示游标 显示游标的FOR循环 接收显式游标数据的数据类型(普通变量.记录变量.集合变量) 通过游标更新.删 ...
- php 获取动态时间,PHP 显示动态时间
PHP 显示动态时间 一.重点:php时间的表示方法,js,dom取值 1.第一种方法 当前时间: function changetime(){ var ary = ["星期日", ...
- appium 等待的3中方式:强制等待、隐式等待、显示等待
强制等待.隐式等待.显示等待 三者的特点 强制等待是sleep,强烈不推荐,设定的时间太固定,如果是模拟器等待3秒,真机可能只需要等待2秒 driver.implicitly.wat(timeout) ...
- Android中Intent的显示和隐式使用
Android应用程序中组件之间的通信都少不了Intent的使用,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件, ...
- Appium+PythonUI自动化之webdriver 的三种等待方式(强制等待、隐式等待、显示等待)
在自动化测试脚本的运行过程中,webdriver操作浏览器的时候,对于元素的定位是有一定的超时时间,大致应该在1-3秒的样子,如果这个时间内仍然定位不到元素,就会抛出异常,中止脚本执行.我们可以通过在 ...
- c语言 隐式声明,关于C#:隐式函数声明和链接
最近,我了解了C语言中的隐式函数声明.主要思想很明确,但在这种情况下,我对理解链接过程有些麻烦. 考虑以下代码(文件a.c): #include int main() { double someVal ...
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别...
msdn参考:http://msdn.microsoft.com/zh-cn/library/s53ehcz3.aspx http://msdn.microsoft.com/zh-cn/library ...
- 安卓开发-Activity的显示意图和隐式意图+实例+Activity界面间数据的传递实例
<一:显示意图和隐式意图> 1.显示意图 //想打开的页面需要在创建意图时显式指定要打开那个Activity Intent intent = new Intent(this, 指定Acti ...
- webdriver 的三种等待方式(强制等待,隐式等待,显示等待)
在自动化测试脚本的运行过程中,webdriver操作浏览器的时候,对于元素的定位是有一定的超时时间,大致应该在1-3秒的样子,如果这个时间内仍然定位不到元素,就会抛出异常,中止脚本执行.我们可以通过在 ...
最新文章
- 小型Web应用扫描工具Grabber
- java中读取文件的方法
- Android --- adapter.notifyDataSetChanged() 不起作用怎么办
- 转 Struct 和 Union区别 以及 对内存对齐方式的说明
- 提升网络可靠性的双网卡绑定7种模式
- 全能终端神器 --- MobaXterm 、开启 linux 远程桌面
- JAVA入门级教学之(连接运算符)
- 教你用python爬取网站数据
- [Editor][002][Emacs] 从零到高级的进阶 - 实践开发 - 帮助菜单主页
- android点击图片跳转页面底部,【报Bug】安卓底部选项卡webview模式下 点击跳转到某个页面后,会出现底部重叠的问题...
- 2060年未来人KFK的问答
- STM32开发环境搭建
- 3GPP 3GPP2等协议文档下载网址汇总
- BeAlert 一款alert和confirm美化插件(优化)
- 如何使用C#把数据写到EXCEL文档中
- 求矩阵的特征值和特征向量方法
- 课上认真听讲,课后马上忘记怎么办?
- 元阳科技签约欧洲细胞研究中心 获FRE独家运营权
- 微信订阅号简单开发指引
- 下载m3u8文件中的视频,使用FFMpeg解密合并.ts文件
热门文章
- EOS project 中 的一个 jsp 文件中 调用 javascript函数的问题
- 【python】循环结构if、for 、while
- 【Java】程序调试
- 性能测试之JMeter接口关联【JSON提取器】详解
- 软件测试管理的几个基本要素
- SQL Server如何保证可空字段中非空值唯一
- 魔方机器人需要特制魔方吗_火影忍者手游:如果新春水门金币团购,你会夸魔方良心吗?...
- 自回归AR模型、移动平均MA模型、自回归移动平均ARMA模型
- idea jsp页面没有html提示,解决IDEAJSP没有代码提示问题的几种方法.pdf
- 软件中打开其他软件的方式