西西河

主题:【求助】问个Visual C++的问题 -- 香山居士

共:💬11 🌺7
分页树展主题 · 全看首页 上页
/ 1
下页 末页
  • 家园 【求助】问个Visual C++的问题

    跟remote desktop connection 有关。

    俺用的是Visual Studio 2005,code不是俺写的,俺只是debug。

    问题在这行code,createArgs是个pointer。

    m_pAppHub = pplicationHubFactory::NewInstance(createArgs);

    如果我在本地机上(Windows XP)build,run,一点问题都没有。如果我用另一台机子(Windows Vista)通过remote desktop connection 联这台机子,build没问题,run到这行就会产生

    An unhandled exception of type 'System.TypeInitializationException'

    我查过,在两种状况下运行时createArgs里面各个component的值完全相同。我在网上google了两天,不得要领。

    谢谢大家了。

    • 家园 这个恐怕和运行权限有关。

      你这个application多半调用了某个没有full trust的assembly,所以远程运行的时候会出问题。

    • 家园 这个应该是managed code引起的

      System.TypeInitializationException似乎是一个.net framework的异常,所以我怀疑中间调用了c#的code,如果是c++的异常,那么至少也应该是'System::TypeInitializationException'。你可以从这个方向上去看。

    • 家园 createArgs是不是个com对象接口的指针?

      有没有考虑com的marshal,unmarshal问题,中文一般是叫列集,散列吧。好像如果要在不同的套间之间传递com接口指针,是要marshal,unmarshal的。

      我这只是一种参测。

    • 家园 我估计

      你这个程序用到了什么第三方的库,在你本机启动的时候,这个库的路径被加到了Path里,所以运行没问题

      远程的时候,启动配置文件可能不一样,这个路径没有加进来,程序找不到

    • 家园 检查运行时加载的函数库

      看看在两种情况下是否调用同样的函数库.

      http://www.codeproject.com/KB/DLL/displayloadedmodules.aspx

      远程桌面有没有使用一些本地的界面功能?看起来像一个Vista的漏洞.用看另一个XP远程联结XP来看看,是否问题依然存在。

      我没用过Vista, 这只是我的推测.

    • 家园 我猜: handle掉 unhandled exception

      应该就可以了的

      根据java的handle所有exception理论。

      • 家园 可是那个function我没有source code

        改不了。

        • 家园 还是根据java理论的推测

          从error message里面知道 exception 的类型是 'System.TypeInitializationException'

          在程序中,是这一行 m_pAppHub = pplicationHubFactory::NewInstance(createArgs); 产生的这个exception

          那么把它包到try catch里面就算是handle了

          try{

          m_pAppHub = pplicationHubFactory::NewInstance(createArgs);

          }

          catch(System.TypeInitializationException e){

          // 随便干点啥或者啥也不干

          }

          C++我不熟,以上推测全部来自java,希望有所帮助。

    • 家园 偶在4年前用过vc,呵呵。

      vs2005这么新的东东可是没碰过。

分页树展主题 · 全看首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河