2012-03-08 3 views
1

MFC ActiveX 컨트롤을 개발했으며 필요한 cab 파일과 inf 파일을 만들었습니다. 32 비트 IE에서 완벽하게 작동합니다. 64 비트 IE에서 액세스하려고하면 설치하라는 메시지가 표시되지만 함수에 액세스하려고하면 "함수가이 속성 또는 메서드를 지원하지 않습니다"라는 오류 메시지와 함께 함수가 호출되는 곳에서 실패합니다. 64 비트 IE를 위해 특별한 일을해야합니까?64bit IE에서 ActiveX 컨트롤 설치

용액 내가 64 비트 모드 내 제어 컴파일 2 개 CAB 파일을 생성하여 YMS 바와 같이

. 웹 페이지에 의해 수정 내가 적절한 CAB 파일을 DLL을 64 비트 applications.You에서 직접 사용할 수 없습니다

<script language="jscript"> 
document.write("<OBJECT width='600' height='300' id='ActiveXPowUpload' " 
    + "CLASSID='CLSID:FB98CEED-9DE1-4517-B30C-CDA19C6D150B' "); 
if(navigator.cpuClass.toLowerCase() == "x64") { 
    document.write("codebase='ActiveXPowUpload-x64.cab#Version=1,0,0,1'>\n"); 
} else { 
    document.write("codebase='ActiveXPowUpload-x86.cab#Version=1,0,0,1'>\n"); 
} 
document.write("<param name='UploadURL' value='http://hostname/path/to/upload/script.aspx' />\n"); 
document.write("<param name='EnablePopupMenu' value='false' />\n"); 
<!-- other parameters --> 
document.write("</OBJECT>\n"); 

+0

두 개의 서로 다른 dll을 만들었다 고 가정합니다. 하나는 각 CPU 아키텍처에 해당합니다. 맞습니까? – yms

+0

@yms 아니, 그냥 하나의 ocx 파일로 시도 중입니다 – Jeeva

답변

1

32 비트를 다운로드하기 위해 각각의 CPU 아키텍처에 대한 하나의 DLL을 작성해야합니다.

64 비트 버전의 Windows는 32 비트 응용 프로그램과 64 비트 응용 프로그램을위한 두 개의 다른 레지스트리 저장소를 제공하므로 동일한 GUID로 dll과 형식 라이브러리를 모두 등록 할 수 있으며 각 응용 프로그램은 그것이 만들어진 CPU 아키텍처.

+0

프로젝트 설정을 변경해야합니까? – Jeeva

+0

예, 64 비트로 구성하고 다시 빌드해야합니다. 몇 가지 세부 사항에주의하지 않으면 코드를 변경해야 할 수도 있습니다. 참조 : [일반적인 Visual C++ 64 비트 마이그레이션 문제] (http://msdn.microsoft.com/en-us/library/3b2e7499 (VS.80) .aspx) – yms

+0

64 비트 용 cab 파일을 만들었으며 잘 작동합니다. 이제 2 CAB 파일을 64 & 32. 어떻게 HTML을 적절한 택시를로드 할합니다? – Jeeva