C++2005调用C#Webservice接口返回值为List

来源:互联网 发布:app建站 编辑:程序博客网 时间:2024/05/19 21:02

C# Webservice




using System;
using System.Web;
using System.Web.Services;
using System.Collections.Generic;
using System.Web.Services.Protocols;


[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
    publicService () {

       //如果使用设计的组件,请取消注释以下行 
       //InitializeComponent(); 
    }
    publicstruct MyUser
    {
       public int iUserNum;
       public string strUserName;
       public string strUserPassword;
       public string strUserRealname;
       public string strUserDep;
       public string strUserDesc;
       public MyUser(int p1, string p2, string p3, string p4)
       {
           iUserNum = p1;
           strUserName = p2;
           strUserPassword = p3;
           strUserDesc = p6;
       }
    }

   [WebMethod]
    public ListGetUsers()
    {
       List Users = new List();

       MyUser user1 = new MyUser(1, "**1", "**1Password","**1desc");
       MyUser user2 = new MyUser(2, "**2", "**2Password","**2desc");
       MyUser user3 = new MyUser(3, "**3", "**3Password","**3desc");
       MyUser user4 = new MyUser(4, "**4", "**4Password","**4desc");
       MyUser user5 = new MyUser(5, "**5", "**5Password", "**5desc");

       Users.Add(user1);
       Users.Add(user2);
       Users.Add(user3);
       Users.Add(user4);
       Users.Add(user5);

       return Users; 
    }
}

 

C++非托管添加Web引用

 

// CPPWin32Console.cpp :定义控制台应用程序的入口点。

#include "stdafx.h"
#include
using namespace Service;

int _tmain(int argc, _TCHAR*argv[])
{
 CoInitialize(NULL);
 CService* MyServer = new CService();
 std::list myUsers;
 MyUser* pmyuser[5];
 int isize;
 MyServer->GetUsers(&pmyuser[0],&isize);
 delete MyServer;
 int mysize = sizeof(pmyuser[0]);
 int i;
 MyUser* tempUser;

//地址向下移动32位
 for (i = 0;i< 5;i++)
 {
  tempUser = pmyuser[i];
  pmyuser[i+1] =++tempUser;
 }

 CoUninitialize();
 return 0;
}

0 0