当前位置: 首页 > 编程语言 > C#

如何在C ++ - CLI中将C ++ short -传递给托管C#程序集分享

时间:2023-04-10 10:51:45 C#

C#学习教程:如何在C++/CLI中将C++short*传递给托管C#程序集NETC#函数。在C++中,我有类似的东西:voidSomeFunction(short*id){CSharpClass::StaticClassInstance->SetValue(id);在C#端,该函数使用ref参数声明为:publicvoidSetValue(refshortid){id=this.internalIdField;调用SetValue(id)时出现的编译错误是“无法将参数1从‘short*’转换为‘short%’”。我发现TrackingReference(%)等同于C#ref,但我不知道如何将它与我试图传递的short*参数一起使用。提前致谢。CSharpClass::SetValue的逻辑C++/CLI签名是voidSetValue(short%id);如果您知道C++(不是C++/CLI),那么这里的答案就和您拥有C++签名一样。答案完全相同voidSetValue(short&id);即简单地取消引用指针:voidSomeFunction(short*id){CSharpClass::StaticClassInstance->SetValue(*id);}如果你想要长话短说,声明跟踪引用,将跟踪引用分配给你的id参数,然后将跟踪引用传递给你的函数...short%s=*id;设置值(s);如果您不想啰嗦,只需取消引用指针即可。编译器虽然不能把short*转short%,但是可以把short转short%……如果对你有用,需要了解更多C#学习教程,希望大家多多关注——设置值(*id);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: