У меня по большей части успешно встроенный firefox/xulrunner в наше приложение C#, но это не без проблем. Как-то раз вы получите исключение AccessViolationException, которое, как я полагаю, вызвано тем, что GC перемещает управляемый объект в память, а неуправляемый xpcom пытается использовать его после его перемещения. Например, я создал обработчик протокола для настраиваемого протокола, который реализует некоторые интерфейсы, к которым обращаются firefox/xulrunner. После этого AccessViolationException стал намного более доминирующим. Я рассматривал GCHandle.Alloc (объект, GCHandleType.Pinned) как возможное решение, но не смог найти достаточно информации о том, как написать настраиваемый маршаллер, чтобы сделать мой класс, который реализовал интерфейсы «blittable». Так есть ли у кого-нибудь какие-либо идеи о том, как справиться с этой проблемой или как перевести мой класс в «легкомысленный»? Также почти невозможно отслеживать, какие части взаимодействия совершают исключение AccessViolationException. Тьфу :-(Встраиваемый firefox/xulrunner, вызывающий AccessViolationException
Спасибо за любую проницательность!
Для тех, кто не знаком с термином "blittable" http://msdn.microsoft.com/en-us/library/aa719638(VS.71).aspx – Davy8
благодаря Дэви boyee !!! – NastyNateDoggy