none
C++转C#代码 RRS feed

  • 问题

  • 下面是段C++代码:

      CString Cos=L"";
      CString CosTemp=L"";
      UINT8 pszData[512]={NULL};
      CString pszstr=L"";
      CString pszstrtemp=L"";
      m_recv.SetWindowText(pszstr);
      //选择指令
      if (m_ListBox.GetCurSel()>=0)
      {
       m_ListBox.GetText(m_ListBox.GetCurSel(),Cos);
      }
      //判断指令是否存在
      if (Cos.GetLength()==0)
      {
       if (Language)
       {
        MessageBox(L"Please select a command!");
       }else
       {
        MessageBox(L"请选中一条命令!");
       }
       
       return;
      }
      //判断指令是否为二位的十六进制数
      if (Cos.GetLength()%2!=0)
      {
       if (Language)
       {
        MessageBox(L"Orders for a string of two should be a hexadecimal number!");
       
       }else
       {
        MessageBox(L"命令应该为一串两位的十六进制数!");
       }
       
       return;
      }

      int j=0;
      int len=Cos.GetLength()/2;
      UINT8 *pszCos=new UINT8[len];
      ZeroMemory(pszData,len);
      //转化指令
      for (int i=0;i<len;i++)
      {
       CosTemp=Cos.Mid(i*2,2);
       j= _tcstoul(CosTemp, NULL,16);
       pszCos[i]=j;
      }
      //发送CPU卡操作指令
      int ret=RF_ISO14443A_cpu_command(pszCos,len,pszData);
      if (ret==0)
      {
       for (int i=0;i<pszData[0];i++)
       {
        pszstrtemp.Format(L"%02X ",pszData[i+1]);
        pszstr+=pszstrtemp;
       }
       m_recv.SetWindowText(pszstr);
      }
      else{
       if (Language)
       {
        m_recv.SetWindowText(L"The operation failure!");
       }
       else{
        m_recv.SetWindowText(L"操作失败!");
       }
       
      }

    哪位大侠能帮忙将其转成C#代码,不胜感激!

    我遇到的难点有3——判断是否为二位的十六进制数、转化指令及UINT8 *pszCos这个关于指针相关的代码转换


    tunaxuan

    2012年5月14日 3:41

答案

全部回复