У нас есть библиотеки C++, скомпилированные с 2010, вызываемые приложением в CSharp .net 4.0. C++ выводит три IntPtr (s), которые затем преобразуются в Bitmap (s) с использованием Bitmap.FromHbitmap. Все отлично работало в Windows 7. Мы обновили Windows 10. Теперь, с перерывами, исключение SEH попадает в код CSharp. Кто-нибудь испытывал подобную проблему или имел какие-либо предложения? Дайте мне знать, если вы хотите отправить код. Спасибо. Net вызов C++ с перерывами в работе в Windows 10
ответ
Попробуйте перекомпилировать C++ DLL в среде Windows 10 и повторите попытку.
Я посмотрю, смогу ли я это сделать. Парень, который написал оригинальный код, ушел, и мне нужно попытаться его найти. – Johnny
В настоящее время я не могу перекомпилировать из-за зависимостей от старых библиотек Intel. – Johnny
Я попросил руководство для некоторых персонажей C++, и сегодня я получаю все настройки. Мы попытаемся построить на компьютере с Windows 10 с VS2010 в качестве отладки, чтобы получить PDB оттуда. Я дам вам, ребята, знать, как все идет. Вероятно, будет несколько дней. – Johnny
Мой коллега смог определить проблему. Это была проблема с указателем внутри кода C++. Вот его комментарии: ImageToResize должен быть ссылкой, поскольку он переназначается здесь. Единственная причина, по которой этот код функционировал ранее, по-видимому, связан с тем, что cvReleaseImage(), за которым следует cvCreateImage(), произошло повторное использование одной и той же памяти (большую часть времени), поэтому ничего не переместилось. Параметр был изменен с: * ImageToResize до * & ImageToResize. Итак, это, возможно, было признаком разных стилей распределения памяти между Windows 7 и Windows 10. Я надеюсь, что это поможет кому-то в будущем.
Я могу предложить найти проблему и исправить ее ... – immibis
Проводка всего кода не будет полезна. stackoverflow.com не является бесплатной службой отладки кода. –
Какие-либо выводы в SEH? –