unicode与多字节的字符串转换

本文详细解析了C++中API方式下字符到宽字符的转换过程,包括UNICODE定义下的WideCharToMultiByte函数和普通字符转换方法lstrcpy的实现原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. API方式
    void TC2C(const PTCHAR tc, char * c) 
    { 
    #if defined(UNICODE) 
    WideCharToMultiByte(CP_ACP, 0, tc, -1, c, wcslen(tc), 0, 0); 
    c[wcslen(tc)] = 0; 
    #else 
    lstrcpy((PTSTR)c, (PTSTR)tc); 
    #endif 
    }

    <span style="font-family: Arial, Helvetica, sans-serif;"></span><div class="line number14 index13 alt1" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; border-top-left-radius: 0px !important; border-top-right-radius: 0px !important; border-bottom-right-radius: 0px !important; border-bottom-left-radius: 0px !important; background-image: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.8em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: inherit !important;">void charTowchar(const char *chr, wchar_t *wchar)  
    {     
    <span style="white-space:pre">	</span>int size = strlen(chr)+1;
    <span style="white-space:pre">	</span>MultiByteToWideChar( CP_ACP, 0, chr,  
    <span style="white-space:pre">		</span>strlen(chr)+1, wchar, size/sizeof(wchar[0]) );  
    }
    </div>
  2. ATL宏
    #include "atlconv.h" 
     
    void func()
      
    {
      
     USES_CONVERSION; 
     
    char *test = "i am a sucker";
      
     WCHAR *conv = A2W(strPic1) ;
      
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值