如何调用DLL 中的C++类(隐式链接)
最近在整DLL,对于从DLL中导出 c++类,自己的学习笔记如下:
我用的是VS2010. 不过其他VS编译器应该都差不多吧!
步骤一:建一个 win32解决方案,主工程(就是还有 main函数的)那个我就不说
了),DLL工程最后一步的Application type选中Dll:
步骤二:在 DLL工程中添加两个文件: clsDLL.h, clsDLL.cpp
//clsDLL.h
#pragmaonce
#ifndef DLLEXPT
#defineDLLEXPT __declspec (dllexport)
#endif
classDLLEXPT myCls
{
public:
void test();
};
// classDLL.cpp : Defines the exported functions for the DLLapplication.
//
#include"clsDLL.h"
#include<stdio.h>
#ifndef DLLEXPT
#defineDLLEXPT __declspec (dllexport)
#endif
voidmyCls::test()
{
printf("we are testing my program!/n");
}
步骤三:在主工程中的 main.cpp文件中,
添加#include"..//clsDLL/clsDLL.h" ,就是 include上面 DLL中头文件。
步骤四:在主工程中的main.cpp文件中,
添加#pragma comment (lib , "..//Debug//clsDLL.lib"), 实现隐式连接。
步骤五:接下来就和使用一般 C++类没有区别了。
Main.cpp文件内容如下:
#include<stdio.h>
#include"..//clsDLL/clsDLL.h"
#pragmacomment(lib ,"..//Debug//clsDLL.lib")
voidmain()
{
myCls c;
c.test();
}