char* wchar_t*转换

在VS2008中,用到FILE类型的文件读写fwrite,fread等操作时,利用MessageBox或者其他有关wchar_t、LPCSTCTR类型时,直接用char*出现了参数转换问题,查了下MSDN

范例:

#include <stdlib.h>
#include <stdio.h>

void main( void )
{
    int i;
    char    *pmbnull  = NULL;
    char    *pmbhello = (char *)malloc( MB_CUR_MAX );
    wchar_t *pwchello = L"Hi";
    wchar_t *pwc      = (wchar_t *)malloc( sizeof( wchar_t ));

    printf( "Convert to multibyte string:/n" );
    i = wcstombs( pmbhello, pwchello, MB_CUR_MAX );
    printf( "/tCharacters converted: %u/n", i );
    printf( "/tHex value of first" );
    printf( " multibyte character: %#.4x/n/n", pmbhello );

    printf( "Convert back to wide-character string:/n" );
    i = mbstowcs( pwc, pmbhello, MB_CUR_MAX );
    printf( "/tCharacters converted: %u/n", i );
    printf( "/tHex value of first" );
    printf( " wide character: %#.4x/n/n", pwc );
}
Output
Convert to multibyte string:
   Characters converted: 1
   Hex value of first multibyte character: 0x0e1a

Convert back to wide-character string:
   Characters converted: 1
   Hex value of first wide character: 0x0e1e

char* wchar_t*得到了很好的处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值