使用OmniORB出现的一些问题及已实现的解决方法
2009-04-11 11:08
1421 查看
我是从自己的实际经历中得出的。也许应用到别的环境里未必可行。
现介绍下当时的实验环境:omniORB4.1.2+VS2005+Mysql5.0,语言是c++,MFC界面。
问题1.编译后显示——fatal error C1189: #error : "The byte order of this platform is unknown"
解决方法:我的是宏设置的格式出了问题。后按照下面格式设置后,就解决了。具体原因没深究。
__WIN32__
__x86__
_WIN32_WINNT=0x0400
__NT__
__OSVERSION__=4
问题2.如何在MFC中初始化ORB,参数如何传入?
解决方法:按照如下格式即可。当然参数不止这些,但这些是基本的,必须使用。
int argc=4;
char** argv=new char*[4];
argv[0]="-ORBid";
argv[1] = "omniORB4";
argv[2] = "-ORBInitRef";
argv[3] = "NameService=corbaname::IP:PORT";
问题3.运行界面时开启服务器,理论上应该可以搁在一边不管。但是事实上server没有监听端口。
解决方法:OmniORB中服务端的操作默认都是委托给main Thread。原文如下:
POAs with the MAIN_THREAD policy dispatch calls on the ‘main’ thread. By default, omniORB assumes that the thread that initialised the omnithread library is
the ‘main’ thread.
所以,有两种解决途径:
一、程序中使用多线程。将初始化server的线程让给server,新增线程执行界面操作。我是使用OPENMP中的section机制即任务分解实现的。
二、在开启server前,声明server使用非主线程。在OmniORB中是有此类函数的。事实上omniORB在设置环境时就设为支持多线程了。
namespace omniORB {
void setMainThread();
};
第二种办法由于没有实际使用,所以也无法具体介绍。
以上是我的一些小见解。欢迎补充~~~
现介绍下当时的实验环境:omniORB4.1.2+VS2005+Mysql5.0,语言是c++,MFC界面。
问题1.编译后显示——fatal error C1189: #error : "The byte order of this platform is unknown"
解决方法:我的是宏设置的格式出了问题。后按照下面格式设置后,就解决了。具体原因没深究。
__WIN32__
__x86__
_WIN32_WINNT=0x0400
__NT__
__OSVERSION__=4
问题2.如何在MFC中初始化ORB,参数如何传入?
解决方法:按照如下格式即可。当然参数不止这些,但这些是基本的,必须使用。
int argc=4;
char** argv=new char*[4];
argv[0]="-ORBid";
argv[1] = "omniORB4";
argv[2] = "-ORBInitRef";
argv[3] = "NameService=corbaname::IP:PORT";
问题3.运行界面时开启服务器,理论上应该可以搁在一边不管。但是事实上server没有监听端口。
解决方法:OmniORB中服务端的操作默认都是委托给main Thread。原文如下:
POAs with the MAIN_THREAD policy dispatch calls on the ‘main’ thread. By default, omniORB assumes that the thread that initialised the omnithread library is
the ‘main’ thread.
所以,有两种解决途径:
一、程序中使用多线程。将初始化server的线程让给server,新增线程执行界面操作。我是使用OPENMP中的section机制即任务分解实现的。
二、在开启server前,声明server使用非主线程。在OmniORB中是有此类函数的。事实上omniORB在设置环境时就设为支持多线程了。
namespace omniORB {
void setMainThread();
};
第二种办法由于没有实际使用,所以也无法具体介绍。
以上是我的一些小见解。欢迎补充~~~
相关文章推荐
- 开源框架SlidingMenu使用出现的一些问题 解决方法
- 使用cocoaPods时出现一些问题的解决方法
- mac使用mysql出现的一些问题以及解决方法
- 使用Eclipse中出现的一些问题的解决方法
- 在使用android studio过程中,使用gradle编译的时候总会出现一些问题,下面是几个常见问题的解决方法。
- 【原】关于使用jieba分词+PyInstaller进行打包时出现的一些问题的解决方法
- 在web开发中出现的一些中文乱码问题解决方法
- OS X升级到10.10之后使用pod出现问题的解决方法
- IIS出现提示“请求的资源在使用中”问题的解决方法
- 安装redis3.2集群出现的一些问题及解决方法
- 重装Ubuntu 14.04后使用apt-get安装build-essential(即sudo apt-get install build-essential)时出现包依赖项问题的解决方法
- Elasticsearch使用中遇到的一些问题及相应解决方法
- SpringMVC同时使用<mvc:resources … />和日期转换Formatter时出现问题的解决方法
- linux — Centos 7(第一天) 使用时出现的问题及解决方法
- 使用javamail发信过程中的一些问题及解决方法
- 使用javamail发信过程中的一些问题及解决方法
- mybatis使用过程遇到的一些问题及解决方法
- PVS使用Difference Disk Image模式,使用中出现问题解决方法
- IDEA开发工具使用过程中出现问题及解决方法