2016-10-05 66 views
1

參照https://support.microsoft.com/en-us/kb/815657那裏的代碼C++初學者字符串指針他們寫視覺工作室

String *sURL = S"http://www.microsoft.com"; 

我假設這定義了一個指針,而不是一個正常對象相比

String sURL 

正確?但是在實際的字符串之前什麼是「S」?

Visual Studio中告訴我,這行代碼是錯誤的,這是說

普通指針到C++/CLI引用類或接口的類不 允許

怎麼辦他們是這個意思嗎?我使用visual studio 2015.

+2

使用^代替*? – Macmade

+0

@Macmade您的評論是神祕的... – piwi

+0

@piwi .NET對象的不同指針語法... – Macmade

回答

1

首先,這不是普通的C++。它是C++/CLI(針對通用語言基礎結構進行了C++修改),它是由Microsoft創建的語言規範,旨在取代Managed Extensions for C++。

所以,當你有像上面提到的一個正常語句的指針,你必須改變的語法CLI

String ^sURL = S"http://www.microsoft.com"; 

你在實際的字符串前使用的S存在有對於typecaststd::stringSystem::String

+0

好的,謝謝。我不想做太多,只發送一些GET請求(也許是POST)並解析結果。我是否需要這個MS規範或者我有機會留在純C++中? – AndyAndroid

+0

@AndyAndroid:考慮到Mac和Linux上有Web瀏覽器,你可以自己弄清楚;)但是這裏有一個提示:'libcurl'。 – MSalters

+0

不完全 - 'S'表示接下來的字符串應該被鍵入爲'System :: String ^'而不是'const char *' –