1. BEGIN_MESSAGE_MAP 映射的作用是什么
2. CACSClientShellApp继承的CWinAppEx是什么, 为什么CACSClient继承的是CWinApp,这两个有什么区别
3. 尽量使用单例模式来替换全局类,为什么CACSClientApp和CACSClientShellApp都有声明全局类
4. ACSClientWnd中为什么包含大量头文件,编程规范有写明尽量使用前置声明替代include吧
5. 错误码定义的时候为什么采用#define而不使用enum
需要了解Win32编程
1. dll文件
2. shell
通过CreateMutex保证程序只有一个运行实例
如已有运行实例则会产生error
GetLastError() == ERROR_ALREADY_EXISTS
HMODULE 表示模块句柄
GetModuleHandleEx(dwFlags, lpModuleName, phModule)
dwFlags = GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 表示lpModuleName是模块中的一个地址
m_pszAppName指向的是工程名
LPCTSTR用来表示字符是否使用UNICODE,如果定义了UNICODE,则字符会被当做UNICODE字符,否则就是ANSI字符
基类的析构需要加上virtual,从而保证派生类能正常析构
#pragma once 可以避免名字冲突
#ifndef 的移植性更佳
SDK的windef.h中 typedef int BOOL