【发布时间】:2019-04-05 22:54:09
【问题描述】:
我有一个小的 win32 程序,它使用给定的 lpCmdLine 调用 CommandLineToArgvW
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
(void)hInstance;
(void)hPrevInstance;
(void)nCmdShow;
int argc;
LPTSTR* argv = CommandLineToArgvW(lpCmdLine, &argc);
MessageBoxW(0, lpCmdLine, TEXT("lpCmdLine"), MB_OK );
for(int i=0; i<argc;++i){
MessageBoxW(0, argv[i], TEXT("argv"), MB_OK );
}
return 0;
}
我观察到的奇怪的事情是:
- 如果我在没有参数的情况下调用程序,
lpCmdLine是一个空字符串,CommandLineToArgvW返回 1 个参数 - 可执行路径。 - 如果带参数调用,
CommandLineToArgvW返回参数的确切数量,不带可执行文件
我找不到这种奇怪的行为记录在案。
我错过了什么?我是否以无意的方式使用了该命令?
【问题讨论】:
-
看来您必须阅读其他功能的文档。