VC6.0如何创建一个基本的Win32 DLL工程

第一步: 使用VC6.0工程向导 Win32 Dynamic-Link Library

创建Win32s1工程,并在向导第一步选择 An empty DLL project

第二步: 在FileView中分别创建 dll1.h和dll1.cpp

①、在dll1.h中定义

#ifndef _DLL_BASICUI_H_

#define _DLL_BASICUI_H_   //告诉编译器只编译该文件一次

 

#if defined DLL_EXPORT

#define SBUI_API __declspec(dllexport)

#else

#define SBUI_API __declspec(dllimport)

#endif

 

/*

C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个函数的原型为: void foo(int x, int y);
该函数被C编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。
C++提供了C连接交换指定符号extern“C”来解决名字匹配问题。

*/

 

 

/*
如果编译器看到 __cplusplus 标识,则 extern "C" 参与编译, 反之不编译
这样的预处理命令对调试程序、平台移植非常有用
如果 extern "C" 被编译{...}中间的语句执行C语法规则

另外, __cplusplus 是C++编译器的保留宏定义,也就是说C++编译器认为这个
宏已经定义了

*/
#ifdef __cplusplus   

// only need to export C interface if used by C++ source code
extern "C" {
#endif

//……

//这里是导出函数的声明部分

#undef  SBUI_API
#ifdef __cplusplus
}
#endif

 

#endif

 

②、在dll1.cpp文件中

#define  DLL_EXPORT

#include <windows.h>

#include "dll1.h"

 

第三步: 添加功能函数

首先,在头文件中声明导出函数

SBUI_API BOOL  SBUI_DoGetPathName(HWND   hwndParent, //主窗口句柄

                                           LPTSTR pPathName,  //全路径名

                                           short  nFLAG,              //路径标志 1打开;,2保存

                                           short  nFileType);  //文件类型 1配置文件,2位图文件

其次,在.cpp文件中实现函数

BOOL  SBUI_DoGetPathName(HWND   hwndParent,

                                           LPTSTR pPathName, 

                                           short  nFLAG,             

                                           short  nFileType) 

{

//……

}

备注: 长此以来我就是按照这个格式,创建自己的Win32 DLL工程,不知道正确不正确,我已经用了一段时间了,呵呵!~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值