Arrays 定制类中的管理C++中的全局指针

Arrays 定制类中的管理C++中的全局指针,arrays,pointers,c++-cli,Arrays,Pointers,C++ Cli,我的项目既有托管代码也有非托管代码。我在托管代码中编写了一个类cIVR,同时在非托管cpp文件中定义了它。这项工程一段时间以来一直运作良好。 现在,我需要从同一文件中的另一个函数调用数组“arrChannels”中一个对象的成员函数 在数组定义期间,由于托管代码的原因,它不允许我声明为静态,因此我希望在全局指针中传递对数组的引用,以便我可以在整个文件中访问成员函数 我正在使用.NET2008 main() { array<cIVR^>^ arrChannels = gcnew

我的项目既有托管代码也有非托管代码。我在托管代码中编写了一个类cIVR,同时在非托管cpp文件中定义了它。这项工程一段时间以来一直运作良好。 现在,我需要从同一文件中的另一个函数调用数组“arrChannels”中一个对象的成员函数

在数组定义期间,由于托管代码的原因,它不允许我声明为静态,因此我希望在全局指针中传递对数组的引用,以便我可以在整个文件中访问成员函数

我正在使用.NET2008

main() {
    array<cIVR^>^ arrChannels = gcnew array<cIVR^>(num_devices); //MAXCHAN
    for(int i=0; i< num_devices; i++) { //MAXCHAN
        arrChannels[i] = gcnew cIVR();
}

除了“有一个全局的通常不是一个好主意的问题”,正确初始化ch的位置应该在创建数组后的main中

我还强烈建议您对正在使用的功能使用正确的原型,例如:

int main()


但我无法使用func2的ARR通道?由于作用域的原因,无法访问。您不应该使用func2中的通道。在初始化数组并通过ch访问它之后,应该将ch设置为指向构造函数中的arrChannels?plz指南。syntex,即如何通过文件中的全局范围指针使用arrChannels?实际上,您可能必须使arrChannels成为全局的,因为它本身不是指针,而是垃圾收集指针。因此,如果必须通过全局变量而不是将代码子集分解到它自己的对象中,请将其设置为全局,像现在一样初始化main,然后在func2中引用它。Irc你为了通过一个简单的C++指针访问ARChants,你必须使用PixPTR来针数组,但是这将对.NET中的垃圾收集起作用。
int main()
void func2(int index)