V6 开发Unicode程序
来源:互联网 发布:蓝铅笔网络班 编辑:程序博客网 时间:2024/05/01 17:14
V6中开发可运行在不同语言系统的Unicode程序,大致步骤如下:
1、Project — Settings — C/C++ Tab — Preprocessor definitions:中加入_UNICODE, UNICODE。这里的_Unicode和Unicode的区别在于,后者专门用于C运行时同文件。后者用于Windows头文件。
2、将代码中的所有所有的 char 用TCHAR代替,所有char* 用LPTSTR代替。所有的win32字符串API用_tcs代替以前的str。比如strcpy 改成 _tcscpy。不过有的变化不是这样的,可以去google 搜一下。 另外所有的字符串常量放到_T()里(或_TEXT())里。
3、Project — Settings — Link — Category:Output — Entry-point symbol:中如果是exe执行文件添加 entry:wWinMainCRTStartup 程序入口,如果是dll添加:DllMainCRTStartup或什么也不添。
4、所过编译时提示缺少 mfc42ud.dll 等文件时,可以去安装文件中找到这些文件复制到VC的安装目录 /VC98/MFC/Lib下即可。
依照上面四步做完以后,你就可以开发一个Unicode 程序了。如果想生成一个ASCII的程序,只需将第一步骤中的_UNICODE, UNICODE去掉即可。编译器会根据是否有此声明来编译相对的程序文件。
附录:
1.
LPCSTR 32-bit 指针,指向一个常量字串
LPSTR 32-bit 指针,指向一个字串
LPCTSTR 32-bit 指针,指向一个常量字串。此字串可移植到Unicode 和DBCS
LPTSTR 32-bit 指针,指向一个字串。此字串可移植到Unicode 和DBCS
另外,这里汇集不少的有关VC字符串的知识:http://hi.baidu.com/softways/blog/item/d93c34f37b884050352acc28.html
2.
/* ++++++++++++++++++++ UNICODE ++++++++++++++++++++ */
#define _TEOF WEOF
#define _tmain wmain
#ifdef UNDER_CE
# define _tWinMain WinMain // On CE it's always WinMain
#else
# define _tWinMain wWinMain
#endif
/* Formatted i/o */
#define _tprintf wprintf
#define _ftprintf fwprintf
#define _stprintf swprintf
#define _sntprintf _snwprintf
#define _vtprintf vwprintf
#define _vftprintf vfwprintf
#define _vstprintf vswprintf
#define _vsntprintf _vsnwprintf
#define _tscanf wscanf
#define _ftscanf fwscanf
#define _stscanf swscanf
/* Unformatted i/o */
#define _fgettc fgetwc
#define _fgetts fgetws
#define _fputtc fputwc
#define _fputts fputws
#define _gettc getwc
#define _gettchar getwchar
#define _getts _getws
#define _puttc putwc
#define _puttchar putwchar
#define _putts _putws
#define _ungettc ungetwc
// Stdio functions
#define _tfopen _wfopen
#define _tfreopen _wfreopen
/* String conversion functions */
#define _tcstod wcstod
#define _tcstol wcstol
#define _tcstoul wcstoul
#define _itot _itow
#define _ltot _ltow
#define _ultot _ultow
#define _ttoi _wtoi
#define _ttol _wtol
#define _ttoi64 _wtoi64
/* String functions */
#define _tcscat wcscat
#define _tcschr wcschr
#define _tcscmp wcscmp
#define _tcscpy wcscpy /////这个是将字符串1 copy 到字符串2
#define _tcscspn wcscspn
#define _tcslen wcslen
#define _tcsclen wcslen
#define _tcsncat wcsncat
#define _tcsnccat wcsncat
#define _tcsnccmp wcsncmp
#define _tcsncmp wcsncmp
#define _tcsncpy wcsncpy
#define _tcsnccpy wcsncpy
#define _tcspbrk wcspbrk
#define _tcsrchr wcsrchr
#define _tcsspn wcsspn
#define _tcsstr wcsstr
#define _tcstok wcstok
#define _tcsdup _wcsdup
#define _tcsicmp _wcsicmp
#define _tcsncicmp _wcsnicmp
#define _tcsnicmp _wcsnicmp
#define _tcsnset _wcsnset
#define _tcsncset _wcsnset
#define _tcsrev _wcsrev
#define _tcsset _wcsset
#define _tcslwr _wcslwr
#define _tcsupr _wcsupr
// ctype functions
#define _istalpha iswalpha
#define _istupper iswupper
#define _istlower iswlower
#define _istdigit iswdigit
#define _istxdigit iswxdigit
#define _istspace iswspace
#define _istpunct iswpunct
#define _istalnum iswalnum
#define _istprint iswprint
#define _istgraph iswgraph
#define _istcntrl iswcntrl
#define _istascii iswascii
#define _totupper towupper
#define _totlower towlower
#define _istlegal(_c) (1)
#define _istlead(_c) (0)
#define _istleadbyte(_c) (0)
#else /* ndef UNICODE */
- V6 开发Unicode程序
- 使用VC++6.0开发UNICODE程序
- V6开发板LCD实现
- v6!!!!!!!!!!!
- REAL210(V6.2)开发板简介
- starring V6平台开发接出点流程
- UNICODE程序的好处
- GB2312转unicode程序
- UTF8--Unicode转换程序
- 让程序支持UNICODE
- Windows下的UNICODE、非UNICODE程序
- Windows下的UNICODE、非UNICODE程序
- 破解版 中易广告联盟程序 v6.0
- WebsphereApplicationServerNetworkDeployment V6.0的开发部署中的常见问题(初级)
- 文本语音朗读开发包 v6.0 官方
- node.js v6.10.1 任务1-搭建开发环境
- 内核开发中的UNICODE String
- VC6设置Unicode开发模式
- 一点点小经验(for循环)
- 扩展 SMIT 应用
- 吵了吵架,想一些不该想的问题。
- 为 SOAP/HTTP Web 服务编写可靠的客户机
- javascript三级联动select
- V6 开发Unicode程序
- vim批量替换
- Oracle数据库中Kill session的研究
- “熊猫烧香”版《菊花台》
- [杂谈]知足也不遗憾
- 先试试
- pass-by-value与pass-by-reference的区别一个很好的例子
- Windows Media Encode 9简介及SDK
- 简单的概率相关的一段php代码