int ReadFromIni(const char* szIni)
{
ACE_Configuration_Heap config;
ACE_Ini_ImpExp ini(config);
config.open();
if(-1 == ini.import_config(szIni))
{
//ACE_ERROR_RETURN( (LM_ERROR,"error open config file\n"),-1 );
cout << "error open config file" << endl;
return -1;
}
ACE_Configuration_Section_Key key_network;
int retCode = config.open_section(config.root_section(), "mc_app", 0, key_network);
cout << "retCod = " << retCode << endl;
ACE_TString value;
config.get_string_value(key_network,"mc_ip", value);
cout << "ip = " << value.c_str() << endl;
config.get_string_value(key_network,"mc_port",value);
int port=atoi(value.c_str());
cout << "port = " << port << endl;
int iIndex = 0;
while (true)
{
retCode = config.enumerate_sections(config.root_section(), iIndex, value);
if (1 == retCode)
{
break;
}
if (retCode < 0)
{
cout << "lasterror = " << ACE_OS::last_error() << endl;
break;
}
cout << "[" << value.c_str() << "]" << endl;
retCode = config.open_section(config.root_section(), value.c_str(), 0, key_network);
if (retCode < 0)
{
cout << "lasterror = " << ACE_OS::last_error() << endl;
//iIndex ++;
//continue;
break;
}
int valueIndex = 0;
ACE_TString valueName;
ACE_Configuration::VALUETYPE valueType;
while (true)
{
retCode = config.enumerate_values(key_network, valueIndex, valueName, valueType);
if (1 == retCode)
{
break;
}
if (retCode < 0)
{
cout << "lasterror = " << ACE_OS::last_error() << endl;
break;
}
cout << "valueName=" << valueName << ", valueType=" << valueType << endl;
valueIndex ++;
}
//
iIndex ++;
}
//ACE_DEBUG((LM_NOTICE,"will listen on port %d\n",port));
return 0;
}
分享到:
相关推荐
这段代码首先定义了一个`IniReader`类,包含两个静态方法:`ReadIni`用于读取ini文件,`ConnectToDatabase`用于使用ini文件中的配置信息建立数据库连接。在`Main`方法中,我们调用这两个方法来完成整个流程。 需要...
在本例中,我们关注的是"ACE文件流读取",这可能指的是使用ACE(Adaptive Communication Environment)库进行文件操作。ACE是一个跨平台的开源C++库,它提供了一套强大的网络编程工具,同时也支持文件I/O操作。下面...
我们将深入探讨如何使用编程语言(例如Java或Python)来遍历一个目录及其子目录,读取Access数据库中的图片存储路径,并与服务器上的图片路径进行比较,以及如何删除指定的文件。 首先,让我们了解如何遍历目录。在...
安装完成后,在 Vue 单文件组件(Vue SFC)中引入并使用 Ace 编辑器: ```html <ace-editor v-model="code" :mode="'javascript'" :theme="'chrome'" :readOnly="false" :width="'100%'" :height="'300px'"></...
在"ACE客户端与服务器文件传输"这个场景下,我们将探讨如何使用ACE库来实现在客户端和服务器之间进行文件的按名传输。 首先,我们需要了解文件传输的基本概念。文件传输是网络通信中的一个常见任务,通常涉及到FTP...
通常,我们需要定义一种自定义的数据结构,包含必要的头部信息(如源地址、目标地址、序列号等),然后使用ACE的`UDP_SOCK_Stream`类进行读写操作。 在Qt中,你可以使用`QTcpSocket`的派生类`QUdpSocket`来处理UDP...
ACE6.3.0 好东西,备份使用。 ACE 网络编程库文件源代码
总的来说,ACE库在VC2005环境下为开发者提供了强大的网络通信和并发处理工具,通过`ACE.lib`、`ACEd.dll`和`ACE.dll`这些文件,可以方便地在C++项目中集成和使用ACE的功能。理解这些文件的作用和使用方法,对于高效...
本文将详细介绍如何在Android NDK环境下集成并使用ACE库。 首先,理解NDK的基本概念至关重要。NDK是一组工具,允许开发者在Android应用中使用本地代码,这在需要高效计算或访问硬件特性时非常有用。与Java SDK不同...
ACE支持多种编译器,需要根据使用的编译器选择相应的配置文件。 - **编译安装**:执行编译脚本,通常情况下,可以通过执行`make`命令来进行编译。编译完成后,可以通过`make install`将ACE/TAO安装到指定目录。 ###...
这个压缩包“ACE使用说明.rar”包含了关于ACE的详细学习资料,分为三个部分:上篇是“ACE技术论文集”,中篇是“ACE程序员教程”,下篇是“ACE应用实例”。以下是这些内容可能涵盖的知识点的详细解析: **上篇:ACE...
通过对ACE文件操作的多种方法的探讨,我们可以看到,从最基础的逐字符读写,到使用缓冲区的块读写,再到利用内存映射文件技术,每种方法都有其适用场景和优劣。在实际应用中,开发者应根据文件大小、系统资源和性能...
破解文件密码,文件格式有:HAC-ZIP_RAR_ACE_ARJ_PDF-fy
非递归实现通常使用栈或队列,可以有效地处理大树,但可能需要更复杂的逻辑来控制遍历顺序。 在Dep C++工程文件中,你可以找到这些遍历方法的实现,这对于理解和掌握树的遍历至关重要。通过阅读和分析这些源码,你...
为了使用ACE6.1.0,开发者需要按照以下步骤操作: 1. 解压ACE_wrappers压缩包。 2. 打开Visual Studio 2010,并创建一个新的项目。 3. 将ACE库的源代码和头文件添加到项目的include路径。 4. 配置项目设置,确保...
在C#编程中,当你尝试从Excel文件读取数据或者将数据写入Excel时,可能会遇到“Microsoft.ACE.OLEDB.12.0”这个错误。这个问题通常出现在尝试使用ACE OLEDB提供程序(Access Database Engine)连接到Excel文件时,而...
在`test_ace`文件中,你可以找到一些使用ACE插件的示例代码。这些示例可能包含了如何创建编辑器、设置主题、切换语言模式、添加事件监听等常见操作。通过学习和运行这些示例,可以更好地理解和掌握ACE的使用方法。 ...
官方文档是学习和使用 ACE Admin 的重要参考资料,包含了所有组件的详细介绍和示例,帮助开发者理解和应用。 文档中的 "ace_admin1.3.1" 文件夹很可能包含了以下内容: 1. **CSS 和 JS 文件**:ACE Admin 的核心...
在这个“ACE完整牛逼定时器”中,我们将深入探讨ACE库中的定时器机制,以及如何在项目中实现和使用它。 首先,我们要理解定时器在软件开发中的作用。定时器主要用于在特定时间间隔后执行某些操作,例如定期检查任务...
这个"ACE使用例程"的压缩包文件可能包含了若干个示例程序,用于展示如何有效地使用ACE库来开发分布式系统、网络应用或者进行通信处理。 ACE库的核心特性包括: 1. **异步I/O**:ACE支持多种异步I/O模型,如事件多路...