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

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

  而DLLVC中有三种形式:

  1Non-MFC Dlls

  2Regular Dlls

  3Extension Dlls

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

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文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值