windows 核心编程读书笔记(1-2章)
记的都是我以前学习时漏掉的东西
1. 在visual studio的watch窗口中输入"@err,hr"可以及时的看到GetLastError中的描述
在程序中获取LastError信息示例:
DWORD dwError = GetLastError();
HLOCAL hlocal = NULL;
BOOL fOK = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, NULL, dwError, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), (LPTSTR)&HLOCAL, O, null);
if (hlocal != NULL)
{
MessageBox(NULL, (PCTSTR)LocalLock(hlocal), _T("error"), 0);
LocalFree(hlocal);
}
2. _UNICODE宏(注意下划线)用于C运行期头文件,而UNICODE宏用于Windows头文件,通常编译源代码模块时必须同时定义两个宏
3. lstrcmp / lstrcmpi 都要调用windows的CompareString函数
int CompareString(
LCID lcid,
DOWRD fdwStyle,
PCWSTR pString1,
int cch1,
PCTSTR pString2,
int cch2);
LCID GetThreadLocale();
4.
字符比较用的API
PTSTR CharLower(PTSTR pszString);
PTSTR CharUpper(PTSTR pszString);
DWORD CharLowerBuff(PTSTR pszString, DOWRD cchString);
DWORD CharUpperBuff(PTSTR pszString, DOWRD cchString);
BOOL IsCharAlpha(TCHAR ch);
BOOL IsCharAlphaNumeric(TCHAR ch);
BOOL IsCharLower(TCHAR ch);
BOOL IsCharUpper(TCHAR ch);