c++调用dll或者lib导出的类
2013-02-05 14:59
399 查看
一、创建静态的lib或者动态的dll
1、头文件:data.h
class _declspec(dllexport) DATA
{
public:
int get();
void set(int data);
private:
int m_data;
};
2、源文件:data.cpp
#include "data.h"
inline int DATA::get()
{
return m_data;
};
inline void DATA::set(int data)
{
m_data = data;
};
若是创建静态lib,则最后有用的是data.lib;若是创建动态的dll,则最后有用的是data.dll和data.lib
二、调用dll或者lib的主程序(与函数不同的是,必须是包含头文件的方式,而不能用class _declspec(dllimport) DATA;)
#include "data.h"
#include <iostream>
using namespace std;
#pragma comment(lib,".\\debug\\DATA.lib")
int main()
{
DATA data;
int nData;
data.set(10);
nData = data.get();
cout<<nData<<endl;
getchar();
return 0;
}
调用lib则需要把data.lib放在.\\debug\\DATA.lib下,代码有变动需要重新编译主程序;若是调用的dll,则需要把link的lib放到.\\debug\\DATA.lib下,还需要把data.dll放到与exe同样的目录下,dll的代码有变动,若只是类的函数体变动,而接口没有变动,则不需要编译主程序,只需要替换data.dll供主程序调用。
1、头文件:data.h
class _declspec(dllexport) DATA
{
public:
int get();
void set(int data);
private:
int m_data;
};
2、源文件:data.cpp
#include "data.h"
inline int DATA::get()
{
return m_data;
};
inline void DATA::set(int data)
{
m_data = data;
};
若是创建静态lib,则最后有用的是data.lib;若是创建动态的dll,则最后有用的是data.dll和data.lib
二、调用dll或者lib的主程序(与函数不同的是,必须是包含头文件的方式,而不能用class _declspec(dllimport) DATA;)
#include "data.h"
#include <iostream>
using namespace std;
#pragma comment(lib,".\\debug\\DATA.lib")
int main()
{
DATA data;
int nData;
data.set(10);
nData = data.get();
cout<<nData<<endl;
getchar();
return 0;
}
调用lib则需要把data.lib放在.\\debug\\DATA.lib下,代码有变动需要重新编译主程序;若是调用的dll,则需要把link的lib放到.\\debug\\DATA.lib下,还需要把data.dll放到与exe同样的目录下,dll的代码有变动,若只是类的函数体变动,而接口没有变动,则不需要编译主程序,只需要替换data.dll供主程序调用。
相关文章推荐
- C++与matlab用dll或者Lib的方式混编方法
- java调用dll.C++调用没有lib的dll中类中的函数.
- C++ 调用dll及lib的区别
- Win下JNA调用C/C++导出的DLL
- GPU(CUDA)学习日记(二)--------VS2010不同工程之间调用DLL或者LIB
- C++ 调用lib 和 dll的 方法 及 动态库DLL与静态库lib的区别
- C++ 调用Lib和Dll 的方法及 动态库DLL与静态库lib的区别
- vs2010下C++调用lib或dll文件
- C/C++/C#问题记录(一)VS2012编译调用dll项目找不到lib的workaround
- C#与DLL和COM的混合编程(1)-C#调用C++写的非托管的DLL中导出的函数
- C++中对Lib及Dll的链接调用
- C++与matlab用dll或者Lib的方式混编方法
- C++ 调用DLL方法 及 DLL与lib的区别
- C++与matlab用dll或者Lib的方式混编方法
- Qt调用MFC的dll或者lib出错
- C++与matlab用dll或者Lib的方式混编方法
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- java调用C++ dll(已有dll,没有lib)
- C++与matlab用dll或者Lib的方式混编方法
- C#中调用C++的dll的参数为指针类型的导出函数