Visual Studio 2008을 사용하여 dll에 외부 C++ 코드를 컴파일 중입니다. 코드가 extern "C"로 묶입니다.Visual Studio 2008을 사용하여 x86에서 x64 dll 컴파일
나는 32 비트 컴퓨터에서 64 비트 dll을 만드는 크로스 컴파일이므로, "Configuration Manager"에서 x64를 "능동 솔루션 플랫폼"으로 사용하고 있습니다.
내 dll이 성공적으로 컴파일되고 연결됩니다. 그러나 Dependency Walker (depends.exe)에서 열면 이상한 것이 있습니다. 내 dll은 64 비트로 표시되어 있습니다. 내 dll 그러나 32 비트있는 C : \ windows \ system32 \ ntdll.dll 및 C : \ windows \ system32 \ kernel32.dll 따라 달라집니다! 종속성 워커는 다음과 같은 오류 메시지를 표시합니다. "오류 : 암시 적으로 종속 모듈에서 내보내기 기능이 없어서 적어도 하나의 모듈에 가져 오기가 완료되지 않았습니다. 오류 : CPU 유형이 다른 모듈을 찾았습니다."
여기에 무슨 문제가 있습니까?
미리 답변 해 주셔서 감사합니다.
64 비트 시스템에서 이전 버전과의 호환성을 위해 system32의 파일은 실제로 64 비트 시스템입니다. 따라서 64 비트 컴퓨터에서 ntdll.dll과 kernel32.dll은 실제로 64 비트 버전입니다. 32 버전은 SysWow64에 있습니다. –