#include <Windows.h>
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MessageBox( NULL, L"First blood! 你好,Visual Studio!", L" 消息窗口", 0 );//顯示一個消息框
return 0;
}
// 如果在項目-屬性-配置屬性-高級-高級屬性-字符集 里面把 使用Unicode字符集改為使用多字節字符集,則
// L"First blood! 你好,Visual Studio!", L" 消息窗口" 這兩個字符串會報錯,顯示 E0167 "const wchar_t *" 類型的實參與 "LPCSTR" 類型的形參不兼容
// 也即 L"xxxxxx" 要和 使用Unicode字符集 搭配, "xxxxxxx" 和 使用多字節字符集 搭配,配錯則vs2019就會報錯說E0167 "const wchar_t *" 類型的實參與 "LPCSTR" 類型的形參不兼容
/*****
// Beginning Game Programming, 4th Edition
// Chapter 1 - HelloWorld program
#include <windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nShowCmd)
{
MessageBox(NULL, "Welcome to Windows Programming!","HELLO WORLD", MB_OK | MB_ICONEXCLAMATION);
}
// "Welcome to Windows Programming!"和"HELLO WORLD"出現兩個報錯: E0167 "const wchar_t *" 類型的實參與 "LPCSTR" 類型的形參不兼容
// 原因是vs2019使用unicode字符集,
// 在 vc6.0 或者 vc++2010 上編譯運行不會出現這個錯誤提示,因為 vc6.0 或者 vc++2010 默認使用字符 ANSII 編碼方式,而 vs 默認使用 UNICODE 編碼方式(使用 Unicode 字符集)。兩種編碼方式對一些字符所占用的內存空間大小不同,為了實現兼容,可以在 vs 中進行項目屬性設置,即,將“使用 Unicode 字符集”改為“使用多字節字符集
// 解決辦法:需要在項目-屬性-配置屬性-高級-高級屬性-字符集 里面把 使用Unicode字符集改為 使用多字節字符集,兩個報錯信息就會消失
// https://blog.csdn.net/qq_43170478/article/details/104085919
// 要么 維持使用Unicode字符集 的話,就需要把 "Welcome to Windows Programming!" 改為L"Welcome to Windows Programming!"
// 把 "HELLO WORLD" 改為 L"HELLO WORLD"
****/