2011-02-09 6 views
0

32 비트 용으로 컴파일 된 응용 프로그램을 사용하여 64 비트 용으로 컴파일 된 DLL의 함수를 호출 할 수 있습니까?32 비트 용으로 컴파일 된 응용 프로그램을 사용하여 64 비트 용으로 컴파일 된 DLL의 함수를 호출 할 수 있습니까?

Windows 2008 64 비트 시스템을 사용하고 있습니다. 그러나 응용 프로그램은 여전히 ​​32 비트를 사용하여 컴파일됩니다.

코드에는 MFC & Windows SDK 함수가 포함됩니다.

+0

[32 비트 프로세스의 64 비트 dll에서 LoadLibrary 호출] (http://stackoverflow.com/questions/2466637/calling-loadlibrary-on-a-64-bit-dll-from) -a-32-bit-process) –

답변

4

번호 32 비트 응용 프로그램은 프로세스 공간에 64 비트 모듈을로드 할 수 없으며 그 반대의 경우도 마찬가지입니다.

32 비트 프로세스는 전용 Windows-on-Windows (WOW64) 하위 시스템의 64 비트 버전 Windows에서만 지원됩니다. 따라서 상호 운용 성은 까다로워집니다. 레이몬드 첸 (Raymond Chen)의 blog entry on the subject은 기술적 세부 사항에 관심이 있다면 매우 유익합니다.

둘 중 하나를 다시 컴파일하거나 별도의 프로세스에로드하고 interprocess communication을 사용하여 둘 사이를 조정해야합니다.

+0

COM 라이브러리 인 경우 인터페이스를 마샬 러블이라고 가정하면 out-of-process 서버로로드 할 수 있습니다 ... – bdonlan

1

그건 불가능합니다. dll에 포함 된 이진 코드는 다르며 포인터는 64 비트입니다.

관련 문제