У меня есть VB6 DLL, которая оборачивает вызов стороннему компоненту.Когда я вызываю мою DLL из VB6, все работает нормально, но когда я вызываю ее из vb.net (2.0 framework target - VS2010), я получаю эту ошибку:
Произошло исключение AccessViolationException
Попытка чтения или записи защищенной памяти.Это часто указывает на то, что другая память повреждена.
Эта ошибка возникает только в Windows 7 (клиенты Windows XP работают нормально).
Я посмотрел это и всестатьи, которые я нашел, говорили о том, что декларация неверна.Я не объявляю никаких вызовов API, хотя сторонний компонент рано связан с моей библиотекой VB6.Я могу запустить DLL, установить точку останова, и она переходит в мою функцию VB6, но возникают ошибки при вызове функции в стороннем компоненте.
Моя библиотека VB6 занимает 3 строки и одну 32-битную цифру (длинная в VB6)параметры.DLL-функция третьей стороны, которую я вызываю, принимает строку (bstrDNSID в качестве строки - это то, что Intellisense показывает в VB6).Вот где это ошибки.
Кто-нибудь знает, как это может быть решено?
Обновление: Ни один из сборщиков не помог, поэтому я попытался создать тестовый саб вмоя VB6 DLL.Я жестко закодировал все значения в тестовой подпрограмме DLL.Он работает нормально при вызове из VB6, но выдает ту же ошибку, что и выше, при запуске из .NET.Также интересно, что когда я запускаю DLL VB6 из IDE VB6, я не получаю сообщение об ошибке при вызове DLL из .NET.