Chinaunix首页 | 论坛 | 博客
  • 博客访问: 151778
  • 博文数量: 11
  • 博客积分: 1198
  • 博客等级: 少尉
  • 技术积分: 335
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-10 11:48
文章分类

全部博文(11)

文章存档

2013年(2)

2012年(1)

2010年(2)

2009年(4)

2008年(2)

我的朋友

分类: C/C++

2010-07-02 14:07:00

#include <windows.h>
#include <stdlib.h>
#include <tchar.h> //这个头文件要包含

//编译时设置两个宏UNICODE,_UNICODE都需要设置上,这一点非常重要

int WINAPI WinMain(HINSTANCE hInstance,
                 HINSTANCE hPrevInstance,
                 LPSTR lpszCmdLine,
                 int nCmdShow)
{
     TCHAR szStrW[] = TEXT("我是中国人"); //这里学习到所有字符使用TCHAR

        //PTCHAR szStrW = TEXT("我是中国人"); //指针使用PTCHAR这个设置

    int iLength = 0;
    TCHAR szLength[256];
    //PTCHAR szLength = malloc(sizeof(TCHAR[256])); //内存分配方式注意free


    iLength = lstrlen(szStrW); //lstrlen 是宽字符兼容函数

    //wsprintf(szLength,TEXT("%d"),iLength); //宽字符记得所有字符串使用TEXT宏来处理

    _itot(iLength,szLength,10); //_itot 功能和itoa一直不过是兼容模式

    MessageBox(NULL,szLength,TEXT("tt"),MB_OK);
    //free(szLength);

    return 0;

}


以上程序在VC6.0和Pelles C下编译通过。
建立程序Win32 Application 程序空的就可以,然后选择新建添加文件C++SourceFile,main.c 加入项目。
这里需要注意的是宏定义要设置,在工程文件上右键设置C/C++便签里“预处理程序定义”添加两个宏,UNICODE,_UNICODE这两个宏一定都要添加。
总结:
定义字符或字符串使用TCHAR。如:TCHAR szStr[256];
字符指针使用PTCHAR。如:PTCHAR ptStr = malloc(sizeof(TCHAR[256]);
所有设计到字符串的地方""包含的字符串都要用TEXT宏包含如:TEXT("你好吗?"); wsprintf(szStr,TEXT("%d"),10);
原有字符串函数使用加l的如lstrlen,例子看上面程序。
数字转换字符使用_itot, asic 模式使用itoa,注意看上面程序
阅读(1461) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~