Использование c #, VS2005 и .NET 2.0. (XP 32 бит) Это приложение Winforms, которое вызывается надстройкой VBA (.xla) через библиотеки Interop. Это приложение существует уже некоторое время и прекрасно работает, когда сборка компилируется и выполняется где-либо, кроме моей машины разработчика. В dev происходит сбой (в отладчике и только при запуске объекта) с «Необработанное исключение в 0x ... в EXCEL.EXE: 0x ... нарушение положения чтения 0x ...
Но вот странная часть:
Первый метод в моем интерфейсе работает нормально. Все остальные методы завершаются сбоем, как описано выше. Вот примерный код:
[Guid("123Fooetc...")]
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
public interface IBar
{
[DispId(1)]
void ThisOneWorksFine(Excel.Workbook ActiveWorkBook);
[DispId(2)]
string Crash1(Excel.Workbook ActiveWorkBook);
[DispId(3)]
int Crash2(Excel.Workbook activeWorkBook, Excel.Range target, string someStr);
}
[Guid("345Fooetc..")]
[ClassInterface(ClassInterfaceType.None)]
[ProgId("MyNameSpace.MyClass")]
public class MyClass : IBar
{
public void ThisOneWorksFine(Excel.Workbook ActiveWorkBook)
{...}
string Crash1(Excel.Workbook ActiveWorkBook);
{...}
int Crash2(Excel.Workbook activeWorkBook, Excel.Range target, string someStr);
{...}
}
Кажется, что-то вроде окружающей среды. Реестр разбит? Могут быть ошибки в коде, но он отлично работает в других местах.