当前位置:编程学习 > C#/ASP.NET >>

ATL web service 传 STL的问题(菜鸟问题)很急~~

本人是第一次用web service, 打算用Vector传递一个数组,但是不知道为什么编译不过,请大侠们赐教

// Webservice.h : 定义 ATL Server 请求处理程序类
//
#pragma once
#include <string>
#include <vector>
using namespace std;
namespace WebserviceService
{
// webservice 的所有 struct、enum 和 typedef 应进入命名空间
struct Program
{
  string name;       //文件名称
  string    path;   //文件所在绝对路径
  unsigned int CodeRate;   //视频码率
  unsigned int FileID;     //作为文件的标识,后续进度上报,upload都以该ID作为标识,由ABV提供
  unsigned int fileSize;   //文件大小,会用于进度上报
  string pushStart;         //开始推送时间
  string pushEnd;           //推送结束时间
  string type;              //文件类型,ABV提供
} ;



// IWebserviceService - Web 服务接口声明
//
[
uuid("4836515D-5C13-4252-A147-296DAFB845F2"), 
object
]
__inte易做图ce IWebserviceService
{
// 声明 Web 服务方法及其 in 参数和 out 参数
[id(1)] HRESULT SetProgram([in] vector<Program> programlist, [out, retval] BSTR *ErrorInfo);
// TODO: 在此添加其他 Web 服务方法
};


// WebserviceService - Web 服务实现
//
[
request_handler(name="Default", sdl="GenWebserviceWSDL"),
soap_handler(
name="WebserviceService", 
namespace="urn:WebserviceService",
protocol="soap"
)
]
class CWebserviceService :
public IWebserviceService
{
public:

// 这是一个示例 Web 服务方法,它显示如何使用 
// soap_method 属性将方法公开为 Web 方法
[ soap_method ]
HRESULT SetProgram(/*[in]*/ vector<Program> programlist, /*[out, retval]*/ BSTR *ErrorInfo)
{


return S_OK;
}

// TODO: 在此添加其他 Web 服务方法
}; // 类 CWebserviceService

} // 命名空间 WebserviceService
--------------------编程问答-------------------- 大侠们都下班了么? --------------------编程问答-------------------- 这样是不行的...
--------------------编程问答-------------------- 为什么不行,该怎么做啊 ? --------------------编程问答-------------------- 理解 web service 的原理,你就清楚了
ws 是通过xml交换信息,也就是所谓的xml序列化
所以所有类型要求能够用xml 表示 ,且它需要跨平台,跨语言
...... --------------------编程问答-------------------- 我以前用corba做通讯,都是可以用STL的啊 。。。那么我该怎么传递一个下标不定的动态数组呢。。。 --------------------编程问答-------------------- 转成字节流等简单类型,也不麻烦的,免生枝节。
补充:.NET技术 ,  VC.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,