wchar_t user = "administrator"; LPCWSTR username = &user;的地方遇到编译错误 错误 1 error C2440: “初始化”: 无法从“const char [14]”转换为“wchar_t” 应该如何修改?另外我这段代码是否能判断administrator账号密码永不过期?
#ifndef UNICODE
#define UNICODE
#endif
#include <stdio.h>
#include <windows.h>
#include <lm.h>
#pragma comment(lib , "Netapi32.lib")
int main(int argc, wchar_t *argv[])
{
DWORD dwLevel = 2;
LPUSER_INFO_2 pBuf = NULL;
LPCWSTR servername = NULL;
wchar_t user = "administrator";
LPCWSTR username = &user;
NET_API_STATUS nStatus;
// Call the NetUserGetInfo function; specify level 2.
//
nStatus = NetUserGetInfo(servername,
username,
dwLevel,
(LPBYTE *)&pBuf);
//
// If the call succeeds, print the user information.
//
if (nStatus == NERR_Success)
{
if (pBuf != NULL)
if(pBuf->usri2_flags==UF_DONT_EXPIRE_PASSWD)
printf("The password should never expire on the account\n");
else
printf("The password will expire on the account\n");
}
// Otherwise, print the system error.
//
else
fprintf(stderr, "A system error has occurred: %d\n", nStatus);
//
// Free the allocated memory.
//
if (pBuf != NULL)
NetApiBufferFree(pBuf);
getchar();//使ms-dos窗口停留,以查看程序显示的信息
return 0;
}
11 个解决方案
#1
改成:
wchar_t user = L"administrator";
wchar_t user = L"administrator";
#2
改成:
wchar_t user[] = L"administrator";
wchar_t user[] = L"administrator";
#3
改了 还是无法从“const char [14]”转换为“wchar_t”
#4
改成:
wchar_t user[] = L"administrator";
LPCWSTR username = user;
唉!!!!!.......
wchar_t user[] = L"administrator";
LPCWSTR username = user;
唉!!!!!.......
#5
const wchar_t user[] = L"administrator";
LPCWSTR username = user;
LPCWSTR username = user;
#6
用a2cw这个函数,前面记得调用USES_CONVERSION
包含头文件查msdn
包含头文件查msdn
#7
还要把LPCWSTR username = &user改成LPCWSTR username = user
#8
Unicode问题
#9
wchar_t user = "administrator";
LPCWSTR username = &user;
改成:
LPCWSTR username = L"administrator";
错误点:
其一,user被定义成一个宽字符,如何能将一个字符串赋给单个的一个字符?何况还是将窄字符串赋给宽字符;
其二,定义user作为中转完全是不必要的脱裤子放屁。
LPCWSTR username = &user;
改成:
LPCWSTR username = L"administrator";
错误点:
其一,user被定义成一个宽字符,如何能将一个字符串赋给单个的一个字符?何况还是将窄字符串赋给宽字符;
其二,定义user作为中转完全是不必要的脱裤子放屁。
#10
用宽字节字符串就可以了。
#11
这个问题真是烦,纠结
#1
改成:
wchar_t user = L"administrator";
wchar_t user = L"administrator";
#2
改成:
wchar_t user[] = L"administrator";
wchar_t user[] = L"administrator";
#3
改了 还是无法从“const char [14]”转换为“wchar_t”
#4
改成:
wchar_t user[] = L"administrator";
LPCWSTR username = user;
唉!!!!!.......
wchar_t user[] = L"administrator";
LPCWSTR username = user;
唉!!!!!.......
#5
const wchar_t user[] = L"administrator";
LPCWSTR username = user;
LPCWSTR username = user;
#6
用a2cw这个函数,前面记得调用USES_CONVERSION
包含头文件查msdn
包含头文件查msdn
#7
还要把LPCWSTR username = &user改成LPCWSTR username = user
#8
Unicode问题
#9
wchar_t user = "administrator";
LPCWSTR username = &user;
改成:
LPCWSTR username = L"administrator";
错误点:
其一,user被定义成一个宽字符,如何能将一个字符串赋给单个的一个字符?何况还是将窄字符串赋给宽字符;
其二,定义user作为中转完全是不必要的脱裤子放屁。
LPCWSTR username = &user;
改成:
LPCWSTR username = L"administrator";
错误点:
其一,user被定义成一个宽字符,如何能将一个字符串赋给单个的一个字符?何况还是将窄字符串赋给宽字符;
其二,定义user作为中转完全是不必要的脱裤子放屁。
#10
用宽字节字符串就可以了。
#11
这个问题真是烦,纠结