据我所知,C++ 字符串声明遵循以下形式:
std::string param;
我正在浏览一段代码,并意识到字符串的声明是这样完成的:
System::String^ param;
谁能分享一下这个声明?!这是 Microsoft Visual C++ 字符串声明还是提供了使用 C++ 字符串的另一种替代方法的特殊库。
最佳答案
它是 Microsoft 特定的,并且是他们称为 C++/CLI 的语言的一部分。此语法声明公共(public)语言运行时 (CLR) String
变量(与您在 C# 中声明 string
时获得的相同类型)。这些不能与几种 C/C++ 字符串类型直接互换,但 Microsoft 提供了编码工具来转换 CLR String
对象到非托管字符串,反之亦然。
C++/CLI 使开发人员能够创建将常规 C++ 类/函数(也称为“非托管代码”)与 CLR 类/函数(也称为“托管代码”)连接起来的程序。 Microsoft 还向 C++/CLI 公开了 CLR 的较低级别功能,其中一些也向 C# 公开(如指针),而另一些则不公开(如成员访问级别的更精细粒度)。
如果您想以 C# 之类的语言使用现有的 C 或 C++ 库(通过在 C++/CLI 中进行绑定(bind),然后将它们暴露给 CLR 而无需通过 P/Invokes),或者如果您想移植现有的非托管C/C++ 库或应用程序到托管环境。
关于visual-c++ - C++ 中的字符串 ^ 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6890664/