C ++打开与ShellExecute的链接

时间:2012-06-23 10:08:55

标签: c++ url hyperlink shellexecute

如果我这样写:

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

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

2 个答案:

答案 0 :(得分:4)

您的代码只能获得一个字符作为链接。您需要使链接成为一个能够保存链接值并且还读取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);

答案 1 :(得分:0)

您应该将输入声明为char *

char *link = new char[2048];

...
delete[] link;

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