日常记录20150410

来源:互联网 发布:软件测评 编辑:程序博客网 时间:2024/06/08 11:04

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

0 0