C++中dll导出和使用

C++中dll导出和使用

  • 1.dll导出
  • 2.dll导入
  • 3 可能存在的问题
    • 跨模块dll中,传递string参数报null,无法传递

1.dll导出

通过dllexport可以将需要导出的函数导出,一个文件里仅能用一个导出函数。

#define LineExport __declspec(dllexport)
class LineExport Line
{
public:
	Line(){}
	~Line(){}
	void Cloud(std::string path);
}

在另一个项目中使用注意,需要先编译好Line.dll。
注意:dllexport会在编译生成dll时,自动生成.lib文件,如果不加dllexport,仅编译成dll,则不会生成.lib文件。

2.dll导入

将Line.dll文件复制到项目bin下,并复制Line(d).lib文件到项目lib下.

#include "Line.h"
#ifdef _DEBUG
	#pragma comment(lib,"Lined.lib") //告诉编译器编译时要编译myDll.lib文件
#else
	#pragma comment(lib,"Line.lib")
#endif

#define LineExport __declspec(dllimport)

Line line;
line.Cloud("F://test.txt");

3 可能存在的问题

跨模块dll中,传递string参数报null,无法传递

  1. 可能时一个.h文件中,引用了多个dllexport导致,将不同类型函数分开,使用不同的dllexport导出。
  2. 先编译dll文件,再编译本项目。

你可能感兴趣的:(c++开发,c++,开发语言)