Глобальный или указатель в управляемом C ++ для настроенного класса - PullRequest
0 голосов
/ 01 марта 2010

Мой проект содержит как управляемый, так и неуправляемый код. Я написал класс cIVR в управляемом коде, определяя его в неуправляемом файле cpp. Проект работает нормально в течение некоторого времени. Теперь мне нужно вызвать функцию-член одного из объектов в массиве 'arrChannels' из другой функции в том же файле.

Во время определения массива я не могу объявить статический объект из-за управляемого кода, поэтому я хочу передать ссылку на мой массив в глобальном указателе, чтобы я мог получить доступ к функции-члену по всему файлу.

Я использую .Net 2008.

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

Я хочу что-то вроде ->

cIVR * ch; //Глобальный ch = arrChannels; // последний в приведенном выше коде

func2(int index) {
    ch[index]->setNumber("123");
}

1 Ответ

0 голосов
/ 01 марта 2010

Помимо «глобальных проблем, как правило, не очень хорошая идея», место для правильной инициализации ch будет внутри main() после создания массива.

Я бы также настоятельно рекомендовал использовать правильные прототипы для функций, которые вы используете, например:

int main()

и

void func2(int index)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...