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 ...
随机推荐
- TCP协议学习记录 (二) Ping程序
简单的实现了一个ping程序,没有做icmp差错报文的检查. 支持自定义字节数,支持发包个数 #pragma pack(4) #define ECHO_REQUEST 8 #define DATASI ...
- Python 第一个Python项目Hello,Python 学习之路(二)
print("Hello,Python")
- ebtables hook
1 概述 netfliter框架不仅仅在ipv4中有应用,bridge,ipv4,ipv6,decnet 这四种协议中都有应用,其中ipv4中又分开了arp和ip的两种 其实netfliter是个大的 ...
- listbox 报错 Cannot have multiple items selected when the SelectionMode is Single.
1.错误提示:Cannot have multiple items selected when the SelectionMode is Single. 刚刚在处理两个Listbox时,将其中一个li ...
- Fuzzy Probability Theory---(2)Computing Fuzzy Probabilities
Let $X=\{x_1,x_2,...,x_n\}$ be a finite set and let $P$ be a probability function defined on all sub ...
- 跟我学-Java底层技术系列文章
对于工作中经常用到的东西,还是多看看实现原理,这样用着才能放心. 源码思想学习计划: 1.java基础库 HashCode深入理解 java线程框架窥探 2.集合类 java枚举类使用 递归 ...
- linuxMint下面的截图工具
sudo apt-get install shutter 然后配合系统快捷键,我定义的和qq的截屏一样的.用着感觉很舒服.
- android六大框架
-LinearLayout线性布局 垂直排序,每行仅包含一个界面元素 水平排序,每列仅包含一个界面元素 orientation,Layout-weight,Layout-margin(外边距,与屏幕) ...
- 性能测试之--Apache JMeter安装
Hi,今天给大家分享一下安装JMeter的相关内容~ Apache JMeter 是Apache组织的开源项目,是一个100%纯Java桌面应用,用于压力测试和性能测试. 它能够对HTTP.FTP服务 ...
- sharebutton
<h1>Share Buttons</h1> <!-- Twitter --> <a href="http://twitter.com/share? ...