windows 服務的路徑問題

在windows服務的開發過程中,經常需要相對路徑來讀取一些配置文件什麼的。但是往往成功不了

這是因爲在服務程序的相對路徑並不是exe的路徑,而是服務控制程序的路徑

比如我的 服務程序exe路徑爲:D:\projects\TestServers\Release\service.exe

::GetCurrentDirectory(255,des2); // C:\Windows\system32

這需要用到一個windows函數

::GetModuleFileName(NULL,des,255);   // D:\projects\TestServers\Release\service.exe

 

然後再對這個 ModuleFileName 來做一些操作

void getPath(std::string &fileName)
{
	std::string name = fileName;
	std::stringstream ss;
	char des[512] = "";
	GetModuleFileName(NULL, des, 512); 
	for (int i=strlen(des); i>=0; i--)
	{   
		if (des[i] == '\\')
		{
			des[i] = '\0';
			break;
		}
	}
	ss << des;
	ss << "\\";
	ss << name;
	fileName = ss.str();
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章