/ Published in: C++

Determine directory where the .exe is running from. Usually it's CWD - but not always, such as MsiExec Custom Actions.
Windows. non-dot.net, with or without MFC.
Windows. non-dot.net, with or without MFC.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
CString sThisDir; // in atlstr.h ::GetModuleFileName( // In WinBase.h. 0, // retrieve path of .exe file for the current process. sThisDir.GetBufferSetLength(MAX_PATH), MAX_PATH); sThisDir.Truncate( sThisDir.ReverseFind('\\') + 1 ); // Chop off the app.exe portion. // Alternative to create a myApp.ini file name: CString thisExe; // in atlstr.h ::GetModuleFileName( // In WinBase.h. 0, // retrieve path of .exe file for the current process. thisExe.GetBufferSetLength(MAX_PATH), MAX_PATH); thisExe.Truncate( thisExe.ReverseFind('.') ); // Chop off the .exe. CString iniFile = thisExe; iniFile.Append( ".ini" ); // Replace .exe with .ini. // I didn't use CString::Replace because there could be multiple embedded ".exe" in the path. // I found that Vista wanted to store INIs in the Windows directory rather than the CWD.
Comments
