Я работаю над управляемым C++ или C++/CLI. Я пытаюсь запустить поток CLI для выполнения функции. Однако, когда я пытаюсь собрать, я получаю сообщение об ошибке «Оптимизирующий компилятор Microsoft (R) C/C++ перестал работать». В окне вывода. «Foo.cpp(8): фатальная ошибка C1001: в компиляторе произошла внутренняя ошибка».
//the class which holds the function to run
ref class Foo
{
void handleEvent();
void (*func)(void);
};
void Foo::handleEvent()
{
ThreadStart ^ param = gcnew ThreadStart(func); //line 8
Thread ^ thread = gcnew Thread(param);
thread.Start();
}
Разве ThreadStart не может обрабатывать собственные указатели функций? Если нет, есть ли другой способ запустить обычный указатель функции C из C++/CLI?