2017-05-29 64 views
-2

我想問一下如何使用變量ShellExecuteC++ WINDOWS.H如何使用變量的ShellExecute

裏面對我來說,我想一個路徑添加到文件中。

#include <windows.h> 
#include <iostream> 

int main() 
{ 
std::string path={"C:\Users\Me\CLionProjects\storage\cmake-build-debug\bookshop.txt"}; 

ShellExecute(NULL,"edit","path",NULL,NULL, SW_SHOWNORMAL); 

return 0; 
} 

我試了c_str()但它沒有幫助。它編譯時沒有錯誤,但txt文件沒有運行。任何線索?

+0

歡迎堆棧溢出。請花些時間閱讀[The Tour](http://stackoverflow.com/tour),並參閱[幫助中心](http://stackoverflow.com/help/asking)中的資料,瞭解您可以在這裏問。 –

+0

您需要轉義反斜槓字符:'std :: string path = {「C:\\ Users \\ Me \\ CLionProjects \\ storage \\ cmake-build-debug \\ bookshop.txt」}; –

回答

0

你需要逃避你的字符串字面的反斜槓,並且擺脫了括號:

std::string path = "C:\\Users\\Me\\CLionProjects\\storage\\cmake-build-debug\\bookshop.txt"; 

然後,您需要使用std::string::c_str()方法的字符串傳遞給ShellExecute()。而且,由於使用的是std::string,你應該使用char基於ShellExecuteA()代替TCHAR基礎的ShellExecute()

ShellExecuteA(NULL, "edit", path.c_str(), NULL, NULL, SW_SHOWNORMAL);