首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将char转换为LPCWSTR

将char转换为LPCWSTR
EN

Stack Overflow用户
提问于 2010-10-04 10:12:42
回答 4查看 4.9K关注 0票数 2
代码语言:javascript
复制
char lpszUsername[255];
DWORD dUsername = sizeof(lpszUsername);
GetUserNameA(lpszUsername, &dUsername);
ret_status = NetUserGetInfo(pc_name, lpszUsername, 1, (LPBYTE*)&ui);

因此,对于GetUserNameA,我需要char,但对于NetUserGetInfo - LPCWSTR,我需要char。见鬼?如何将char转换为this?

代码语言:javascript
复制
error C2664: 'NetUserGetInfo' : cannot convert parameter 2 from 'char [255]' to 'LPCWSTR'
EN

回答 4

Stack Overflow用户

发布于 2010-10-04 10:20:12

LPCWSTR的英文翻译为:"Wide-character string",或C中的wchar_t*。

要将ascii字符串转换为宽字符字符串,可能需要特殊的转换函数。

mbstowcs()可能就是您需要的。

票数 2
EN

Stack Overflow用户

发布于 2010-10-04 10:25:44

考虑使用GetUserNameW而不是GetUserNameA。这将为您提供宽字符字符串形式的当前用户名,从而消除将ANSI转换为Unicode的需要。

代码语言:javascript
复制
WCHAR lpwszUsername[255];
DWORD dUsername = sizeof(lpwszUsername) / sizeof(WCHAR);
GetUserNameW(lpwszUsername, &dUsername);
ret_status = NetUserGetInfo(pc_name, lpwszUsername, 1, (LPBYTE*)&ui);
票数 1
EN

Stack Overflow用户

发布于 2010-10-04 10:17:12

有关转换宏的信息,请参阅MSDN

代码语言:javascript
复制
#include <AtlBase.h>

USES_CONVERSION;

char lpszUsername[255];
DWORD dUsername = sizeof(lpszUsername);
GetUserNameA(lpszUsername, &dUsername);

// A2W() should do it
ret_status = NetUserGetInfo(pc_name, A2W(lpszUsername), 1, (LPBYTE*)&ui);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3852435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档