Win Service 加载配置文件遇到的问题

tulipcaicai 2011-11-07 05:29:00
我写了一个Win Service程序,现在的问题是在加载conifg.ini文件时,总是读不出来文件中的内容,服务的安装和卸载都正常,在windows日志中,总是写入 “2011/11/7 17:24:25 DeamonPort: 123 ”。

代码如下,各位帮看一下。

void TSubClientServiecs::LoadConfigInfo()
{
//----获取运行程序的目录开始
char dir[MAX_PATH];
char *tfile = "/SubstationConfig.ini";
//将程序现在目录所在输入此字符数组
::GetCurrentDirectory(MAX_PATH,dir);
//将现在目录加上指定文件名
strcat(dir,tfile);
//----获取运行程序的目录结束
TIniFile *ini = new TIniFile(dir);
try
{
myConfig->strDeamonIP = ini->ReadString("IP","DeamonIP",123);
LogMessage(DateTimeToStr(Now())+" DeamonPort: "+myConfig->strDeamonIP + " ",EVENTLOG_INFORMATION_TYPE,0,0);
ini->WriteInteger("PORT","DeamonPort1",100);
}
catch(...)
{
// MessageBox(Application->Handle,"读取配置文件config.ini失败!","信息提示!",MB_OK+MB_ICONINFORMATION+MB_SYSTEMMODAL);
LogMessage(DateTimeToStr(Now())+"加载配置文件未成功!",EVENTLOG_INFORMATION_TYPE,0,0);
delete ini;
}
delete ini;
}


SubstationConfig.ini文件内容如下:

[PORT]
DeamonPort=51001
DeamonPort1=5
[IP]
DeamonIP=1234
...全文
74 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tulipcaicai 2011-11-08
  • 打赏
  • 举报
回复
谢谢波波的回答,问题解决了!

手动指定一下配置文件的路径就行了,代码如下:

void TSubClientServices::LoadConfigInfo()
{
……

TIniFile *ini = new TIniFile("C://SubstationConfig.ini");// (dir);

……
}
zzbinfo 2011-11-07
  • 打赏
  • 举报
回复
还有一点,你要新建个窗体,在这个窗体下才有Application。
zzbinfo 2011-11-07
  • 打赏
  • 举报
回复
Win Service程序的当前目录应该是windows\\system32\\所以你是目录弄错了。你要是c++builder写的代码,可以这样 TIniFile *ini = new TIniFile(ExtractFilePath(Application->ExeName)+"SubstationConfig.ini");

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧