c++ cli - Returning to C++
c++ cli - Returning to C++
我最后一次使用c++是在它可以管理之前。但是,最近我从Java返回,看到c++现在可以管理了!
没过多久我就意识到gcnew
和^
的用途。然而,我对容器有点困惑。
如何创建一个容器,它的元素是我自己创建的托管类?我正在寻找一个类似于STL vector
的容器。
我想要这样的东西:
List<MyClass ^> ^ mylist;
但是Visual Studio返回以下错误:
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Error 3 error C2238: unexpected token(s) preceding ';'
Error 1 error C2143: syntax error : missing ';' before '<'
我最后一次使用c++是在它可以管理之前。但是,最近我从Java返回,看到c++现在可以管理了!
c++不能"被管理"。你现在看到的是三种语言:
-
c++(你会回来的)。
-
Managed c++ (MC++)——这是第一个被微软改变为一种新语言的c++版本,能够在本地代码(普通c++)和。net平台(Managed)上工作。这已经被Microsoft弃用,并被c++/CX所取代。因此,不要编写mc++代码。
-
c++/CX——这是微软为。net互操作性而修改的c++的最新版本。当您需要编写与托管(即,在。net运行时托管/运行)和非托管代码交互的代码时,可以使用它。
无论哪种方式,要编译您的代码,您需要启用托管代码(/CLR
)和以下更改的编译器开关:
- 定义你的类为c++/CX类(使用ref关键字)。
- 从集合中导入列表(你将有效地使用。net集合)
- 用
ref new
分配一切(类似于Java和。net)。
也就是说,除非你正在使用MS . net平台编写托管和非托管代码之间的互操作代码,否则不要使用c++/CLI。使用c++编写非托管代码,使用c#或VB编写托管代码。这样你就不会那么头疼了。
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- C++ Singleton - Prevent ::instance() to variable
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- Visual Studio Code "undefined reference to `WinMain@16'"
- 使用 GCC 卸载的 OpenMP 卸载失败,并出现"Ptx assembly aborted due to errors"
- 如何解决"invalid conversion from 'char' to 'const char*'"
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 尝试链接我的着色器时,我收到错误代码"error c5145 must write to gl_position"
- Python str to C++ to Python str
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- System.InvalidCastException - SQL to C++ - safe_cast<float>
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- "no matching function for call to 'Vector::Vector'"错误
- vector<vector<double>> to mxArray using memcpy
- Tensorflow c++ api undefined reference to 'tflite::D efaultErrorReporter()'
- 当覆盖存在时调用基本虚拟"binded to object"函数
- OpenGL VBO Indexing ( How to compute Index Array)
- 为什么我会" void value not ignored as it ought to be"?
- C++:如何将 unix 时间的字符串转换为 *tm?(使用时间错误:"cannot convert 'String' to 'tm*' ")