开发者

How to get the path of the exexuter in C++?

开发者 https://www.devze.com 2023-01-31 20:25 出处:网络
I am usin开发者_开发百科g Visual studio 2008 and I want to get the absolute path of the .exe file?

I am usin开发者_开发百科g Visual studio 2008 and I want to get the absolute path of the .exe file? meaning when the user opens the exe file, I need to know its absolute path??

thanks in advance


Under Windows try the following:

char ExeName[8192]; // or what ever max. size you expect.

if (0 != GetModuleFileName (NULL, ExeName, sizeof (ExeName)))
{
  printf ("Your array was probably not large enough. Call GetLastError for details\n");
}

If you compile for unicode use wchar_t.


Using the _pgmptr or _wpgmptr global variable is probably the easiest way.* (They're in stdlib.h.)

*Note: Under some rather rare circumstances, it's possible that this won't work... in that case, use GetModuleFileName(NULL, ...);


If you want to obtain a path of the current process, you should use API function:

GetModuleFileName

But, if you want to obtain a full path of the process that is not written by you, use

GetModuleFileNameEx

Above function expects one argument more than GetModuleFileName - it is a HANDLE of a process which path is supposed to be obtained. It is explained in more details on MSDN.

0

精彩评论

暂无评论...
验证码 换一张
取 消