2012-09-06 3 views
0

Chrome 확장 프로그램 내에서 패키징하는 NPAPI 플러그인을 만들었습니다. Windows 2003 및 Windows XP 64 비트에서 Chrome에 확장 프로그램을 설치하고 사용할 수 있습니다.NPAPI 플러그인 Windows DLL 종속성

그러나 Windows 7 (32 비트 또는 64 비트) 또는 Windows XP 32 비트에 플러그인을 설치하면 Chrome에서 해당 확장 프로그램을 사용할 수 없습니다. 크롬 로그는 "플러그인을 초기화 할 수 없습니다"라는 오류 메시지를 표시합니다.

모든 환경에서 종속성 워커를 실행했는데 확장이 작동하지 않는 환경에서와 같이 경고 메시지가 모두 나타납니다. "경고 : 적어도 하나의 모듈에 다음과 같은 이유로 인해 확인할 수없는 가져 오기가 있습니다. 지연로드 종속 ​​모듈에서 누락 된 내보내기 기능. " (문제의 DLL은 SHLWAPI.DLL, IEFRAME.DLL 및 MPR.DLL입니다.) 확장명이 작동하는 환경에서는이 경고가 표시되지 않지만 (해당 DLL 중 하나는 지연로드 종속성 모듈이 발견되지 않음을 경고하지만).

다른 DLL 버전과의 DLL 의존성은 달라야합니까? 문제를 해결하는 가장 좋은 방법은 무엇입니까? 아니면 이러한 DLL 종속성과 관련없는 플러그인 오류입니까?

답변

0

shlwapi 및 ieframe은 아마도 사용자의 문제와 관련이 없습니다. 이러한 오류를 보는 것은 일반적인 문제입니다. mpr.dll에 대한 확실하지 않은 것을 보지 못했습니다.

firebreath에 외부 DLL 종속성이 없으므로 FireBreath 플러그인을 시도하고 종속성 워커 결과를 비교하여 불어 렐리가 필요로하는 것을 발견 할 수 있는지 확인하십시오.

2

기본 "/ MD"대신 "/ MT"컴파일러 플래그로 바이너리를 컴파일하여 런타임 라이브러리에 의존하지 않고 프로젝트를 재 빌드하십시오.

오픈 소스 코드를 사용하는 경우 "/ MT"플래그를 사용하여 각 프로젝트를 다시 빌드하십시오. 그렇지 않으면 이러한 런타임 DLL 문제를 영원히 쫓아 낼 것입니다.