이 오류는 C++ CLI 프로젝트의 빌드 출력으로 생성 된 DLL을 사용하는 일반적인 C# 콘솔 프로그램에서 발생합니다. 정적 메서드가있는 DumbThing
public ref class
이 간단합니다. 단순히 그 함수를 호출하거나 최소한 하나의 작은 DumbThing 개체를 인스턴스화하고 C# CLI에서 생성 된 C++ CLI에서 가져온 코드를 C#이 호출 할 수 있음을 확인하고 싶습니다.하지만 더 이상 나를 괴롭히는 오류가 발생합니다.C++ 관리 DLL에서 C# 예외가 throw 됨 - EEFileLoadException * __ptr64
First-chance exception at 0x000007fefd2acacd (KernelBase.dll) in DumbTest.exe: Microsoft C++ exception: EEFileLoadException * __ptr64 at memory location 0x007fc228..
업데이트 : 원의 예외 아래에 또 다른 첫 번째 예외가있다 : 동료가이 컴파일 시간 문제 (일부 옵션)이 될 수 있음을 나에게 지적
First-chance exception at 0x77cace3b (ntdll.dll) in DumbTest.exe: 0xC0000005: Access violation reading location 0xffffffffffffffff.
,하지만 난하지 그것을 일으킬 수있는 단서가 있습니다. 누구든지 출발점에 대한 힌트를 제공해 줄 수 있습니까?
C# 프로젝트가 64 비트 용으로 컴파일되도록 설정되어 있습니까 (항상 좋은 것은 아닙니다). 프로젝트 -> 속성 -> 빌드 -> 플랫폼 타겟. 설정되지 않은 경우 x86으로 설정해보십시오. –
첫 번째 예외 exceptin은 런타임 문제입니다. Main의 시작 부분에서 C# 코드에 중단 점을 넣고이 예외 이전에 도달 할 수 있습니까? 그게 로더 문제인지 아닌지를 분명히 할 것입니다. –
아니요, 주 함수에서 덤 (dumb) 클래스를 언급하면이 예외가 발생하고 중단 점은 무시됩니다. 그때로드 문제가 있어야합니다 ..하지만 난 그것을 일으킬 수도 모르겠다 .. 어쩌면 C + +의 DLL을 생성 다른 어셈블리가 필요합니까? (그것은 그것의 거주 폴더에 모든 것을 가지고 있고 그 종속성을 걷는 것이 어떤 불쾌감도 드러내지 않는다) .. – teodron