中国象棋控件 v2.0.13
全部  文件 函数 变量 类型定义 枚举 
dllmain.cpp
1// dllmain.cpp : 定义 DLL 的初始化例程。
2//
3
4#include "framework.h"
5#include <afxwin.h>
6#include <afxdllx.h>
7
8#ifdef _DEBUG
9#define new DEBUG_NEW
10#endif
11
12static AFX_EXTENSION_MODULE ChineseChessViewDLL = { false, nullptr };
13
14extern "C" int APIENTRY
15DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
16{
17 // 如果使用 lpReserved,请将此移除
18 UNREFERENCED_PARAMETER(lpReserved);
19
20 if (dwReason == DLL_PROCESS_ATTACH)
21 {
22 TRACE0("ChineseChessView.DLL 正在初始化!\n");
23
24 // 扩展 DLL 一次性初始化
25 if (!AfxInitExtensionModule(ChineseChessViewDLL, hInstance))
26 return 0;
27
28 // 将此 DLL 插入到资源链中
29 // 注意: 如果此扩展 DLL 由
30 // MFC 规则 DLL (如 ActiveX 控件)隐式链接到,
31 // 而不是由 MFC 应用程序链接到,则需要
32 // 将此行从 DllMain 中移除并将其放置在一个
33 // 从此扩展 DLL 导出的单独的函数中。 使用此扩展 DLL 的
34 // 规则 DLL 然后应显式
35 // 调用该函数以初始化此扩展 DLL。 否则,
36 // CDynLinkLibrary 对象不会附加到
37 // 规则 DLL 的资源链,并将导致严重的
38 // 问题。
39
40 //new CDynLinkLibrary(ChineseChessViewDLL);
41
42 }
43 else if (dwReason == DLL_PROCESS_DETACH)
44 {
45 TRACE0("ChineseChessView.DLL 正在终止!\n");
46
47 // 在调用析构函数之前终止该库
48 AfxTermExtensionModule(ChineseChessViewDLL);
49 }
50 return 1; // 确定
51}
52
53// @see https://docs.microsoft.com/en-us/cpp/mfc/reference/afx-extension-module-structure?view=vs-2019
54// @see https://docs.microsoft.com/en-us/cpp/build/extension-dlls?view=vs-2019
55bool AFX_EXT_CLASS ChineseChessViewNewDynLinkLibrary()
56{
57 new CDynLinkLibrary(ChineseChessViewDLL);
58 return TRUE;
59}