C#, VS2005 및 .NET 2.0 사용. (XP 32 비트) Interop 라이브러리를 통해 VBA 추가 기능 (.xla)에 의해 호출되는 Winforms 앱입니다. 이 응용 프로그램은 잠시 동안 주위에 있었는데 어셈블리가 컴파일되고 내 dev 컴퓨터 이외의 다른 곳에서 실행될 때 잘 작동합니다. dev에 그것은 디버거에서 (단지 개체를 실행하는) "처리되지 않은 예외 0x ... EXCEL.EXE에서 ... 0x ... 위반 읽기 위치 0x ...Excel 추가 기능 액세스 위반
하지만 이상한 부분은 다음과 같습니다.
..내 인터페이스의 첫 번째 방법은 여기에 모든 다른 방법으로 위의 충돌이 잘 작동 코드의 근사치입니다 :
[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);
{...}
}
그것은 환경 것은 어떤 종류의 것 같다 레지스트리 chundered 할 수있는 코드를.? 버그가 있지만 다른 곳에서도 잘 작동합니다.
Thx Joe! 코드 클리너가 트릭을했습니다. –