创建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

动态链接库的隐式动态链接和显示动态链接相关推荐

  1. 游标(概念、优点、分类、静态游标的使用(显示游标(显示游标的属性、遍历显示游标、显示游标的FOR循环)、隐式游标(隐式游标的属性))、动态游标的使用、静态游标和动态游标的区别、更新或删除当前游标数据

    文章目录 游标 游标概念 游标优点 游标分类 静态游标的使用 显示游标 显示游标的属性 遍历显示游标 显示游标的FOR循环 接收显式游标数据的数据类型(普通变量.记录变量.集合变量) 通过游标更新.删 ...

  2. php 获取动态时间,PHP 显示动态时间

    PHP 显示动态时间 一.重点:php时间的表示方法,js,dom取值 1.第一种方法 当前时间: function changetime(){ var ary = ["星期日", ...

  3. appium 等待的3中方式:强制等待、隐式等待、显示等待

    强制等待.隐式等待.显示等待 三者的特点 强制等待是sleep,强烈不推荐,设定的时间太固定,如果是模拟器等待3秒,真机可能只需要等待2秒 driver.implicitly.wat(timeout) ...

  4. Android中Intent的显示和隐式使用

    Android应用程序中组件之间的通信都少不了Intent的使用,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件, ...

  5. Appium+PythonUI自动化之webdriver 的三种等待方式(强制等待、隐式等待、显示等待)

    在自动化测试脚本的运行过程中,webdriver操作浏览器的时候,对于元素的定位是有一定的超时时间,大致应该在1-3秒的样子,如果这个时间内仍然定位不到元素,就会抛出异常,中止脚本执行.我们可以通过在 ...

  6. c语言 隐式声明,关于C#:隐式函数声明和链接

    最近,我了解了C语言中的隐式函数声明.主要思想很明确,但在这种情况下,我对理解链接过程有些麻烦. 考虑以下代码(文件a.c): #include int main() { double someVal ...

  7. c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别...

    msdn参考:http://msdn.microsoft.com/zh-cn/library/s53ehcz3.aspx http://msdn.microsoft.com/zh-cn/library ...

  8. 安卓开发-Activity的显示意图和隐式意图+实例+Activity界面间数据的传递实例

    <一:显示意图和隐式意图> 1.显示意图 //想打开的页面需要在创建意图时显式指定要打开那个Activity Intent intent = new Intent(this, 指定Acti ...

  9. webdriver 的三种等待方式(强制等待,隐式等待,显示等待)

    在自动化测试脚本的运行过程中,webdriver操作浏览器的时候,对于元素的定位是有一定的超时时间,大致应该在1-3秒的样子,如果这个时间内仍然定位不到元素,就会抛出异常,中止脚本执行.我们可以通过在 ...

最新文章

  1. 小型Web应用扫描工具Grabber
  2. java中读取文件的方法
  3. Android --- adapter.notifyDataSetChanged() 不起作用怎么办
  4. 转 Struct 和 Union区别 以及 对内存对齐方式的说明
  5. 提升网络可靠性的双网卡绑定7种模式
  6. 全能终端神器 --- MobaXterm 、开启 linux 远程桌面
  7. JAVA入门级教学之(连接运算符)
  8. 教你用python爬取网站数据
  9. [Editor][002][Emacs] 从零到高级的进阶 - 实践开发 - 帮助菜单主页
  10. android点击图片跳转页面底部,【报Bug】安卓底部选项卡webview模式下 点击跳转到某个页面后,会出现底部重叠的问题...
  11. 2060年未来人KFK的问答
  12. STM32开发环境搭建
  13. 3GPP 3GPP2等协议文档下载网址汇总
  14. BeAlert 一款alert和confirm美化插件(优化)
  15. 如何使用C#把数据写到EXCEL文档中
  16. 求矩阵的特征值和特征向量方法
  17. 课上认真听讲,课后马上忘记怎么办?
  18. 元阳科技签约欧洲细胞研究中心 获FRE独家运营权
  19. 微信订阅号简单开发指引
  20. 下载m3u8文件中的视频,使用FFMpeg解密合并.ts文件

热门文章

  1. EOS project 中 的一个 jsp 文件中 调用 javascript函数的问题
  2. 【python】循环结构if、for 、while
  3. 【Java】程序调试
  4. 性能测试之JMeter接口关联【JSON提取器】详解
  5. 软件测试管理的几个基本要素
  6. SQL Server如何保证可空字段中非空值唯一
  7. 魔方机器人需要特制魔方吗_火影忍者手游:如果新春水门金币团购,你会夸魔方良心吗?...
  8. 自回归AR模型、移动平均MA模型、自回归移动平均ARMA模型
  9. idea jsp页面没有html提示,解决IDEAJSP没有代码提示问题的几种方法.pdf
  10. 软件中打开其他软件的方式