Windows XP 与 Windows 10 中的命令行参数解析不同
Command line arguments parsing is different in Windows XP vs Windows 10
考虑命令行参数:
D:\work\test.exe -a -p
我的 C++ 应用程序的 main() 接收参数如下:
Windows 10
argc = 3
argv[0] = "D:\work\test.exe"
argv[1] = "-a"
argv[2] = "-p"
Windows XP
argv = 3
argv[0] = "test.exe"
argv[1] = "-a"
argv[2] = "-p"
参数 argv[0] 的解析方式不同。
我的应用程序需要它们相同。
有什么方法可以在 Windows XP 中获取完整路径吗?
main 和 winmain 我都试过了,结果是一样的。
您可以像这样确定应用程序的 .exe 文件的完整路径:
WCHAR *path = new WCHAR [32768]; // allow for long path names on Win 10
GetModuleFileNameW (NULL, path, 32768);
...
delete [] path;
考虑命令行参数:
D:\work\test.exe -a -p
我的 C++ 应用程序的 main() 接收参数如下:
Windows 10
argc = 3 argv[0] = "D:\work\test.exe" argv[1] = "-a" argv[2] = "-p"
Windows XP
argv = 3 argv[0] = "test.exe" argv[1] = "-a" argv[2] = "-p"
参数 argv[0] 的解析方式不同。
我的应用程序需要它们相同。
有什么方法可以在 Windows XP 中获取完整路径吗?
main 和 winmain 我都试过了,结果是一样的。
您可以像这样确定应用程序的 .exe 文件的完整路径:
WCHAR *path = new WCHAR [32768]; // allow for long path names on Win 10
GetModuleFileNameW (NULL, path, 32768);
...
delete [] path;