将文件拖放到C++;桌面应用程序 我是C++初学者,我正在编写一个简单的Windows窗体应用程序。我想知道是否有可能像在控制台应用程序中一样实现将丢弃的文件作为参数传递。对于后者,只需在main()中使用argc和argv[]参数,但显然这不能在winforms应用程序中实现(至少不能直接实现)

将文件拖放到C++;桌面应用程序 我是C++初学者,我正在编写一个简单的Windows窗体应用程序。我想知道是否有可能像在控制台应用程序中一样实现将丢弃的文件作为参数传递。对于后者,只需在main()中使用argc和argv[]参数,但显然这不能在winforms应用程序中实现(至少不能直接实现),c++,winforms,visual-studio-2010,C++,Winforms,Visual Studio 2010,从我在网上搜索时收集到的信息来看,似乎可以用C#实现。然而,我不愿意将我的程序翻译成C语言,因为我没有使用该语言的经验。请注意,我对让窗体接受丢弃的文件作为参数不感兴趣,而是对桌面图标特别感兴趣 P> >我的问题归结为以下内容:在C++ WinFrm应用程序中,可以将丢弃的文件作为启动参数吗?< /P> < P>在一个新的Win32 C++项目中,在主.CPP文件中有一个WinMead函数,它是应用程序启动的地方。这里有一个指向带有命令行参数的字符串的指针(这将是拖放文件路径)。请参阅下面的代

从我在网上搜索时收集到的信息来看,似乎可以用C#实现。然而,我不愿意将我的程序翻译成C语言,因为我没有使用该语言的经验。请注意,我对让窗体接受丢弃的文件作为参数不感兴趣,而是对桌面图标特别感兴趣


<> P> >我的问题归结为以下内容:在C++ WinFrm应用程序中,可以将丢弃的文件作为启动参数吗?< /P> < P>在一个新的Win32 C++项目中,在主.CPP文件中有一个WinMead函数,它是应用程序启动的地方。这里有一个指向带有命令行参数的字符串的指针(这将是拖放文件路径)。请参阅下面的代码和注释,我假设您知道如何处理argv和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
#包括
国际货币基金组织,
_在当前情况下,
_在LPWSTR lpCmdLine中,
_In_uuint(nCmdShow)
{
未引用的_参数(HPPreInstance);
未引用的_参数(lpCmdLine);
//lpCmdLine是您的命令行参数
int-argc;
LPWSTR*argv=CommandLineToArgvW(lpCmdLine,&argc);
//现在您有了argc和argv[]来处理您想要的内容

负责将文件作为命令行参数传递的不是您,而是操作系统。您只能在应用程序中使用这些参数。只要是.net,您就可以使用
Environment::GetCommandLineArgs()谢谢。所以,我必须切换到Win32项目,WinFras是不允许的。在这里,我不确定为什么你会被困在C++上,但是任何可执行文件都可以接受命令行参数。使用你喜欢的任何语言,我个人更喜欢C.net。