C编写的动态库dll C++调用
来源:互联网 发布:如何评价云宫迅音 知乎 编辑:程序博客网 时间:2024/06/18 10:08
在工作过程中,其他人给我的C动态库,我用C++调用老是失败,所以做个试验验证一下写的方式,直接上代码
//add.h#ifndef C_LIB_H#define C_LIB_H#define DLLExport __declspec(dllexport)#ifdef __cplusplusextern "C"{#endif DLLExport int add(int x,int y);#ifdef __cplusplus }#endif#endif
//add.c#include "add.h"int add( int x, int y ){ return x + y;}
//sub.h#ifndef C_LIB_H#define C_LIB_H#define DLLExport __declspec(dllexport)#ifdef __cplusplusextern "C"{#endif DLLExport int sub(int x,int y);#ifdef __cplusplus}#endif#endif
//sub.c#include "sub.h"int sub( int x, int y ){ return x - y;}分开写是为了验证两个接口分在不同的头文件和源文件当中,怎么把这两个接口合并到一个DLL当中。
方法如下:
第一,先分别单独编译这两个源文件得到 add.obj sub.obj
第二,自己手动链接这两个obj文件,命令方式如下:link /DLL /OUT:test.dll add.obj sub.obj
这样就合并了这两个接口方法到test.dll当中。
C++ 调用方式如下:
#include "add.h"#include "sub.h"#include <stdio.h>extern "C" int __declspec(dllimport) sub(int x,int y);extern "C" int __declspec(dllimport) add(int x,int y);int main(){ int result = add(2,3); printf("%d\n",result); result = sub(3, 2); printf("%d",result); getchar(); return 0;}
0 0
- C编写的动态库dll C++调用
- Java调用C/C++编写的第三方dll动态链接库
- java调用c/c++编写的第三方dll动态链接库
- JNI技术之Java调用C/C++编写的第三方dll-动态链接库
- Java调用C/C++编写的第三方dll动态链接库
- 调用C语言编写的DLL文件
- 编写C#调用的C++DLL
- 编写C#调用的C++DLL
- JAVA JNI调用C编写的dll
- 编写C#调用的C++DLL
- c/c++动态库(DLL)调用,c#等其他语言调用c/c++的DLL
- java中调用C/C++编写的生成的动态连接库dll文件接口的简单例子
- C#动态调用c++DLL的方法
- C#动态调用c++DLL的方法
- C函数的DLL,C++动态调用。
- c调用c++编的dll,c++调用c编写的dll,extern “C”的用法
- Java调用C/C++编写的第三方dll动态链接库(非native API)--- JNI
- Java调用C/C++编写的第三方dll动态链接库(非native API)--- JNI
- 怎么实现iMindMap中的插入功能的快速运用
- java 向上与向下类型转换
- 【iOS开发】如何查看真机的沙盒(图文教程)
- 计算机视觉与图像处理相关的国内外重要期刊汇总
- Android版本更新
- C编写的动态库dll C++调用
- Slony1 增加表复制
- apache mesos 入门(7)——多节点mesos+marathon环境部署
- iOS内存优化常用方法(更新中)
- Android笔记--Activity
- 每个程序员都会的 35 个 jQuery 小技巧
- Android Studio 卡顿问题解决方案
- 10023---会员管理系统的设计和开发
- Caffe各版本与源码全透析