用于启动App的GetCurrentDirectory。 C ++

时间:2011-01-15 11:28:37

标签: c++ c visual-c++ startup

  

可能重复:
  Win32: Find what directory the running process EXE is stored in
  How to get the application executable name in Windows (C++ Win32 or C++/CLI)?

喜 我想让我的应用程序在statup上运行,它使用同一目录中的一些文件。它运行良好但是当它在启动时启动时,GetCurrentDirectory是“c:\ Documents and Settings \ User \”..但我想要实际exe文件的路径。我可以用c ++获取它。 请帮我。 感谢。

2 个答案:

答案 0 :(得分:3)

尝试使用GetModuleFileNameGetModuleFileNameEx

这样做:

wchar_t exeDirectory[1024]; //to store the directory
DWORD ret = GetModuleFileName(NULL, exeDirectory, 1024);
if ( ret )
{
  /*the path to your EXE is stored in the variable "exeDirectory" - use it */
}

注意我将NULL作为第一个参数传递,因为MSDN说,

  

“如果此参数为NULL,   GetModuleFileName检索路径   当前的可执行文件   过程“。

这就是你想要的。正确?

答案 1 :(得分:-1)

使用argv:

int main(int argc, char* argv[])
{
  // argv[0] is the path to binary file you're running
  // ...
  return 0;
}

利润是这种方法与平台无关,不需要任何系统调用。