Разбор аргументов командной строки в Windows XP отличается от Windows 10

Рассмотрим аргумент командной строки:

D:\work\test.exe -a -p

Main () моего приложения на C++ получает следующие аргументы:

  1. Windows 10

    argc = 3  
    
    argv[0] = "D:\work\test.exe"
    
    argv[1] = "-a" 
    
    argv[2] = "-p"
    
  2. Windows XP

    argv = 3    
    
    argv[0] = "test.exe"
    
    argv[1] = "-a"   
    
    argv[2] = "-p"
    

Аргумент argv[0] анализируется по-разному. Моему приложению нужно, чтобы они были такими же.
Есть ли способ получить полный путь в Windows XP?
Я пробовал как main, так и winmain, и результат тот же.

1 ответ

Вы можете определить полный путь к файлу.exe приложения следующим образом:

WCHAR *path = new WCHAR [32768]; // allow for long path names on Win 10
GetModuleFileNameW (NULL, path, 32768);
...
delete [] path;

Документация

Другие вопросы по тегам