2010-03-24 5 views
1

내 솔루션은
C# 응용 프로그램 프로젝트
C# 사용자 컨트롤이 추가 된 UserControls의다국어 솔루션이 작동하지 않는 이유는 무엇입니까?

하나는 수학 (C++ 프로젝트)에서 함수를 사용
C++ 수학 프로젝트 프로젝트가 있습니다. 이 UserControl이 응용 프로그램에 사용됩니다.

응용 프로그램 빌드 및 시작이 올바르게 작동합니다. 입력 할 때 IntelliSense는 포함 된 모든 클래스와 메서드를 제안합니다. UserControl이 올바르게 표시되지만 C++ 함수를 호출하는 버튼을 클릭하면 BadImageFormatException (자동 생성 된 Main 함수의 끝 부분에 나타납니다)이 표시됩니다.

도움말에 연결하기 위해 /fixed:no을 사용하는 것이 좋습니다. 그러나 이미 설정되어 있습니다.

+0

C# 함수를 C# 컨트롤 프로젝트로 가져 오는 방법은 무엇입니까? BadImageFormatException과 관련된 예외 메시지가 있습니까? – itowlson

+0

다음과 같이 사용합니다. res = MathCpp.Math.Add (i1, i2); 프로젝트에 MathCpp에 대한 참조가 있습니다. 메시지 : 파일 또는 어셈블리를로드 할 수 없습니다. MathCpp, 버전 = 1.0.3735.2560, 문화 = 중립, PublicKeyToken = null 또는 종속 구성 요소 중 하나입니다. 잘못된 형식으로 프로그램을로드하려고 시도했습니다. – Lukas

답변

1

64 비트 시스템에서 32 비트 dll을 실행할 때 BadImageFormatException을 얻을 수 있습니다. 모든 프로젝트에서 대상을 "x86"으로 설정하십시오.

+0

감사합니다. dll을 64 비트로 빌드 할 수 있습니까? – Lukas

+0

네이티브 32 비트 dll을 참조하지 않는다면 다음과 같이 할 수 있습니다. 대상을 x64로 설정할 수 있습니다. –

1

제공하는 정보에 따라 관리 코드가 관리 코드 인 것처럼 C++ DLL을 호출하려고하는 것처럼 들립니다. 관리되지 않는 코드로 작성되었을 수도 있습니다.

An attempt is made to load an unmanaged dynamic link library or executable (such as a Windows system DLL) as if it were a .NET Framework assembly. 

당신이 관리되지 않는 코드와 C++ 프로젝트를 빌드하는 경우/P를 사용하는 그것으로 전화를 호출 할 필요가 있습니다 :이 정보는 약 BadImageFormatException이에 대해 설명합니다.

관련 문제