2013-08-21 5 views
0

activex 플러그인을 작성하고 cab 파일을 작성하여 2 DLL 파일로 ocx 파일을 만든 다음 a.dll 및 b.dll 만 호출하면됩니다. ocx는 a.dll에 의존하고 a.dll은 b.dll에 의존합니다. 수행 다운로드 후웹 페이지에서 CAB을 자동으로 다운로드 할 때 dll 파일을 복사 할 수 없습니다.

[version] 
signature="$CHICAGO$" 
AdvancedINF=2.0 

[Add.Code] 
test.ocx=test.ocx 
a.dll=a.dll 
b.dll=b.dll 

[test.ocx] 
file-win32-x86=thiscab 
clsid={AB1408A0-10F6-40BA-984D-074D7BDC3126} 
FileVersion=3,1,0,17 
DestDir=11 
RegisterServer=yes 

[a.dll] 
file-win32-x86=thiscab 
FileVersion=2,1,1,16 
DestDir=11 

[b.dll] 
file-win32-x86=thiscab 
FileVersion=2,0,0,16 
DestDir=11 

, 나는 A.DLL이 C에 존재하지 않는 발견 :/창/system32를하지만, 다른 두 개의 파일이 이미 있었고, OCX가 이미 등록 된 INF 파일이 있습니다.

a.dll이 나에게 불쾌감을주었습니다. b.dll은 타사 라이브러리입니다.

나는 이것에 당혹스러워하고 당신의 도움을 간절히 원했습니다.

답변

0

DestDir=11을 제거해보십시오. 따라서 system32 폴더에 아무 것도 들어 가지 않습니다. 종속성 DLL 파일은 OCX와 같은 폴더에 저장됩니다. 또한 CRT DLL (MSVC * .DLL)이 누락되었을 수 있습니다. C++ 프로젝트 설정에서 CRT에 정적으로 링크 전환하도록 제안합니다. Dependency Walker을 사용하여 대상 컴퓨터에서 종속성이 확인되지 않은 DLL이 있는지 확인하십시오.

+1

답장을 보내 주셔서 감사합니다. 나는 당신의 방법을 시도했지만 여전히 효과가 없습니다. 나는 그것을 구현하는 새로운 방법을 시도했다. Win32 프로그램 (exe의 임베디드 리소스 파일)에서 ocx 및 dll 파일을 복사하고 등록하십시오. 그리고 exe를 다운로드하기 위해 웹 페이지에 링크를 제공하십시오. 다시 한번 감사드립니다 ~ –