У меня есть стороннее приложение, которое работает на Apache Tomcat на Windows. Это приложение использует библиотеку dll, которая использует COM-объекты (с CoCreateInstance .. ). Библиотека и COM-объекты скомпилированы в Visual C ++ 2010.
Все отлично работает на Java 5, но на Java 6 и выше Java вылетает с EXCEPTION_ACCESS_VIOLATION (0xc0000005).
Часть библиотеки, в которой происходит сбой, выглядит следующим образом:
try{
...
if (COMobject == NULL) {throw ...} // if Comobject is null throw proper exception
...
hr = COMobject->Method //this is where program is crashing
...
}
catch ..
код проверяет, имеет ли COMobject значение null, затем вызывает метод из этого объекта и вся часть находится в try ... catch, но эта ловушка c ++ не запускается - вместо этого целое java становится кр sh.
Это относится к разным методам этого объекта, метод может вызываться иногда пару раз, но иногда только один раз до его сбоя.
Может кто-нибудь помочь мне с этой проблемой?