WEB开发网
开发学院软件开发VC DLL初学者指南(非MFC) 阅读

DLL初学者指南(非MFC)

 2007-03-17 21:25:38 来源:WEB开发网   
核心提示:本文示例源代码或素材下载 环境: Visual C++ 2003, Windows源代码: DLL Project的源代码及测试项目我正在学习DLLs,谈不上对其有什么高屋建瓴的见解;本文只是(通过)编码让你看到并想知道代码是如何运行的,DLL初学者指南(非MFC),在本文中,我假定你知道如何使用你的编译器特性

本文示例源代码或素材下载

环境: Visual C++ 2003, Windows

源代码: DLL Project的源代码及测试项目

我正在学习DLLs,谈不上对其有什么高屋建瓴的见解;本文只是(通过)编码让你看到并想知道代码是如何运行的。在本文中,我假定你知道如何使用你的编译器特性,比如设置目录路径等等。

为了建立项目,请选择Win32 控制台项目(Win32 Console Application),并且在应用程序设置标签(the advanced tab)上,选择DLL和空项目选项。DLLs可能并不如你想像的那样难。首先写你的头文件(header file);称为DLLTutorial.h。这个文件与其它头文件一样,其中只是一些函数的原型。

#ifndef _DLL_TUTORIAL_H_
#define _DLL_TUTORIAL_H_
#include <iostream>
#if defined DLL_EXPORT
#define DECLDIR __declspec(dllexport)
#else
#define DECLDIR __declspec(dllimport)
#endif
extern "C"
{
    DECLDIR int Add( int a, int b );
    DECLDIR void Function( void );
}
#endif

前面两行指示编译器只包含这个文件一次。extern "C"告诉编译器该部分可以在C/C++中使用。

在VC++中这里有两个方法来导出函数:

1、使用__declspec,一个Microsoft定义的关键字。

2、创建一个模块定义文件(Module-Definition File即.DEF)。第一种方法稍稍比第二种方法简单些,但两种都工作得很好。

__declspec(dllexport)导出函数符号到在你的DLL中的一个存储类。当下面一行被定义时我定义DECLDIR来运行这个函数,

#define DLL_EXPORT

同时也导入函数如果下面一行

#define DLL_EXPORT

没有在源文件中出现。在此情况下,你将导出函数Add(int a, int b)和Function()。

1 2 3 4  下一页

Tags:DLL 初学者 指南

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接