如何调用 DLL 中的函数

在 DLL工程中的 cpp中函数定义如下:

extern "C" _declspec (dllexport )

int add(int a, char b)

{

return a + b;

}

一:显示链接

调用的 DLL的主工程的 main文件中代码如下:

#include <stdio.h>

#include <Windows.h>

#include <tchar.h>

int main()

{

HMODULE hModule = NULL;

typedef int (*Func)(int a, int b);

// 动态加载 DLL 文件

hModule = LoadLibrary(_TEXT("..//Debug//FuncDll.dll" ));

// 获取 add 函数地址

Func fAdd = (Func)GetProcAddress(hModule, "add" );

// 使用函数指针

printf("%d/n" , fAdd(5, 2));

// 最后记得要释放指针

FreeLibrary(hModule);

return 0;

}

二:隐式链接:

调用的 DLL的主工程的 main文件中代码如下:

#include <stdio.h>

#include <Windows.h>

#include <tchar.h>

// 先把 lib 链接进来

#pragma comment (lib , "..//Debug//FuncDll.lib" )

// 外部声明的 add 函数

extern "C" _declspec (dllimport )

int add(int a, char b);

int main()

{

// 直接调用 add 函数

printf("%d/n" , add(5, 2));

return 0;

}

如何调用 DLL 中的函数相关推荐

  1. C#调用dll中的函数

    C#调用dll中的函数 文章分类:操作系统 文章来源:http://blog.csdn.net/strmagic/archive/2007/11/02/1863462.aspx 大家在实际工作学习C# ...

  2. 天马行空W:在C++中调用DLL中的函数

    1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...

  3. 通过GetProcAddress函数动态调用dll中地函数,是否必须通过extern C声明导出函数?(转)...

    通过GetProcAddress函数动态调用dll中的函数,是否必须通过extern "C"声明导出函数? [已结贴,结贴人:darongtou] 如题,网上搜了N多资料,一直找不 ...

  4. 在C++中调用DLL中的函数

    1.dll的优点 代码复用是提高软件开发效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架,ATL.MFC等 ...

  5. 在C++中调用DLL中的函数(2)

    本文转自:http://blog.sina.com.cn/s/blog_53004b4901009h3b.html 应用程序使用DLL可以采用两种方式: 一种是隐式链接,另一种是显式链接.在使用DLL ...

  6. GetProcAddress()函数动态调用DLL中的函数,是否必须通过extern C声明导出函数?

    GetProcAddress()函数动态调用DLL中的函数,是否必须通过extern C声明导出函数? 通过GetProcAddress函数动态调用dll中的函数,是否必须通过extern " ...

  7. 如何调用DLL中的函数

    如何调用 DLL 中的函数 在 DLL工程中的 cpp中函数定义如下: extern "C" _declspec (dllexport ) int add(int a, char ...

  8. 从零开始使用InnoSteup进行程序打打包以及调用dll中的函数

    本示例涉及: 程序的打包和数字签名 InnoSetup的快速上手 以及一个产品从编译到安装的过程演示 首先,我提供一份InnoSteup的脚本文件,小伙伴们可直接使用这个脚本进行打包(不过得修改一下相 ...

  9. 调用 Dll 中的函数时,出现栈(STACK)的清除问题 - 故障模块名称: StackHash_0a9e

    在一个名为 test.dll 文件中,有一个 Max() 函数的定义是: #ifdef BUILD_DLL #define DLL_EXPORT __declspec(dllexport) __std ...

最新文章

  1. SQL Server数据库开发的二十一条军规
  2. 稀疏数据分析:马蹄估计量及其理论性质
  3. 给程序媛妹子的4个贴心建议
  4. Linux学习总结(4)——Centos6.5使用yum安装mysql——快速上手必备
  5. 关于stack 和heap
  6. nginx上传目录配置,禁止执行权限
  7. 表格送货单自动编号vba_制作仓库入库单,自动登记商品数据,这段代码只需三步搞定...
  8. 多布局怎么搭建_展会搭建如何吸引人的注意力?
  9. 电脑前面耳机插孔没声音,后面有声音
  10. 淘宝天猫商城的推广方法大总结
  11. 【053】ImageDataGenerator() 介绍
  12. Centos7中MySQL的安装并设置开机启动
  13. 互联网 必须有免费的精神
  14. UV灯固化设备紫外能量值如何定期检测
  15. 电脑上照片如何压缩大小?怎么把照片在线压缩?
  16. <OS Concepts> 1- Intro
  17. 上海配眼镜的闭坑分享,配30副眼镜的资深眼镜控聊聊心得
  18. java控制扬声器发声_Linux 控制扬声器发声
  19. Visio 流程图-论文
  20. 数值优化:经典随机优化算法及其收敛性与复杂度分析

热门文章

  1. linux查看主机端口进程命令
  2. php线上问题排查,线上问题排查神器 Arthas
  3. JAVA用JComboBox_java JCombobox和JList的使用
  4. vld不输出泄漏信息_光纤天线方案和泄漏电缆方案的比较
  5. python处理nc文件并输出_利用python如何处理nc数据详解
  6. 用FPGA搭建一个STM32内核?
  7. 在阿里、腾讯、美团工作有什么区别?
  8. 单片机的程序有多大?
  9. Windows环境下yolov3+darknet批量处理图片完整教程
  10. Verilog设计实现俄罗斯方块游戏