32 비트 Visual Basic dll을 개발했습니다. DLL 기록 만 1 방법 GetSum 갖는 두 개의 정수 parameteres Windows 7 64 비트 컴퓨터에서 32 비트 exe를 64 비트 exe로 변환
지금 늦은 결합 부하의 WinForm 32 비트 어플리케이션에 DLL을 사용. 두 개의 정수 값을 전달하면 레이블에 합계가 표시됩니다. 합계가 정확함을 보여줍니다.private void Form1_Load(object sender, EventArgs e)
{
object[] args = new object[] { "89", "2" };
Type comObjectType = Type.GetTypeFromProgID("Project1.Class1", true);
object comObject = Activator.CreateInstance(comObjectType);
Type acctualObjectType = comObject.GetType();
object result = acctualObjectType.InvokeMember("GetSum", System.Reflection.BindingFlags.InvokeMethod, null, comObject, args);
label1.Text = result.ToString();
}
제 문제는 Windows 7 64 비트 시스템에서 winfrom exe를 실행할 때입니다. "WindowsFormsApplication.exe * 32"와 같은
내 winfrom exe가 64 비트 시스템에서 32 비트 모드로 실행 중임을 의미합니다. 32 비트 exe를 64 비트 컴퓨터에서 실행하여 64 비트 exe로 실행하려면 어떻게해야합니까?
* 32 작업 관리자 프로세스 섹션에서 exe에 추가하지 마십시오.
플랫폼 대상을 'AnyCPU'로 설정하고 '32 비트 선호'를 해제 했습니까? –
내가 어떤 CPU에 플랫폼을 설정하면 exe는 32 비트 컴퓨터에서 작동하지만 64 비트 시스템에서는 오류 클래스가 등록되지 않고 충돌합니다 .System.Runtime.InteropServices.COMException (0x80040154) : 구성 요소의 COM 클래스 팩터 리 검색 중 다음 오류로 인해 CLSID {0AAB73EC-446B-4142-B758-9637D4CA8E18}이 (가) 실패했습니다. 80040154 클래스가 등록되지 않았습니다 (HRESULT의 예외 : 0x80040154 (REGDB_E_CLASSNOTREG)). –
Matthew 여기서 32 비트 용 탭이 있습니다 –