none
Win7 & Win8 下开发mstscax.dll RRS feed

  • 问题

  • 我使用VS2008开发远程桌面, 调用系统的mstscax.dll控件, 在WinXP及以下的系统中运行良好, 但是在部分的Win7和Win8系统下, 却总是链接不上, 链接相同的IP, 相关的服务都已经开启, 调用Connect函数后立即返回Disconnect, 返回码是1, 但是用系统自带的远程桌面连接成功.  请问一下出现这种情况可能的原因, 我对比过正常的可以正常运行的系统和链接失败的系统, 并未有啥明显的设置上的区别, 目标机器是开启并且可以正常远程链接的; 贴出部分代码如下:

     MsRdpClient3* pMsRdpClient = new MsRdpClient3(this);

     pMsRdpClient->SetDesktopWidth(QApplication::desktop()->width());
     pMsRdpClient->SetDesktopHeight(QApplication::desktop()->height()-20);

     pMsRdpClient->SetServer(sRemoteInfo.qstrIpAddr);
     pMsRdpClient->SetDomain(sRemoteInfo.qstrDomain);
     pMsRdpClient->SetUserName(sRemoteInfo.qstrUsername);

     IMsRdpClientAdvancedSettings2* pAdvanceSettings2 = pMsRdpClient->AdvancedSettings3();
     if (pAdvanceSettings2)
     {
          pAdvanceSettings2->SetClearTextPassword(sRemoteInfo.qstrPassword);
          pAdvanceSettings2->SetRDPPort(sRemoteInfo.iPort);

          pAdvanceSettings2->SetContainerHandledFullScreen((int)this->winId());

          pMsRdpClient->Connect();
     }

    2014年2月5日 15:11

全部回复

  •  MsRdpClient3* pMsRdpClient = new MsRdpClient3(this);

     pMsRdpClient->SetDesktopWidth(1440);
     pMsRdpClient->SetDesktopHeight(900);

     pMsRdpClient->SetServer("222.222.222.222");
     pMsRdpClient->SetDomain("");
     pMsRdpClient->SetUserName("Username");

     IMsRdpClientAdvancedSettings2* pAdvanceSettings2 = pMsRdpClient->AdvancedSettings3();
     if (pAdvanceSettings2)
     {
          pAdvanceSettings2->SetClearTextPassword("Password");
          pAdvanceSettings2->SetRDPPort(3389);

          pAdvanceSettings2->SetContainerHandledFullScreen((int)this->winId());

          pMsRdpClient->Connect();
     }

    2014年2月5日 15:14
  • 问题已经找到,微软的Mstscax.dll 6.2版本不兼容Mstscax 6.1及以下版本, win8系统和部分win7系统搭载的是Mstscax.dll 6.2版本,请问为什么新版本不向下兼容呢??

    求解惑?

    2014年2月8日 8:18