您的位置:首页 > 编程语言

VC.net环境下轻松实现DLL编程

2005-11-21 13:15 232 查看
在我们实际用软件时,经常可看到许多动态连接库。动态连接库有其自身的优点如节省内存、支持多语种等功能,而且,当DLL中的函数改变后,只要不是参数的改变调用起的函数并不需要重新编译。这在编程时十分有用。

  而DLL在VC中有三种形式:

  1、Non-MFC Dlls

  2、Regular Dlls

  3、Extension Dlls

Non-MFC DLL:指的是不用MFC的类库结构,直接用C语言写的DLL,其输出的函数一般用的是标准C接口,并能被非MFC或MFC编写的应用程序所调用。

Regular DLL:和下述的Extension Dlls一样,是用MFC类库编写的。明显的特点是在源文件里有一个继承CWinApp的类。其又可细分成静态连接到MFC和动态连接到MFC上的。但静态连接到MFC的动态连接库只被VC的专业般和企业版所支持。

Extension DLL:用来实现从MFC所继承下来的类的重新利用,也就是说,用这种类型的动态连接库,可以用来输出一个从MFC所继承下来的类。Extension DLL使用MFC的动态连接版本所创建的,并且它只被用MFC类库所编写的应用程序所调用。

通常情况下,我们只需要使用第一种形式的DLL即可,下面将具体介绍如何在VC.net环境下快速实现DLL编程。

图1 创建DLL项目一、创建DLL项目

如图1,在左边窗口选择Visual C++项目下的Win32,在窗口右面选择Win32控制台项目,在窗口下方填入项目名称,然后点击确定按钮。出现图2应用程序向导窗口。

在图2中,左边选择“应用程序设置”,然后在右面的窗口中选择应用程序类型为DLL,附加选项中将导出符号项钩上。具体见(图2)。

钩上导出符号选项后,在随后生成的DLL项目中就会有简单例子示例,从而很简单的就能添加自己所需要的函数和类。

最后点击确定按钮。一个DLL项目就完成了。



图2 应用程序设置
二、编写所需函数或类

在产生的DLL项目中选择testDLL.h文件,会有下面的一些代码示例:

// 此类是从 testDLL.dll 导出的

class TESTDLL_API CtestDLL {

public:

CtestDLL(void);

// TODO: 在此添加您的方法。

};

extern TESTDLL_API int ntestDLL;

TESTDLL_API int fntestDLL(void);

其中class TESTDLL_API CtestDLL是如何到处类的实例。

TESTDLL_API int fntestDLL(void)是如何导出函数的实例。

extern TESTDLL_API int ntestDLL是如何到处变量的实例。(由于是在testDLL.cpp中定义的,所以这边使用的extern作为远程声明。)

即所有需要导出的类、函数、变量,只需要在他们的定义前增加TESTDLL_API即可。而TESTDLL_API是在testDLL.h中由VC.net自己自动生成的。具体生成文件见testDLL.h。

#ifdef TESTDLL_EXPORTS

#define TESTDLL_API __declspec(dllexport)

#else

#define TESTDLL_API __declspec(dllimport)

#endif

如上所述,就可以将所要转化成DLL的工程很容易的轻松实现。



图3 testDLL.h文件
图3 testDLL.h文件

图3 testDLL.h文件

图3 testDLL.h文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: