远程对象: public class Refwas:System.MarshalByRefObject
{
           public int SystemLogin(string sessionId, string loginReq, ref string res)
{
res = "";
int n=Core.SystemLogin(sessionId,loginReq,ref res);//调用c++的dll文件
          }
           public int Test(string sessionId, string loginReq, ref string res)
{
res = "";
int n=Core.Test(sessionId,loginReq,ref res););//调用c++的dll文件           }
         }
   B/S模型,通过C#调用C++生成的DLL文件。系统已经能实现异地的通信,返回值是通过引用res传递的。问题是:在系统登陆以后(调用systemlogin函数后)重复调用其它操作(如调用Test函数),就会出现StackOverflowException栈溢出的问题。

解决方案 »

  1.   

    对remoting技术了解的高手(有这个信心吗?呵呵)也可以加我([email protected]),
      

  2.   

    可能是 Core.SystemLogin/Core.Test这些代码的调用格式和你声明的不一致
      

  3.   

    最大的问题可能是这个 ",ref res"如果是C++传出字符串数据,你也不需要 ref res这样传递string的
      

  4.   

    另外检查一下你C++函数的调用格式 是 __stdcall 还是 __cdecl
      

  5.   

    to : tiaoci
     不是C++调用格式的错误,我已经试过。而且我的参数个数是固定的,当然用stdcall格式拉。
    注意:我是通过Remoting,再调用另台服务器上的DLL文件(C++代码编译),把值传回客户端用Dataset表显示(C#语言)出来。不要告诉我说是C++与C#兼容的原因。
     再加100分