C ++与ShellExecute的开放链接

RnD*_*RnD 2 c++ url shellexecute hyperlink

如果我这样写:

    ShellExecute(NULL, "open", "www.google.com", NULL, NULL, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)

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

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

std::cout<<"Enter the link: ";
            char link;
            std::cin>>link;
        ShellExecute(NULL, "open", link, NULL, NULL, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)

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

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

use*_*019 5

您的代码仅获得一个字符作为链接。您需要将链接设置为能够保留链接值的类型,并读取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);
Run Code Online (Sandbox Code Playgroud)