.NET вызвать элемент управления для VS2003 - PullRequest
0 голосов
/ 09 января 2012

Я пытаюсь использовать элемент управления веб-браузера Microsoft в форме, однако, если вы переходите на сайт, который долго загружается;весь интерфейс формы блокируется, пока все не будет загружено.Чтобы бороться с этим, я пытаюсь запустить контроль веб-браузера отдельно от всего остального.Я создал небольшой пример приложения, используя этот учебник: http://msdn.microsoft.com/en-us/library/ms171728.aspx

У меня есть ошибка в функции ниже:

    void SetNavigate(String* text)
    {
        if(this->axWebBrowser1->InvokeRequired)
        {
            SetNavigateDelegate* d = __gc new SetNavigateDelegate(this, &Form1::SetNavigate);
            this->Invoke(d, __gc new Object[] { text });
        }
        else
        {
            this->axWebBrowser1->Navigate(text);
        }
    }

В частности, строка:

this-> Invoke (d, __gc new Object [] {text});

ошибка C2958: левая скобка '(' обнаружена в '\ testbrowser \ form1.h (56)' не соответствует должным образом

Мне пришлось подчинить делегат для __delegate, __gc new для gcnew и ^ для *, так что я предполагаю, что это еще один 2003.NET, отстающий от проблемы времени, знает ли кто-нибудь правильный синтаксис, который я ищу, чтобы остановитьошибка появляется?

1 Ответ

0 голосов
/ 09 января 2012

В 2003 году я не думаю, что вы могли бы использовать встроенные инициализаторы массива {}.Попробуйте назначить __gc new Object [] {text} именованной переменной.

... и сделайте все возможное, чтобы избежать написания управляемого c ++ в vs2003.Это совершенно ужасно, и C ++ / CLI, представленный в 2005 году, является большим улучшением.

...