x86 x64 두 프로그램을 같이 사용못하나요 ?

A(x86) 라는 솔루션과 B(x64)라는 솔루션 두개를 합쳐서
A에서 특정 함수 호출시 B가 실행 되게 하려고 하고있습니다.

그러나 B는 모두 x64 환경이고, 참조하는 dll들도 모두 64더라구요,
한 솔루션 안에서의 서로다른 bit 실행이 가능할까요.?
다른방법은 무엇이 있을지 조언좀 부탁드립니다.

좋아요 1

일반적으로는 불가능 합니다.

좋아요 2

한 프로세스 안에서는 아키텍처가 다른 DLL을 동시에 직접 로드할 수 있는 방법은 없는 것으로 알고 있습니다.

만약 한 솔루션 안에서 서로 다른 아키텍처의 코드를 실행하기 원하신다면, 사용자 인터페이스에 해당하는 프론트엔드 (UI 파트)는 가장 호환성이 높은 x86 코드로 작성하시고, 나머지는 각 CPU 아키텍처 별로 바이너리를 만들어서 같이 배포하셔서 x86 코드에서 CreateProcess (System.Diagnostic.Process)로 EXE 파일을 부르는 형태로 만드시는 것이 최선이라고 봅니다.

비슷한 사례로 64비트 버전의 윈도우 서버에서 실행되는 IIS의 작업자 프로세스에서 설정에 따라 32비트 모드로 동작할지 64비트 모드로 동작할지를 결정하는 예가 있습니다. Galaxy Upload 같은 오래된 32비트 전용 클래식 ASP (닷넷 아님)용 멀티파트 인코더 모듈을 사용하기 위해, IIS 작업자 프로세스를 32비트로 설정해야만 하는 경우가 그렇습니다.

좋아요 1