我正在尝试使用以下代码检索计算机的域名
//if(FAILED(DnsQueryConfig(
// DnsConfigPrimaryDomainName_UTF8,
// FALSE,
// NULL,
// NULL,
// cszDomainName,
// &size
// )))
//{
// //break;
//}
//LPWSTR lpcszContent = NULL;
//if(int cbMultiByte = MultiByteToWideChar(CP_UTF8, 0, cszDomainName, -1,NULL,0))
//{
// lpcszContent = new wchar_t[cbMultiByte];
//
// if(NULL!= lpcszContent)
// {
// if(0 == MultiByteToWideChar(CP_UTF8, 0, cszDomainName, -1, lpcszContent, cbMultiByte))
// {
// delete [] lpcszContent;
// break;
// }
// }
//}
//if(NULL != lpcszContent)
//{
// cstrDomainName.Format(L"%s", lpcszContent);
//
// printf("Domain name UTF-8 character: %s", lpcszContent);
// delete lpcszContent;
//}
该代码在英文机器上正常工作。 但在使用巴西操作系统的计算机上,域名将被检索为垃圾字符。
代码有什么问题吗? 请帮忙。
由于
答案 0 :(得分:0)
您是否有理由在UTF-8中查询域名然后转换为宽字符?为什么不直接用宽字符查询域名(DnsConfigPrimaryDomainName_W)。