MFC扩展DLL的dllmain.cpp文件内容
2018-01-09 11:15
288 查看
学习MFC向导创建的扩展库代码 记录一下 总结:下面是MFC应用程序调用扩展库的方式代码,如果是一般DLL调用扩展DLL则需要去掉new CDynLinkLibrary(SH2ReportDLL);,然后自己显式的写一个导出函数。
// dllmain.cpp : 定义 DLL 的初始化例程。
//
#include "stdafx.h"
#include <afxwin.h>
#include <afxdllx.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
static AFX_EXTENSION_MODULE SH2ReportDLL = { NULL, NULL };//静态全局结构体初始化
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
// 如果使用 lpReserved,请将此移除
UNREFERENCED_PARAMETER(lpReserved);
if (dwReason == DLL_PROCESS_ATTACH)
{
TRACE0("SH2Report.DLL 正在初始化!\n");
// 扩展 DLL 一次性初始化
if (!AfxInitExtensionModule(SH2ReportDLL, hInstance))
return 0;
// 将此 DLL 插入到资源链中
// 注意: 如果此扩展 DLL 由
// MFC 规则 DLL (如 ActiveX 控件)隐式链接到,
// 而不是由 MFC 应用程序链接到,则需要
// 将此行从 DllMain 中移除并将其放置在一个
// 从此扩展 DLL 导出的单独的函数中。使用此扩展 DLL 的
// 规则 DLL 然后应显式
// 调用该函数以初始化此扩展 DLL。否则,
// CDynLinkLibrary 对象不会附加到
// 规则 DLL 的资源链,并将导致严重的
// 问题。
new CDynLinkLibrary(SH2ReportDLL);
}
else if (dwReason == DLL_PROCESS_DETACH)
{
TRACE0("SH2Report.DLL 正在终止!\n");
// 在调用析构函数之前终止该库
AfxTermExtensionModule(SH2ReportDLL);
}
return 1; // 确定
}
// dllmain.cpp : 定义 DLL 的初始化例程。
//
#include "stdafx.h"
#include <afxwin.h>
#include <afxdllx.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
static AFX_EXTENSION_MODULE SH2ReportDLL = { NULL, NULL };//静态全局结构体初始化
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
// 如果使用 lpReserved,请将此移除
UNREFERENCED_PARAMETER(lpReserved);
if (dwReason == DLL_PROCESS_ATTACH)
{
TRACE0("SH2Report.DLL 正在初始化!\n");
// 扩展 DLL 一次性初始化
if (!AfxInitExtensionModule(SH2ReportDLL, hInstance))
return 0;
// 将此 DLL 插入到资源链中
// 注意: 如果此扩展 DLL 由
// MFC 规则 DLL (如 ActiveX 控件)隐式链接到,
// 而不是由 MFC 应用程序链接到,则需要
// 将此行从 DllMain 中移除并将其放置在一个
// 从此扩展 DLL 导出的单独的函数中。使用此扩展 DLL 的
// 规则 DLL 然后应显式
// 调用该函数以初始化此扩展 DLL。否则,
// CDynLinkLibrary 对象不会附加到
// 规则 DLL 的资源链,并将导致严重的
// 问题。
new CDynLinkLibrary(SH2ReportDLL);
}
else if (dwReason == DLL_PROCESS_DETACH)
{
TRACE0("SH2Report.DLL 正在终止!\n");
// 在调用析构函数之前终止该库
AfxTermExtensionModule(SH2ReportDLL);
}
return 1; // 确定
}
相关文章推荐
- MFC扩展DLL —— 将已有的.h .cpp的MFC文件方便转换为DLL
- MFC扩展DLL导出函数和变量
- DLL动态链接库编程入门之五:MFC扩展DLL
- 用MFC实现代码获取当前EXE 执行的绝对路径,用于扩展相对路径扩展,以及计算文件大小功能
- 实现MFC扩展DLL中导出类和对话框 【转】
- 实现MFC扩展DLL中导出类和对话框
- 1.扩展ant,对文件内容的行进行排序:java类
- VC++动态链接库编程之MFC扩展 DLL
- 静态.共享的规则MFC DLL/MFC扩展DLL详解
- 在dll工程中使用mfc资源,窗体无法弹出如何解决?(文章内容均系转载,读者尚未理解)
- VC 动态链接库编程之MFC扩展DLL
- MFC 怎么 调用dll文件里带结构体的函数 求大神
- 新手遇到打开含有多个cpp文件的或者mfc工程的时候也许会用到的哦!!!
- VC/MFC 使用jsoncpp解析json格式内容
- 六. MFC扩展DLL的创建
- MFC DLL中添加DllMain的方法
- 一步一步实现MFC扩展DLL中导出类和对话框
- (转载)在MFC扩展DLL中输出对话框
- Regular DLL(MFC规则DLL)、MFC...Extension DLL(MFC扩展DLL 区别
- C/CPP读取文件内的所有内容