2

如果我这样写:

    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*错误。

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

4

2 回答 2

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);
于 2012-06-23T10:23:23.533 回答
0

您应该将输入声明为 char*

char *link = new char[2048];

...
delete[] link;

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

于 2012-06-23T10:20:47.983 回答