vc6開發環境由MBCS改成UNICODE

我在使用VC6進行程序開發的時候,遇到這個問題:

比如捷克語言,俄語等等,在顯示的時候總是顯示亂碼(????),在編輯框中顯示,或者通過ADO導入都是顯示亂碼,這個問題困了我好久,最後比對開發環境,查出原因,是使用字符集的問題。

vc6開發環境默認使用的MBCS字符集(Multiple Byte Character Set),更改爲UNICODE字符集就可以解決這個問題。設置方法如下:

1、【project】-【Settings】,在【C/C++】頁面,選擇"Category"後的【General】,然後在頁面的中下部的"Preprocessor definitions:"更改_MBCS爲_UNICODE,UNICODE

2、【project】-【Settings】,在【Link】頁面,選擇"Category"後的【Output】,然後在頁面的中上部的"Entry_point symbol:"下面的編輯框中輸入: wWinMainCRTStartup


原因如下:

Output:Base Address可以改變程序默認的基地址(EXE文件默認爲0x400000,DLL默認爲0x10000000),

操作系統裝載一個程序時總是試着先從這個基地址開始。Entry-Point Symbol可以指定程序的入口地址,一般爲一個函數名(且必須採用__stdcall調用約定)。

一般Win32的程序,EXE的入口爲WinMain,DLL的入口爲DllEntryPoint;

最好讓連接器自動設置程序的入口點。默認情況下,通過一個C的運行時庫函數來實現:

     控制檯程序採用mainCRTStartup (或wmainCRTStartup)去調用程序的main (或wmain)函數;            Windows程序採用WinMainCRTStartup (或 wWinMainCRTStartup)調用程序的WinMain (或 wWinMain,必須採用__stdcall調用約定);

     DLL採用_DllMainCRTStartup調用DllMain函數(必須採用__stdcall調用約定)。

Stack allocations,用以設置程序使用的堆棧大小(請使用十進制),默認爲1兆字節。Version Information告訴連接器在EXE或DLL文件的開始部分放上版本號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章