C函数的dll,C++静态调用以及C++函数的C++静态调用。
2016-12-15 10:24
381 查看
一、项目结构
二、C函数的DLL,C++静态调用。
1、CDLL.h文件
2、CDLL.c文件:
3、C++调用:
说明:CDLL.lib文件,要拷贝到CDLLUse项目中。
三、C++函数的C++静态调用
将CDLL.c改为CDLL即可。
1、CDLL.h文件:
2、CDLL.cpp文件:
3、调用:
可以看到C++函数,在导出的时候,使用:
在使用的时候:
这里没有”C”没有关系,因为都是C++编译器。如果C++函数使用:
则在C++使用的时候,也需要配对的用:
二、C函数的DLL,C++静态调用。
1、CDLL.h文件
#ifndef __CDLL_H__ #define __CDLL_H__ extern int _declspec(dllexport) foo(int x, int y); #endif
2、CDLL.c文件:
#include "CDLL.h" int foo(int x, int y) { return x + y; }
3、C++调用:
#include "DLLDemo.h" #include<iostream> using namespace std; #pragma comment(lib, "CDLL.lib") extern "C" int __declspec(dllimport) foo(int x, int y); int main() { int c = foo(1, 2); cout << c << endl; return 0; }
说明:CDLL.lib文件,要拷贝到CDLLUse项目中。
三、C++函数的C++静态调用
将CDLL.c改为CDLL即可。
1、CDLL.h文件:
#ifndef __CDLL_H__ #define __CDLL_H__ extern int _declspec(dllexport) foo(int x, int y); #endif
2、CDLL.cpp文件:
#include "CDLL.h" int foo(int x, int y) { return x + y; }
3、调用:
#include "DLLDemo.h" #include<iostream> using namespace std; #pragma comment(lib, "CDLL.lib") extern int __declspec(dllimport) foo(int x, int y); int main() { int c = foo(1, 2); cout << c << endl; return 0; }
可以看到C++函数,在导出的时候,使用:
extern int _declspec(dllexport) foo(int x, int y);
在使用的时候:
extern int __declspec(dllimport) foo(int x, int y);
这里没有”C”没有关系,因为都是C++编译器。如果C++函数使用:
extern "C" int _declspec(dllexport) foo(int x, int y);
则在C++使用的时候,也需要配对的用:
extern "C" int __declspec(dllimport) foo(int x, int y);
相关文章推荐
- __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- (转)__declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- C++对dll链接库的显示(动态)调用和隐式(静态)调用
- C++如何调用DLL呢,有两种,一种是静态,另外一种是动态,即通过调用windowsAPI 来加载和卸载DLL,具体思路:
- __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- (二)新建dll以及静态调用dll
- bcb平台的C++dll的静态调用法和动态调用法的方法
- 在C++创建DLL,以及使用C++或者C#分别调用DLL中的方法
- C# 中静态调用C++dll 和C# 中动态调用C++dll
- c++调用c函数 以及c调用c++函数
- android 调用C/C++的互相调用,以及DLL的调用。
- __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- 在C++中调用DLL中的函数——静态调用和动态调用
- bcb平台的C++dll的静态调用法和动态调用法的方法
- (转)__declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- Visual 2012 C++ 创建和静态调用dll
- C# 中静态调用C++dll 和C# 中动态调用C++dll
- Delphi编写DLL(以及静态和动态方式调用)
- __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- C++的声明和定义(针对变量,const变量,C++函数,C函数,类,类的静态成员等)