我曾经能够双击我的自定义扩展的文件,并通过我的C++ exe程序打开它(右键单击-〉打开-〉我的程序)。
它的WinMain()正在接收几个参数:第一个参数是exe的路径,第二个参数是单击的文件的路径。
然而,我似乎不再能够接收第二个参数,它总是用第一个参数启动我的程序:此程序的路径。
会不会是因为我今天做的Windows更新?使用Windows 10和Visual Studio(如果在调试或发布中编译,也会发生同样的情况)
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
int nArgs;
LPWSTR *szArglist = CommandLineToArgvW(GetCommandLine(), &nArgs); //GetCommandLine() is a #define located inside processenv.h
//Now nArgs is your argc and szarglist is your argv
//first arg is path to exe, second arg is path to clicked file.
if(nArgs<=1){ LocalFree(szArglist); return EXIT_FAILURE; } //not enough args (1 or less)
LocalFree(szArglist);
return EXIT_SUCCESS;
}
1条答案
按热度按时间pcww981p1#
这是因为我是如何获取的论点。
我使用的是
CommandLineToArgvW()
,但是当我开始使用__argv
和__argc
时,它就开始工作了。Found this answer here