`
tcspecial
  • 浏览: 916315 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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;

 

    

     

分享到:
评论

相关推荐

    wince开发用转换类

    static void Gb2312ToUtf8(char* pstrOut, u32 dwOutLen, const char* pstrIn, u32 dwInLen); static BOOL IsNumeric(string text); static void UnicodeToGb2312(char* pstrOut, u32 dwOutLen, const wchar_t* ...

    C++到C#数据类型转换

    * LPCSTR (const char \*) 转换为 System.String * LPCWSTR (const wchar_t \*) 转换为 System.String * PCAHR (char \*) 转换为 System.String * BSTR 转换为 System.String 三、结构体类型转换 在 C++ 中,...

    CString型转char型方法总结

    `LPCTSTR`在Unicode环境下等价于`LPCWSTR`,在非Unicode环境下等价于`LPCSTR`。当我们将`CString`对象转换为`LPCTSTR`时,它会返回一个指向内部缓冲区的常量指针。例如: ```cpp CString cstr("asdd"); const ...

    vc数据类型转换大全

    这里的`LPCTSTR`在Unicode编译环境下实际上是`LPCWSTR`,在非Unicode环境下是`LPCSTR`,因此转换是安全的。 2. **char\* to CString**: `char*`可以直接赋值给`CString`,因为`CString`有一个构造函数能处理`const ...

    MFC中大量的 类型转换(例子及说明)

    例如,`LPCTSTR`是一个指向`const TCHAR`的指针,它在UNICODE和ANSI编译模式下分别对应`LPCWSTR`和`LPCSTR`。所以,`char* zStr = (char*)(LPCTSTR)cStr;`可以将`CString`转换为`char*`。 2. **char\* to CString**...

    Cstring成员函数详解

    * CString( const unsigned char* psz ); * CString( LPCWSTR lpsz ); * CString( LPCSTR lpsz ); 这些构造函数可以用来初始化 CString 对象,例如: CString s1; // 默认构造函数 CString s2( "cat" ); // 使用...

    c# 与C++ 类之间的转化

    - **C++:** `LPCSTR (const char*)` **-&gt; C#:** `System.String` - **C++:** `LPCWSTR (const wchar_t*)` **-&gt; C#:** `System.String` - **C++:** `PCAHR (char*)` **-&gt; C#:** `System.String` - **C++:** `BSTR...

    VC基础数据类型定义

    9. **LPCSTR (const char\*)**:指向以"NULL"结尾的8位Windows(ANSI)字符串的常量指针,强调其为远指针类型。 10. **WCHAR (wchar_t)**:16位Unicode字符类型,用于存储单个Unicode字符。 11. **PWCH (WCHAR\*)*...

    C++C#数据类型对照表

    - **LPCSTR (const char*) - System.String** - `const char*`在C++中表示指向一个只读字符串的指针,在C#中对应`System.String`。 - **LPCWSTR (const wchar_t*) - System.String** - 类似于`LPWSTR`,`const ...

    VC中常用数据类型介绍

    - **LPCSTR (CONST CHAR\*)**:与PCSTR类似,也是指向只读字符串的常量指针,但在某些情况下可能被用于更明确地表明其为常量。 #### 3. Unicode 字符类型 随着全球化的需求增加,Unicode成为处理多语言文本的标准...

    C++和C#变量对应表

    * LPCSTR (const char *) ---- System.String * LPCWSTR (const wchar_t *) ---- System.String * PCAHR (char *) ---- System.String * BSTR ---- System.String * FLOAT (float) ---- System.Single * DOUBLE ...

    windows数据类型

    13. **LPCSTR**: 指向常量非Unicode字符串的指针,相当于`const char*`。 14. **LPCWSTR**: 指向常量Unicode字符串的指针,相当于`const wchar_t*`。 在实际编程中,从C/C++数据类型转换为Windows API数据类型通常...

    vc++各种字符串.docx

    在Windows API中,`LPSTR`和`LPCSTR`分别代表可变和不可变的ANSI字符串指针,而`LPWSTR`和`LPCWSTR`则是Unicode版本的。 在转换和操作这些字符串类型时,有一些常用的方法: 1. **数据类型转换**: - 使用`itoa`...

    CString函数大全.docx

    * CString(const unsigned char* psz):创建一个 CString 对象,并将其初始化为 unsigned char 类型的字符串 psz。 * CString(LPCSTR lpsz):创建一个 CString 对象,并将其初始化为 ASCII 字符串 lpsz。 成员函数 ...

    delphi与C数据类型对照表

    13. **LPCSTR**: 在 Win32 API 中表示为指向常量字符串的指针,在 C 语言中对应的是 `const char*`。 14. **LPWSTR**: 在 Win32 API 中表示为指向宽字符字符串的指针,在 C 语言中对应的是 `wchar_t*`。 15. **...

    vc++中各种字符串含义和转换大全.pdf

    因此,LPCTSTR可以指向ANSI字符串(char*)或Unicode字符串(const wchar_t*)。在不修改字符串内容的情况下,使用LPCTSTR是安全的。 4. LPSTR和LPCSTR: LPSTR是“Long Pointer to String”的缩写,它是一个指向...

    BSTR详解五

    5. **与CString的转换**: 使用`CString`类的`AllocSysString`方法可以直接创建一个BSTR,但需要确保释放。例如: ```cpp CString str1 = ...; BSTR bs = str1.AllocSysString(); SomeMethod(bs); // ... 使用...

    C/C++的CString成员函数用法大全

    * `CString(const unsigned char* psz);`:创建一个字符串对象,内容是字符串 `psz`。 * `CString(LPCSTR lpsz);`:创建一个字符串对象,内容是字符串 `lpsz`。 获取字符串长度 `int GetLength() const;`:返回...

    C++和C#的类型转换

    15. LPCSTR(const char *) ---- System.String 在C++中,LPCSTR是一个常量字符串指针,在C#中,System.String是一个字符串类型。 16. LPCWSTR(const wchar_t *) ---- System.String 在C++中,LPCWSTR是一个常量宽...

    Unicode文件读取

    int WideCharToMultiByte(UINT CodePage, DWORD dwFlags, LPCWSTR lpWideCharStr, int cchWideChar, LPSTR lpMultiByteStr, int cbMultiByte, LPCSTR lpDefaultChar, LPBOOL lpUsedDefaultChar); ``` 参数`Code...

Global site tag (gtag.js) - Google Analytics