QT-windows api调用错误码转string

在调用windowsAPI编程中,有些配置接口会存在一个失败原因的DWORD参数,用于返回配置错误时的错误原因,并且给出一个错误码转string的API接口,通过该接口可将错误码转换成字符串并通过一个PWCHAR类型的指针返回

1、错误码转string API

DWORD WlanReasonCodeToString(
  DWORD dwReasonCode,   //错误码
  DWORD dwBufferSize,   //字符串数据长度
  PWCHAR pStringBuffer, //字符串指针,返回错误string
  PVOID pReserved       //保留,NULL
);

2、一个带有错误码的API示例

//设置连网属性
DWORD WINAPI WlanSetProfile(
  HANDLE hClientHandle, (1 phClientHandle)
  const GUID* pInterfaceGuid, (5 InterfaceGuid)
  DWORD dwFlags,(0x000x010x02)
  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("err reason : %s\r\n", str1);
      qDebug()<<"error reason:"<<str1;

      qDebug()<<"WlanSetProfile error rst:"<<Wlanreason;

      return;
 }

5、返回效果示例

error reason: "根据架构,该配置文件无效。" 
WlanSetProfile error rst: 524289 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路人 假

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值