네이티브 C++ 코드 주위에 래퍼를 만드는 C++/CLI 어셈블리를 만들었습니다. 리소스를 컴파일하면 어셈블리가 리소스로 추가 될 때 C# 프로젝트에 잘로드됩니다. 내 응용 프로그램 내에서 내 개체 및 인텔리에 액세스 할 수 있지만 구축 할 때, 그것을 제외하고 충돌 :C++/CLI/C# BadImageFormat 양식로드시 예외
BadImageFormat
버전을 파일 또는 어셈블리 'MyCLI를로드 할 수 없습니다 = 1.0 .3680.28432, 문화 = 중립, PublicKeyToken = null ' 또는 그 종속성 중 하나. 시도가 올바르지 않은 형식의 이있는 프로그램을로드하려고했습니다.
나는 내 폼로드 이벤트에로드 :
MyCLI.myCLI z;
... 내가 컴파일 할 때, 그것은
사람을합니까
Application.Run(new Form1());
C#으로 내 주요 생성자에서이 라인에 충돌 이 예외의 원인이 될 수있는 아이디어가 있습니까?
감사합니다.
필자는 이제 그 점을 지적했음을 확신합니다. 그러나 C++/CLI 프로젝트에서 Win32가 아닌 다른 것을 표시 할 수없고 C# 프로젝트에 플랫폼 대상 드롭 다운이 비활성화되어 있습니다. 또한 나는 64 비트 운영 체제 –
에 있음을 유의하십시오. 그것은 매우 이상합니다. Corflags.exe를 사용하여 동일한 작업을 수행 할 수 있습니다. VS 설치 프로그램을 다시 실행하여 64 비트 C/C++ 컴파일러를 가져 오면 기본적으로 설치되지 않습니다. –
C++ 프로젝트를 x64로 컴파일하려면이 기사와 같은 몇 가지 기사 (http://msdn.microsoft.com/en-us/library/h2k70f3s(VS.80).aspx)를 읽어야합니다. –