const char* 转化成 LPCWSTR LPCSTR

     VC6里面的ascii/unicode编码真让人头疼, windows API里面参数大多是LPCSTR/LPCWSTR/DWORD/WORD等这样的类型,一些很简单的指针类型和字符串类型,居然整这么多道道. VS08之类的版本貌似对这方面支持的比较好,有些能自动转化. 

// 一般情况下,直接加上个L就行了,比较方便.
HWND hWnd=FindWindow(NULL,L"ipcrev");

// 常量
char *szName="ipcrev";
// 强转会丧失精度,不可行
// HWND hWnd=FindWindow(NULL,(LPCWSTR)szName);

// 正确方式
#include <atlbase.h>

USES_CONVERSION; // 这个宏一定要加上,否则会出一堆错误
LPCWSTR pName=T2W(szName); // tchar ---> wchar 
// LPCTSTR pName=W2T(szName); // wchar ---> tchar 
HWND hWnd=FindWindowW(L"MainWClass",pName);

// 如果定义了_UNICODE宏,可以使用MFC的类CString
CString str=szName;
LPCWSTR pName=(LPCWSTR)str;

 

    

     

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值