VS2012配置使用ICE通信接口
1.下载安装Ice-3.5.1.msi http://www.zeroc.com/download.html
2.添加安装路径到环境变量path,D:\Program Files (x86)\ZeroC\Ice-3.5.1\bin\vc110
3.编写一个ice文件,可以用文件编辑器
module MCal
{
interface Cal
{
int add(int num1,int num2);
int sub(int num1,int num2);
};
};
4.用cmd工具编译成特定语言,如C++
slice2cpp Caculator.ice
生成两个文件,Caculator.h,Caculator.cpp,这两个文件将包含到你的工程中.cpp可能包含.h路径不对<>,改成双引号“”
5.引用lib
#include <Ice/Ice.h>
#include <Ice/Application.h>
/*#include <iostream>
using namespace std;*/
#pragma comment(lib,"iced.lib" )
#pragma comment(lib,"iceutild.lib" )
6.工程包含路径
7.编写server工程,创建实现类
//.h
#include "caculator.h"
using namespace MCal;
class CalI :
public Cal
{
public:
CalI(void);
~CalI(void);
virtual int add(int num1,int num2,const Ice::Current&);
virtual int sub(int num1,int num2,const Ice::Current&);
private:
int num1d;
int num2d;
}; //.cpp
CalI::CalI(void)
{
num1d=0;
num2d=0;
}
CalI::~CalI(void)
{
} int CalI::add(int num1, int num2, const Ice::Current &)
{
int sumv=0;
sumv=num1+num2;
return sumv;
}
int CalI::sub(int num1,int num2,const Ice::Current&)
{
int difv=0;
if (num1>num2)
{
difv=num1-num2;
return difv;
}
else
{
cout<<"there is some wrong!"<<endl;
return 0;
}
}
8.服务器监听
#include "CalI.h"
.....main函数
Ice::CommunicatorPtr ic;
ic = Ice::initialize(); Ice::ObjectAdapterPtr adapter = ic->createObjectAdapterWithEndpoints("Caladapter","default -p 10000");
Ice::ObjectPtr object = new CalI();
adapter->add(object,ic->stringToIdentity("Cal"));
adapter->activate();
printf( " server.start ok \n " );
ic->waitForShutdown(); if (ic)
{
ic->destroy();
}
.......
9.客户端程序,配置和服务器一样
调用
using namespace MCal;
int _tmain(int argc, _TCHAR* argv[])
{
Ice::CommunicatorPtr ic; ic = Ice::initialize();
Ice::ObjectPrx base = ic -> stringToProxy( "Cal:default -p 10000" );
CalPrx calculator = CalPrx::checkedCast(base);
if(!calculator)
throw "Invalid proxy!"; cout<<calculator->add(,)<<endl;
cout<<calculator->sub(,)<<endl; printf( " client.start ok \n " );
getchar();
if (ic)
{
ic -> destroy();
}
return ;
}
10.C#调用
slice2cs Caculator.ice 生成.cs接口文件,包含到工程
工程添加ICE引用,文件在D:\Program Files (x86)\ZeroC\Ice-3.5.1\Assemblies\Ice.dll
using Ice;
using MCal;
Ice.Communicator ic = null;
ic = Ice.Util.initialize(ref args); Ice.ObjectPrx obj = ic.stringToProxy("Cal:default -p 10000");
CalPrx calculator = CalPrxHelper.checkedCast(obj);
Console.WriteLine("1+2="+calculator.add(, ).ToString());
Console.WriteLine("56-12=" + calculator.sub(, ).ToString()); if (ic != null)
ic.destroy();
Console.ReadKey();
VS2012配置使用ICE通信接口的更多相关文章
- VS2012 配置 OpenCV3.0
VS2012 配置 opencv3.0,相比之前的版本,3.0的配置简单了好多. 通过配置属性文件,可以做到一次配置,重复使用! 根据文章的操作在 win7 64bit VS2012 下成功配置 op ...
- VS2012配置Lua环境
1.VS2012配置BabeLua插件 2.VS2012配置Lua 1.VS2012配置BabeLua插件 BabeLua插件简介: 安装方法: 关闭VS2012后直接安装BabeLua插件. 下载地 ...
- vs2012配置opencv及简单测试
为visual studio2012搭建openCV平台,实现打开图片. 实现步骤: 1.1.配置环境变量 基于win7操作系统的环境配置步骤: 1.1.1 计算机—>属性—>更改设置—& ...
- 一、Open CV3.0.0 与 VS2012配置
原创:博乐Bar,转载请注明出处. 第一步,准备软件及开发环境 1.OpenCV 3.0.0 下载地址:http://www.opencv.org.cn/index.php/Download ,下载最 ...
- VS2012配置OpenCV、GDAL开发环境
VS2012和opencv-2.4.10 第一步:配置之前的准备工作. 完成VS2012的安装,以及opencv-2.4.10的下载和文件提取, 双击此文件,设置文件路径,即可得到提取文件,提取后的文 ...
- 安装VS2012以后打开office 2007 的任何程序都跳出VS2012配置界面的解决方案
前两天闲来无事,下载了vs2012,打算学点mvc4的东西,装好以后,问题来了,打开word文档,直接弹出个windows正在配置vs2012的界面,等就等一下吧,结束以后还能正常看,结果谁知道,每次 ...
- VS2012配置Cocos2d-x的问题
cocos2d-x老是配置不成功,解决方案参考:http://blog.csdn.net/yangjingui/article/details/9408007 完整配置流程: 1 下载,最好通过SVN ...
- vs2012配置使用entity framework 6
项目中使用mysql作为数据库,想快速地实现一些数据服务,为了节省开发时间,提升开发效率,性能不是考虑的重点,所以选择了使用ORM框架:Entity Framework.指定了DB的table des ...
- Win8+VS2012 配置OpenGL SuperBible5 环境
(1)glew: 版本:1.7.0-win32 下载地址:https://sourceforge.net/projects/glew/files/glew/ 安装步骤: 将include文件夹下的.h ...
随机推荐
- Xcode Custom Shortcut
edit file "/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources" add < ...
- [问题记录.VisualStudio]VS2013无法新增和打开项目
[问题描述] 1) 打开项目失败,报“项目文件只读”或“空引用”错误. 2) 无法新建项目,没有任何可用模板. 3) TFS都正常 [问题产生] 机器环境: 1) 装的Win10双系统,其中一个系统是 ...
- oracle pl/sql split函数
在软件开发过程中程序员经常会遇到字符串的拼接和拆分工作. 以java开发为例: 前台传入字符串拼接形式的一个JSON数据,如:"1001,1002,1003",这可能代表了一组序号 ...
- vmware安装linux6.3
安装信息: 1.vmware9.0下载地址:http://pan.baidu.com/share/link?shareid=1287299796&uk=2585121485 2.oraclel ...
- C/C++中extern关键字解析
1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义.此外extern也可用来进行链接指定. 也就是说extern ...
- c# 导出数据到Excel模板
最近在做一个发邮件的功能,客户要求需要导出一个Excel附件,并给了附件的格式, eg: Last Name 姓 First Name 名 Chinese Characters汉字书写(仅大陆人填写) ...
- 使用ycsb测试cassandra
参考 https://github.com/cloudius-systems/osv/wiki/Benchmarking-Cassandra-and-other-NoSQL-databases-wit ...
- Height Half Values
public class HeightDemo { /** * 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半: * 再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? * ...
- java执行效率低,但效率就低吗?
很多没用过java或者没怎么用过java的程序员都会说java执行效率低,这种言论时不时的在影响着我这个初级的java开发者. java执行效率低因如下几点导致(和C++比较): 1,java不允许内 ...
- linux权限管理
安全上下文:在linux系统中每个进程均以某个用户的身份运行,进程访问资源的权限取决于发起此进程的那个用户的权限 权限应用模型: 1)判断运行此进程的用户是否与被访问的资源的属主相同,如果相同,则运用 ...