如果我这样写:
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*
错误。
那么,有没有办法正确地做到这一点?
答案 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 *只是一个不会改变输入的承诺。 更改声明后,一切都应按预期工作。