日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

《windows程序设计》第二章学习心得

發布時間:2024/4/17 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《windows程序设计》第二章学习心得 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Unicode簡介

Unicode是ASCII字符編碼的一個擴展。Unicode用的是16位字符編碼,而不是像ASCII那樣的7位編碼。

---------------------------------------------------------------------------------------------------------------------------------------------

C語言中寬字符是基于wchar_t數據類型的。

typedef unsigned short wchar_t;

wchar_t c = 'A';等同于wchar_t c = L'A';

---------------------------------------------------------------------------------------------------------------------------------------------

wchar_t str[1000] = {0};

wcscpy(str, L"Hello");
wcscpy(str, TEXT("Hello"));???

C++標準庫函數提供了字符和字符串的操作函數,并提供了其UNICODE版本,如:
char *strcpy(char *strDestination, const char *strSource);
wchar_t *wcscpy(wchar_t *strDestination, const wchar_t *strSource); wcscpy()即為strcpy()的寬字符版本,與_T類似的,Visual C++提供了類似的同名函數:

#ifdef UNICODE??????
#define _tcscpy wcscpy?
#else?????
#define _tcscpy strcpy?
#endif?

_tcscpy
在編譯時會根據條件被替換,
如果是 非UNICODE 工程,它就被替換為 strcpy
UNICODE 工程被替換為 wcscpy

?

?

寬字符的輸出問題:

wchar_t str[] = L"qwe123";

C語言輸出:wprintf(L"%s\n", str);

C++輸出:wcout << str << endl;

相比如果輸出漢字的話:

wchar_t str[] = L"哇哈哈";setlocale(LC_ALL, "");wcout << str << endl;wprintf(L"%s\n", str);

需要本地化函數輸出。

char*?setlocale(int?category,?const?char* locale);

category:為locale分類,表達一種locale的領域方面,通常有下面這些預定義常量:LC_ALL、LC_COLLATE、LC_CTYPE、LC_MESSAGES、LC_MONETARY、LC_NUMERIC、LC_TIME,其中 LC_ALL 表示所有其它locale分類的并集。
locale:為期望設定的locale名稱字符串,在Linux/Unix環境下,通常以下面格式表示locale名稱:language[_territory][.codeset][@modifier],language 為 ISO 639 中規定的語言代碼,territory 為 ISO 3166 中規定的國家/地區代碼,codeset 為字符集名稱。

C 和 C++ 的標準庫分別有自己的 locale 操作方法,C 標準庫的 locale 設定函數是 setlocale(),而 C++ 標準庫有 locale 類和流對象的 imbue() 方法。

locale.h是C程序設計語言標準函數庫的一個頭文件,聲明了C語言本地化函數.?這些函數用于在處理多種自然語言的軟件編程設計時,把程序調整到特定的區域設置.?這些區域設置影響到C語言標準庫的輸入/輸出函數.

-----------------------------------------------------------------------------------------------------------------------------------------------------

在使用寬字符的時候,字符串的字符長度并沒有改變,改變的只是字節的長度。

#include <iostream> #include <cstdlib> using namespace std;int main() {wchar_t str[] = L"12345";cout << "sizeof(str) = " << sizeof(str) << endl;cout << "sizeof(wcslen) = " << wcslen(str) << endl;return 0; }輸出:

sizeof(str) = 12
sizeof(wcslen) = 5
請按任意鍵繼續. . .

-------------------------------------------------------------------------------------------------------------------------------------------------------
學習過程中,出現了MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup

出現這個的原因是:

我接著使用了先前編輯windowsGUI程序使用的入口還是WinMain,而此時是W32控制臺程序,沒有進行轉化。

解決方案見:http://blog.csdn.net/lgh1992314/article/details/8701358

MessageBox的使用:

VS2010下默認是UNICODE編碼,所以進行MessageBox輸出的時候得注意編碼方式。

1、我們可以強制使用ANSI編碼方式,即MessageBoxA。

#include <windows.h> #include <stdio.h>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {char str[1024] = {0};sprintf(str, "%s","12345");MessageBoxA(NULL, str, str, 0);return 0; }
2、使用UNICODE編碼,注意user32.dll里并沒有MessageBox的入口點,僅僅是簡單的#define MessageBoxW?MessageBox

#include <windows.h> #include <stdio.h>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {wchar_t str[1024] = {0};wsprintf(str, L"%s",L"哇哈啊哈");MessageBox(NULL, str, str, 0);return 0; }-------------------------------------------------------------------------------------------------------------------------------------------

如何定義UNICODE標識符?

UNICODE標識符的定義要在所有源文件之上,當然包括windows.h,加上一句 #define UNICODE

--------------------------------------------------------------------------------------------------------------------------------------------

在windows程序中不能使用cin、cout、scanf等標準輸入輸出函數。

------------------------------------------------------------------------------------------------------------------------------

格式化的消息框-----顯示視頻顯示器的寬度和高度。

#include <windows.h> #include <stdio.h> #include <tchar.h>int CDECL MessageBoxPrintf(TCHAR *szCaption, TCHAR *szFormat, ...) {TCHAR szBuffer [1024];va_list pArgList;va_start(pArgList, szFormat);_vsntprintf(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), szFormat, pArgList);va_end(pArgList);return MessageBox(NULL, LPWSTR(szBuffer), LPWSTR(szCaption), 0); }int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE PrevInstance, LPSTR lpCmdLine, int iCmdShow) {int cxScreen, cyScreen;cxScreen = GetSystemMetrics(SM_CXSCREEN);cyScreen = GetSystemMetrics(SM_CYSCREEN);MessageBoxPrintf(TEXT("Screen"), TEXT("The screen is %i pixels wide by %i pixels high."), cxScreen, cyScreen); }

顯示效果:



轉載于:https://www.cnblogs.com/lgh1992314/archive/2013/03/20/5835161.html

總結

以上是生活随笔為你收集整理的《windows程序设计》第二章学习心得的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 香蕉福利| 中文字幕欧美亚洲 | 一进一出视频 | 最新av在线网站 | 日本黄色三级 | 国产在线超碰 | 97久久人澡人人添人人爽 | 成人a v视频 | 欧美一区二区三区免费 | 色播在线观看 | 精品久久久免费 | 国产麻豆午夜三级精品 | 性欧美8khd高清极品 | 亚洲av无码一区二区三区在线观看 | 99久久国产宗和精品1上映 | 无码人妻精品一区二区三区99不卡 | 国产日韩欧美在线播放 | 日韩黄网 | 美女光屁股视频 | 91天堂视频 | 草草影院在线播放 | 欧美精品国产 | 久久成人免费网站 | 九九九九精品九九九九 | www成人免费 | 苍井空张开腿实干12次 | 欧美做受视频 | 欧洲精品在线观看 | 日韩毛片基地 | 乱色精品无码一区二区国产盗 | 私拍在线 | 成人欧美精品一区二区 | 日韩视频一区二区三区在线播放免费观看 | 8x8ⅹ国产精品一区二区 | 久久精品国产欧美亚洲人人爽 | 中文字幕人妻丝袜二区 | 日本91网站 | xx69欧美| 国产理论av| 欧美在线色视频 | 国产精品无码成人网站视频 | 国产一区二区网 | 少妇高潮一区二区三区69 | 在线中文字幕第一页 | 亚洲欧美一区二区三区久久 | 午夜一级片| 免费看欧美黑人毛片 | 日韩精品一区二区av | 二区在线视频 | 射死你天天日 | 久久免费视频99 | 国产黑丝在线 | 又粗又猛又爽又黄的视频 | 中文字幕精品一区二区精品 | 黄a网站| 日韩精品免费一区二区三区竹菊 | 少妇精品高潮欲妇又嫩中文字幕 | 超碰在线最新 | 国产日韩欧美91 | 免费男女乱淫真视频免费播放 | 香蕉av在线播放 | 国产精品久久久久久久免费看 | 日本中文字幕高清 | 强行挺进皇后紧窄湿润小说 | 欧美成人综合一区 | 中国一区二区视频 | 三级小说视频 | 日本a级片网站 | 国产精品久久欧美久久一区 | 亚洲激情区 | 成人区一区二区 | 婷婷爱五月 | 无码视频一区二区三区 | 久久免费视频观看 | 免费黄色链接 | julia一区二区中文久久97 | 自拍av在线 | 国产乱码精品一区二区 | 日本xxxxxxxxx69 | 亚洲视频网址 | 美日韩丰满少妇在线观看 | 不卡视频国产 | 特级西西人体 | 成人亚洲免费 | 成人黄色大片在线观看 | 欧美激情在线观看一区 | 青青草原综合久久大伊人精品 | 51成人精品网站 | 亚洲欧美999 | 天天做天天干 | 极品粉嫩小仙女高潮喷水久久 | 豆花在线观看 | 国产精品二区三区 | 超碰caopeng | 亚洲精品成av人片天堂无码 | 国产成人无码一区二区在线播放 | 亚洲啪啪免费视频 | 欧美三级视频在线播放 | 免费在线视频观看 |