ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 前言 在TC的服务端开发中, 可以使用gsoap 来调用web service. 如何使用 gsoap  , 参考 # [gsoap 实现 C/C++ 调用web service ](http://blog.csdn.net/oscar999/article/details/40342301) 接下来介绍如何在TC中进行开发。 ### 开发的方式与环境搭建 在TC的CF端调用webservice , 可以把gsoap 产生和完成的代码打成一个  .lib 的文件(windows, 在linux 下是 .a 的文件) 这里使用的开发工具是 visual studio . 新建一个空的项目, 语言选 C++的就可以了 ![](https://box.kancloud.cn/2016-02-18_56c5449062ad9.jpg) 创建完成之后的路径如上。 上面的文件结构中, 除了 libsoa.h 和libsoa.c 文件外, 其他的文件都是gsoap根据 wsdl 产生的. 在libsoa.c 这份文件里面, 我们写一些包装 function 来供外部调用。原因是gsoap 产生出来的function 名称都比较长,不方便使用 类似 ns1__XXXXXX 这样的。 要产生成 .lib 档, 在项目的 属性中做如下设置: ![](https://box.kancloud.cn/2016-02-18_56c54491703ff.jpg) 设置完成, 并完成相关代码的编写, 就可以产生 .lib 档了 点击 生成 --》 生成解决方案 这样的话在项目的路径下会产生一个Debug 目录。 途径类似: ![](https://box.kancloud.cn/2016-02-18_56c54491810c2.jpg) ### 开发中注意的一些问题 ~~~ returnflag=soap_call___ns1__batchExecuteSqls(&meSoap,Parameter.EndPoint, NULL, batchExecuteSqlsRequest, batchExecuteSqlsResponse); if (returnflag==28) { *ReturnCode=strdup("fail"); *ReturnMsg=strdup("Could not connect to web service host!"); } else if(batchExecuteSqlsResponse!=NULL) { *ReturnCode= strdup(batchExecuteSqlsResponse->ReturnCode); *ReturnMsg=strdup(batchExecuteSqlsResponse->ErrorMessage); } ~~~ 类似上面的代码: 返回值是28 代表不能连接 web service 的服务器。 这个时候response 里面自然也就是空的了。 另外要注意的一个问题是: 以上产生的 .lib 是可以在Visual studio 中进行调试的。 但是在协作开发的时候, 如果遇到无法调试的状况, 可以在本机使用源码重新产生一个 .lib 档试试 ###