VC6创建MFC规则DLL标准过程

    技术2022-05-19  30

    一、创建MFC规则DLL

    1.启动VC6利用向导新建MFC规则共享DLL,如项目名:SQLStrBase

    2.添加自定义的头文件和源文件,如:SQLStrSet.h和SQLStrSet.cpp

    3.输出目录及拷贝头文件路径设置

    3.1输出目录设置

    Project->Setting...->General选项卡,Output files设置为:D:/Debug,如下图:

     

    3.2头文件拷贝路径

    Project->Setting...->Post-build step选项卡,添加生成后拷贝事件,如下图:

     

    4.头文件中添加如下代码:

    /** 文件名称:SQLStrSet.h* 文件标识:* 摘要:创建数据库表的SQL语句** 当前版本:1.0* 作者:齐付超* 完成日期:2009年10月20日** 取代版本:1.0* 原作者:齐付超* 完成日期:2009年10月20日*/

    //避免SQLStrSet.h头文件被重复加载#ifndef __SQLSTRSET_H#define __SQLSTRSET_H

    //添加需包含的头文件

     

    //定义宏 OUTEXPORT, 声明将函数在源程序中声明为导出,//在调用程序中声明为导入#ifndef __SQLSTRBASE#define OUTEXPORT  __declspec(dllimport) #else#define OUTEXPORT  __declspec(dllexport)#endif

    数据库管理表extern "C"{ //1 数据库管理表 OUTEXPORT BOOL WINAPI _GetDBManagerStr(CString *sqlstr);}

    /岩芯数据库表创建SQL语句extern "C"{

     //1 矿区基本信息表 OUTEXPORT BOOL WINAPI _GetMineBaseInfoStr(CString *sqlstr);

     ......}

    /照片库表///extern "C"{ //1 照片表 OUTEXPORT BOOL WINAPI _GetZKSPhotoStr(CString *sqlstr);}

    ///数据字典信息表//extern "C"{ //1 数据字典信息表 OUTEXPORT BOOL WINAPI _GetDataDictStr(CString *sqlstr);}

    //在调用程序中加载生成的 SQLStrBase.lib 文件#ifndef __SQLSTRBASE #pragma comment(lib, "SQLStrBase.lib")#endif

    #endif

     5.添加头文件中预定义宏__SQLSTRBASE,此宏用于标识dll源程序和调用程序包含此头文件中声明的函数的导入导出方式及lib是否加载,起到运行时选择的作用。

    Project->Setting...->C/C++选项卡,Preprocessor definitions:添加__SQLSTRBASE宏,如下图:

    6.在.cpp文件中添加源码

    注意要包含 StdAfx.h头文件,否则会报错。

    /**版权说明及文件描述见 SQLStrSet.h 头文件*/

    //添加所需头文件#include "StdAfx.h"#include "SQLStrSet.h"

    岩芯数据库表创建SQL语句实现//矿区基本信息表BOOL WINAPI _GetMineBaseInfoStr(CString *sqlstr){ CString tempstr=_T(""); tempstr="CREATE TABLE MINE_BASEINFO"; tempstr+="( "; tempstr+="MINE_ID int IDENTITY(1,1), "; tempstr+="MINE_CODE varchar(20), "; tempstr+="EXPL_STAGE varchar(1), ";

    ...... tempstr+="PRIMARY KEY(MINE_CODE,EXPL_STAGE)";  tempstr+=" )"; *sqlstr=tempstr;

     return TRUE;}

     7.编译运行在设置的输出目录下即可生成SQLStrBase.dll和SQLStrBase.lib两个文件及拷贝的SQLStrSet.h头文件。

    二、DLL的调用

    1.启动VC6 另建MFC对话框应用程序项目,如DLLTestApp。

    2.设置.exe输出路径(参考DLL输出目录设置过程,并且目录相同),

    3.设置include library包含路径

    Tools->Options...->Directories选项卡,Show directories for:下分别设置include files 和library files包含目录,包含D:/Debug,使得生成的dll lib .h文件能够搜索到。

    4.在对话框对应.cpp下添加dll头文件代码:

    #include "SQLStrSet.h"

    5.在对话框上添加一Button按钮,添加Click事件响应函数,并调用dll中到处的方法,代码如下:

    // TODO: Add your control notification handler code here CString tempstr=_T(""); _GetMineBaseInfoStr(&tempstr); AfxMessageBox(tempstr);

    6.运行程序显示结果如下图:

     

     


    最新回复(0)