C# 作为指针传递的非托管类型的C++/CLI数组
我的问题是把这个问题从 我知道,要创建具有非托管类型的托管数组,我需要提供它的指针C# 作为指针传递的非托管类型的C++/CLI数组,c#,c++-cli,unmanagedresources,C#,C++ Cli,Unmanagedresources,我的问题是把这个问题从 我知道,要创建具有非托管类型的托管数组,我需要提供它的指针 array<UserType*>^ args=gcnew array<UserType*>(2); 现在,如果我想将这个数组发送到一个本机函数,该函数需要一个const UserType*参数,那么我该怎么做呢。托管阵列可能没有固定地址,垃圾收集器可以重新定位该阵列 编辑:您有一个UserType*数组,因此非托管函数应该使用UserType*const*。是否可以添加一个代码段?我已
array<UserType*>^ args=gcnew array<UserType*>(2);
现在,如果我想将这个数组发送到一个本机函数,该函数需要一个const UserType*参数,那么我该怎么做呢。托管阵列可能没有固定地址,垃圾收集器可以重新定位该阵列
编辑:您有一个UserType*数组,因此非托管函数应该使用UserType*const*。是否可以添加一个代码段?我已经尝试使用pin_ptr,但可能没有正确使用。更有可能的是,本机函数的签名已经确定,在这种情况下,托管阵列需要更改为cli::array^而不是指针。cli::array^是否会被禁止,因为我无法使用用户定义的非托管类型创建托管阵列?顺便说一句,修改非托管类型不是一个选项