QuakeGod
2022-01-16 326d3e312c74726814c39c9d112faab03c4a167c
提交 | 用户 | age
0a20f7 1 // KLink2.cpp: 定义 DLL 的初始化例程。
Q 2 //
3
4 #include "pch.h"
5 #include "framework.h"
6 #include "KLink2.h"
7 #include "afxdialogex.h"
8 #include "CDialogCommSet1.h"
9
10 #ifdef _DEBUG
11 #define new DEBUG_NEW
12 #endif
13
14 //
15 //TODO:  如果此 DLL 相对于 MFC DLL 是动态链接的,
16 //        则从此 DLL 导出的任何调入
17 //        MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
18 //        该函数的最前面。
19 //
20 //        例如: 
21 //
22 //        extern "C" BOOL PASCAL EXPORT ExportedFunction()
23 //        {
24 //            AFX_MANAGE_STATE(AfxGetStaticModuleState());
25 //            // 此处为普通函数体
26 //        }
27 //
28 //        此宏先于任何 MFC 调用
29 //        出现在每个函数中十分重要。  这意味着
30 //        它必须作为以下项中的第一个语句:
31 //        出现,甚至先于所有对象变量声明,
32 //        这是因为它们的构造函数可能生成 MFC
33 //        DLL 调用。
34 //
35 //        有关其他详细信息,
36 //        请参阅 MFC 技术说明 33 和 58。
37 //
38
39 // CKLink2App
40
41 BEGIN_MESSAGE_MAP(CKLink2App, CWinApp)
42 END_MESSAGE_MAP()
43
44
45 // CKLink2App 构造
46
47 CKLink2App::CKLink2App()
48 {
49     // TODO:  在此处添加构造代码,
50     // 将所有重要的初始化放置在 InitInstance 中
51 }
52
53
54 // 唯一的 CKLink2App 对象
55
56 CKLink2App theApp;
57
58
59 // CKLink2App 初始化
60
61 BOOL CKLink2App::InitInstance()
62 {
63     CWinApp::InitInstance();
64
65     if (!AfxSocketInit())
66     {
67         AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
68         return FALSE;
69     }
70     
71     return TRUE;
72 }
73
74
75 int CKLink2App::ExitInstance()
76 {
77     // TODO: 在此添加专用代码和/或调用基类
78
79     return CWinApp::ExitInstance();
80 }
81
82 int DoConfig(int n)
83 {
84     //AFX_MANAGE_STATE(AfxGetStaticModuleState());
85
86     //方法2的状态变更
87     HINSTANCE save_hInstance = AfxGetResourceHandle();
88
89     AfxSetResourceHandle(theApp.m_hInstance);
90
91 //    CDialog dlg(IDD_DLL_DIALOG);//打开ID为2000的对话框
92 //    dlg.DoModal();
93     
94     CDialogCommSet1 dialog1;
95     INT_PTR r = dialog1.DoModal();
96     //方法2的状态还原
97
98     AfxSetResourceHandle(save_hInstance);
99
100     return 0;
101 }