2016-10-05 335 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 *' –