2012-06-23 68 views
1

打開鏈接如果我寫這樣的:C++與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*錯誤。

那麼,有沒有辦法正確地做到這一點?

回答

3

您的代碼只能獲取一個字符作爲鏈接。您需要使鏈接能夠保存鏈接的值,並且還可以讀取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); 
0

你應該聲明你的輸入爲char *

char *link = new char[2048]; 

... 
delete[] link; 

中的ShellExecute的爲const char *只是它不會改變輸入一個承諾。 更改聲明後,所有內容都應按預期工作。

+0

cin在哪裏寫入 - 鏈接指向無內存 - 您需要爲malloc分配一些內存作爲緩衝區,並且還會因爲內存問題而將char *強制轉換爲const char * – Mark

+0

。 –