在调用windowsAPI编程中,有些配置接口会存在一个失败原因的DWORD参数,用于返回配置错误时的错误原因,并且给出一个错误码转string的API接口,通过该接口可将错误码转换成字符串并通过一个PWCHAR类型的指针返回
1、错误码转string API
DWORD WlanReasonCodeToString(
DWORD dwReasonCode,
DWORD dwBufferSize,
PWCHAR pStringBuffer,
PVOID pReserved
);
2、一个带有错误码的API示例
DWORD WINAPI WlanSetProfile(
HANDLE hClientHandle, (1 phClientHandle)
const GUID* pInterfaceGuid, (5 InterfaceGuid)
DWORD dwFlags,(0x00 、0x01、0x02)
LPCWSTR strProfileXml,(Profile Xml流)(注意XML格式)
LPCWSTR strAllUserProfileSecurity,(安全描述符NULL)
BOOL bOverwrite,(是否有替换以前的)
PVOID pReserved,(NULL)
DWORD* pdwReasonCode(存入失败原因)
);
3、PWCHAR转QString的方法
WCHAR errStr[100]=内容;
QString str1= QString::fromWCharArray(errStr);
qDebug()<<"error reason:"<<str1;
4、完整示例
WLAN_REASON_CODE Wlanreason;
dwError=WlanSetProfile(hClientHandle,&ppInterfaceList->InterfaceInfo[0].InterfaceGuid,0,strFile,NULL,TRUE,NULL,&Wlanreason);
if (dwError==ERROR_SUCCESS)
{
qDebug()<<"WlanSetProfile succ";
}
else
{
WCHAR errStr[100];
WlanReasonCodeToString(
Wlanreason,
100,
errStr,
NULL
);
QString str1= QString::fromWCharArray(errStr);
qDebug()<<"error reason:"<<str1;
qDebug()<<"WlanSetProfile error rst:"<<Wlanreason;
return;
}
5、返回效果示例
error reason: "根据架构,该配置文件无效。"
WlanSetProfile error rst: 524289