Win Service 加载配置文件遇到的问题
我写了一个Win Service程序,现在的问题是在加载conifg.ini文件时,总是读不出来文件中的内容,服务的安装和卸载都正常,在windows日志中,总是写入 “2011/11/7 17:24:25 DeamonPort: 123 ”。
代码如下,各位帮看一下。
- C/C++ code
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文件内容如下:
- C/C++ code
[PORT]DeamonPort=51001DeamonPort1=5[IP]DeamonIP=1234
[解决办法]
Win Service程序的当前目录应该是windows\\system32\\所以你是目录弄错了。你要是c++builder写的代码,可以这样 TIniFile *ini = new TIniFile(ExtractFilePath(Application->ExeName)+"SubstationConfig.ini");