我是C ++的初学者,我正在编写一个简单的Windows窗体应用程序。我想知道是否可以将传递的丢弃文件作为参数实现,就像在控制台应用程序中一样。对于后者,只需在 main()中使用 argc 和 argv [] 参数,但显然这一点不能在winforms应用程序中完成(至少不能直接)。
从搜索网络时收集到的内容来看,似乎可以在C#中进行。但是,我不愿意将我的程序翻译成C#,因为我没有使用该语言的经验。请注意,我没有兴趣让表单接受删除的文件作为参数,但具体是桌面图标。
所以我的问题归结为以下几点:你能否在C ++ winforms应用程序中将被删除的文件作为起始参数传递?
答案 0 :(得分:0)
In a new Win32 C++ project, in your main .cpp file there is a wWinMain function which is where the application starts. You have a pointer to a string there with the command line arguments (which will be your drag/dropped file path). See my code and comments below, I assume you know what to do with argv and argc.
#include <shellapi.h>
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
// lpCmdLine is your command line arguments
int argc;
LPWSTR* argv = CommandLineToArgvW(lpCmdLine, &argc);
// Now you have argc and argv[] to do with what you want