代码改变世界

如何调用 DLL 中的C++ 类(隐式链接)

2012-05-08 12:19  java20130722  阅读(337)  评论(0编辑  收藏  举报

 

如何调用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();

}