【问题】
在c++ CLR 代码中定义一个全局C#对象会报 E2023 a variable with static storage duration cannot have a handle or tracking refercence type,我理解的意思是引用类型无法赋值给一个static 的变量。
CcToCpp::TestDialog ^test = gcnew CcToCpp::TestDialog();//会报E2023错误
【解决方案】
1、#include <vcclr.h>
2、修改定义为:gcroot<CcToCpp::TestDialog^> test;
在C++CLR环境下,尝试将C#对象作为全局变量时遇到E2023错误。文章详细解释了错误原因,即引用类型不能直接赋值给静态变量,并提供了解决方案,通过使用gcroot进行正确声明。
1万+

被折叠的 条评论
为什么被折叠?



