2010-05-23 9 views
1

regsvr32를 사용하여 만든 .dll을 등록하려고 할 때 이상한 문제가 있습니다..dll을 regsvr32로 등록하지 못했습니다. 릴리스 빌드에서만

개발 중에는 디버그 버전이 등록되고 제대로 작동합니다. 이제 릴리스 버전을 만들고 싶지만 그 버전은 더 이상 등록하지 않습니다.

에 regsvr32 다음과 같은 오류와 함께 제공 :

The module "mpegsplitter.dll" failed to load. 

Make sure the binary is stored at the specified path or 
debug it to check for problems with the binary or 
dependent .DLL files. 

The specified procedure could not be found. 

일부 연구 나에게 그것은 또한 crtdll "에 대한 종속성을 보여 않습니다이

Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module. 

을 말해 주는가 종속성 워커, 저를 가져왔다. dll "은 디버그 버전에는 없습니다 (기능보기에는 일반적으로 ole32.dll에 있어야하는 soem 기능이 표시됨). 빨간색으로 표시됩니다.

지금까지 그렇게 좋았습니다. 어떻게 든 종속성 워커가 보여준 것과 관련이 있습니다.

하지만 여기서 어디로 가야합니까? 어떻게 고칠 수 있니? 도움을 주시면 감사하겠습니다. 이미 몇 시간 동안 바쁘게 지켜 왔습니다.

감사합니다.

답변

0

해결했습니다. 사실 ffmpeg와 연결하기 위해 포함 된 일부 mingw 라이브러리의 순서로 인해 발생했습니다. 오 잘, 얼마나 괴상한 지.

+0

주문 문제를 어떻게 해결 했습니까? 로드하는 일부 외부 라이브러리에서 비슷한 문제가 발생할 수 있다고 생각합니다. – funseiki

0

디버그 버전이 _ATL_MIN_CRT으로 컴파일 될 수 있지만 출시 버전이 아닌가? Minimize CRT Use in ATL 프로젝트 속성으로이 값을 설정할 수 있습니다.

+0

이 설정되지 않았습니다. 나는 이것을 정의로 추가하려고 시도했지만, 더 이상 지원되지 않는다는 소리를 들었다. 이것은 VC08입니다. "오래된"것 같습니다. UI 옵션을 보지 못했습니다. – Hendrik

+0

내 C + + 지식은 아마도 조금 오래된 것입니다 ... 나는 다른 프로젝트 옵션을 비교하고 어떤 차이점을 볼 수 있는지 확인하는 것이 좋습니다. 특히 그들 중 하나가'/ MD' 또는'/ MT' 또는 유사하고 다른 하나는 그렇지 않은 경우. 속성에서'Command Line' 페이지를 보면 쉽게 비교할 수 있습니다. –

+0

그건 내 생각이기도하다. 나는이 프로젝트를 기반으로 한 또 다른 프로젝트를 가지고 있으며, 설정은 동일하지만 아직은 작동한다. 어쩌면 이상한 지시어를 어딘가에서 가져올 수 있을까요? 누군가가 종속성 워커 및 좋아하는 작업에 더를 사용하는 경우 , 난 컴파일 된 .DLL을 제공 할 수 있습니다. – Hendrik

2

동일한 문제가 있습니다. 내가 Release와 Debug 모드의 "Command Line"(Project Properties -> Linker) 사이에서 다른 점을 비교했을 때, Release 모드의 "Optimization"옵션 (Project Properties -> Linker)이 켜져있는 것을 발견했습니다. 아니. 릴리스 모드에서 링커 최적화를 설정하면 문제가 해결됩니다.