visual-c++ - C++ 中的字符串 ^ 声明

标签 visual-c++ c++-cli

据我所知,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/

相关文章:

c++ - 在 C++ 中快速搜索排序的字符串列表

c++ - char* 和 char[] 没有得到相同的输出

visual-c++ - 混合使用/MT 和/MD 编译的代码

java - C++ 中的多态性和继承

c# - 导入 C# 应用程序的 C++ DLL

c++ - 如何在 C++ 中验证数字输入

visual-studio - 人们如何处理警告 C4793 : 'some_function' : function compiled as native?

c++ - 在 .cpp 文件中包含头文件时基类未定义

c# - 为 .dll 生成初始化代码

.net - 如何调试 Windows 窗体设计器崩溃?