Приложение C ++ не может инициализироваться (0xc0000005) при использовании C # dll - PullRequest
1 голос
/ 23 марта 2010

У меня есть C # DLL, которую я вызываю из родной программы C ++. Поскольку я использую Qt и / clr, опция компилятора не работает, я следовал этому руководству по мосту.

Итак, у меня есть проект VS2008 (скомпилированный с / clr), который ссылается на C # DLL и содержит класс bridge и собственный класс, который предоставляет интерфейсы для моей программы C ++. Другой проект VS2008 (без .net) вызывает собственный класс (статически связанный).

У меня были некоторые проблемы, но теперь программа по крайней мере компилируется. Однако, если я пытаюсь запустить эту программу, я получаю ошибку (0xc0000005) при инициализации, когда я пытаюсь использовать собственный класс. Поскольку это происходит при инициализации, я даже не вижу, какие DLL не инициализируются. Все библиотеки DLL должны быть в нужном месте.

Есть намеки? Спасибо.

Ответы [ 2 ]

4 голосов
/ 29 января 2012

У меня похожая проблема; Qt с C ++ и / clr. Я сделал оболочку для управляемого класса, а затем создал интерфейс с помощью Qt, и я получил предупреждения…

Взгляните на это обсуждение на bytes.com: __ Функции fastcall в статической библиотеке не могут быть вызваны из управляемого кода?

Парень говорит, что статические управляемые классы, скомпилированные с /clr, несовместимы с fastcall.

3 голосов
/ 23 марта 2010

Проект, который называл нативный класс, был статически связан с моим exe, и это не сработало. Я изменил его на DLL, и теперь он, кажется, работает.

Я буду исследовать немного больше.

...