C++打开与ShellExecute的链接

C++ open link with ShellExecute

本文关键字:链接 ShellExecute C++      更新时间:2023-10-16

如果我这样写:

    ShellExecute(NULL, "open", "www.google.com", NULL, NULL, SW_SHOWNORMAL);

一切都很好,而且必须如此。

但是我希望用户可以输入他想去的链接。

std::cout<<"Enter the link: ";
            char link;
            std::cin>>link;
        ShellExecute(NULL, "open", link, NULL, NULL, SW_SHOWNORMAL);

在这种情况下,我收到一个invalid conversion from 'char' to 'const CHAR*错误。

那么,有没有办法正确地做到这一点?

您的代码只获取一个字符作为链接。您需要使链接成为能够保存链接值并读取 stdio 的类型。将链接创建 std::string 将执行此操作,但您需要注意如何将其传递给 ShellExecute

std::cout<<"Enter the link: ";
std::string link;
std::cin>>link;
ShellExecute(NULL, "open", link.c_str(), NULL, NULL, SW_SHOWNORMAL);

你应该将你的输入声明为 char*

char *link = new char[2048];
...
delete[] link;

ShellExecute 中的 const char* 只是一个承诺,它不会更改输入。更改声明后,一切都应按预期工作。