我是用Vc++.net开发ActiveX控件  然后在这个控件里面调用Web服务(c#写的)
//调用Web服务
double dCelsius=0.0;    
NewSqrtService::CNewSqrtService ws;
    ws.ConvertTemperature(dFahrenheit, &dCelsius);
返回值给了dCelsius,没问题!
但是当我调用一个返回值是数组类型的Web服务时,该怎样写?
我试着这样写:
double array[10];
NewSqrtService::CNewSqrtService ws;
ws.ConvertTemperature(a, array);//a是输入参数,我想把此web服务的返回数组存到array里面。结果调试出错,我就迷茫了,到底怎样写啊?请高手指教!

解决方案 »

  1.   

    Soap调用?楼上的兄台可否详细点?先感谢
      

  2.   

    有一个简单的办法就是把相关调用封装在一个.NET 组件中, 然后在VC中调用.
      

  3.   

    这样能避免数据类型转化问题吗?比如我的WebMethod返回一个dataset,在vc(ATL)中,它是一个BSTR类型的东西,,,
      

  4.   

    很久以前手头上有一个SEBSERVICE的例子
    估计在www.codeproject.com
    www.codeguru.com
    msdn上面可以找到
    1.安装SOAP,WEBSERVICE需要通过SOAP来调用
    2.import该DLL
    建议根据例子来做吧
      

  5.   

    How to: Marshal Arrays Using PInvoke
    http://msdn2.microsoft.com/library/bd99e6zt(en-us,vs.80).aspx
    How to: Marshal Arrays Using C++ Interop
    http://msdn2.microsoft.com/library/9b1fy41s(en-us,vs.80).aspx