2009-09-19 9 views
3

현재 컨텍스트 메뉴 호출을 처리하는 DLL을 등록하는 데 다음 함수를 사용합니다.32 비트 응용 프로그램에서 64 비트 dll (64 비트 OS)을 등록하는 방법

32 비트 응용 프로그램에서 64 비트 dll을 등록하려고하면 불행히도 작동하지 않습니다.

내 32 비트 응용 프로그램 (Delphi에서 컴파일 됨)에서 64 비트 dll (자유 파스칼로 컴파일 됨)을 등록하는 다른 방법이 있습니까?

은 내가 C 호출 할 수 있습니다 가정합니다. \ WINDOWS \ 시스템 \의 regsvr32.exe를 "/ s는"파일 이름 "하지만 난 다른 대안이 있는지 알고 싶습니다

감사

답변

7

아니,! 32 비트 프로세스가 64 비트 dll을로드 할 수 없으면 dll을 등록하는 64 비트 프로세스를 호출해야합니다.

+0

왜 투표가 실패합니까? 그 질문에 대한 정답이 아니라고 나는 무엇을 말 했는가? –

+0

모두 사라짐.) – rpetrich

4

32 비트 프로세스를 사용하려면 등록을 수행 할 때 64 비트 프로세스를 사용해야합니다. bit Delphi 프로그램은 64 비트 DLL을 주소 공간에로드 할 수 없습니다.

직접 코드를 작성하고 싶지 않다면 Inno Setup 소스 코드를 살펴보십시오. 64 비트 도우미 응용 프로그램 용 Visual Studio 프로젝트가 있고 Helper.pas 장치에는 외부 도우미를 호출하는 코드가 있으므로이 코드에 포함 된 HelperRegisterTypeLibrary() 함수를 사용하면됩니다.

관련 문제