What is "C++ application folder"? %APPDATA%? LocalLow? - those you can get from environment variables.
Or are you talking about path to executable?
* argv only returns the CLI alias or path to the desktop shortcut, which says nothing about the application's location.
It do not think this is true (unless we're talking about some old Windows version, then I'm not sure). But on latest Windows argv will contain full path to your executable if launched from shortcut.
But anyways, for getting path to executable on Windows I would just use GetModuleFileName function, it's completely normal function and does not involve any syscalls - it just walks over LDR linked list of loaded modules in PEB.
On GNU/Linux this involves syscall, but it is stable and won't change - readlink("/proc/self/exe", ...)