VS2012 VS2013 MFC如何將工程修改為Unicode模式

2025-07-21 15:20:06 字數 2535 閱讀 4473

1樓:網友

或者直接工程右鍵->屬性->修改字符集。

vs2013除錯mfc程式是出錯

2樓:weida愛問

很明星,提示您將 工程修改為使用unicode模式!

vc2010 已經使用了unicode的工程怎麼去掉它啊

3樓:網友

工程的配置屬性裡,字符集改為使用多位元組字符集。

然後**裡的unicode字元,都要轉換成多位元組的,使用api介面:widechartomultibyte

我vs2010 mfc的多字符集專案,怎麼輸出漢字的unicode字串?例如 你,輸出為

4樓:網友

你的概念很混亂啊,unicode只是一種編碼方式,2位元組1字元,而你說的數字,是每個字元的十進位數值,不叫輸出漢字的unicode字串。

最簡單的方式,假設你的多字元字串是str,那麼轉換為unicode:

cstringw strw(str);

strw就是unicode了,至於你要輸出數字,寫個迴圈就是了,每個字元怎麼列印成數字總不用我說了吧?

我想問,在vistual 2010 mfc中如何將unicode碼的乙個字元常量轉換為anscii碼的字元嗎

5樓:技術挑戰者聯盟

windows api中提供了:

multibytetowidechar函式,將多位元組轉換為unicode;

widechartomultibyte函式,將unicode轉換為多位元組;

在vc6.0的環境裡建立了個mfc工程,放回vs2013開啟dsw檔案時會報錯,這是為什麼??

6樓:匿名使用者

vc6的工程預設是非unicode格式的編碼的,vs2013要求專案必須使用unicode編碼,所以會出錯,建議修改專案的編碼方式即可。

mfc,vs工程屬性中的字符集的問題。

7樓:網友

多位元組字符集」或者「未設定都是非unicode

unicode下預設字串中不管是中文還是英文都佔乙個基本儲存單元2個位元組(unicode的基本單元是short)

非unicode也就是跟一樣,預設字串的基本單元是1個位元組的char,英文數字佔乙個位元組,中文佔兩個位元組,編碼見下圖。

上面說到了「預設字串」的意思是,程式設計過程中很多api的字串引數都是lpctstr,中間帶了t的意思就是編譯器自己決定用unicode還是非unicode,在unicode下,lpctstr等價於lpcwstr(wchar_t*),非unicode下,lpctstr等價於lpcstr(char*)

所以在unicode環境下呼叫乙個api,如果它的引數是lpctstr,那麼這樣的語句不能通過編譯。

fun( "123" );

必須用fun( l"123" );

當然也可以用fun( _t("123") )則同時支援這兩種環境。

俺的vs2012在win7上編的mfc的release,往csv裡面寫中文能夠寫,但放到xp上就寫不出來,只能寫數字英文。

8樓:網友

csv是純文字檔案。因此對unicode的處理並不好,你先通過ue等二進位器,確認一下文字檔案的頭部是否有ff fe字頭,這個是unicode編碼標記,如果沒有,那麼就需要系統進行相容或者程式中只能使用多位元組編碼(非unicode)。而vs2012預設的mfc程式,一般是unicode模式。

在程式寫檔案的時候,先用乙個wchar寫乙個檔案頭,後面繼續寫內容,其它不變。

wchar uhead = 0xffef;

9樓:網友

[xp下亂碼的原因]

windows 2000和windows xp中,諸如記事本(等,可以偵查到缺乏位元組序標記的unicode檔案。這個功能由乙個windows api提供,名為istextunicode()。

但是,這個功能是不完美的,***是一些小寫字型的ascii文字,會錯誤判斷為utf-16。

win2000,winxp下該功能不完美,不過winvista,win7以後的作業系統上已經完善了。

所以win7下可以輸出中文,但xp下可能亂碼)

對策]所以你最好在往csv檔案裡輸入內容之前,先輸出用於標識unicode的位元組序:0xff 0xef。

避免讓文字器去猜格式。

補充解釋/說明]

bom(byte order mark)

為了說明乙個檔案採用的是什麼編碼,在檔案最開始的部分,可以有bom。

比如0xfe 0xff:表示utf-16be;

0xff 0xfe 0x00 0x00:表示utf-32le。

utf-8原本是不需要bom的,因為其自我同步的特性,但是為了明確說明這是utf-8(而不是讓文字器去猜),也可以加上utf-8的bom:0xef 0xbb 0xbf

VS2013新建了個MFC應用程式,新建好編譯就出現問題,我沒修改任何資料,求助

參考warning d 正在重寫 d debug 用 u debug 的錯誤。的解決思路。在 visual studio 開發環境中設定此編譯器選項開啟該專案的 屬性頁 對話方塊。有關詳細資訊,請參見如何 開啟專案屬性頁。單擊 c c 資料夾。單擊 前處理器 屬性頁。修改 取消前處理器定義 屬性。de...

vs2013怎樣編譯c 程式

visual c 空專案。 專案建好後點選原始檔。 右鍵新增 新建項。 新建個 cpp檔案。很簡單啊,開啟軟體後,單擊檔案,選擇新建專案,算了,給你看 吧! 檔案 新建 專案。visual c 空專案。 專案建好後點選原始檔。右鍵新增 新建項。新建個 cpp檔案。vs建立c 專案步驟 方法 步驟。 ...

unity3d使用vs2013沒有智慧型提示怎麼回事

點選 edit選單,選擇 preferences,開啟這個,點選 external tools,external script editor,看看這個裡面是什麼,點選下拉選單選擇vs 即可。因為你沒有選擇這個,而是預設這個檔案 型別 以vs開啟,不是在器裡設定的話,就不會有。如果還不行,就先開啟vs...