문제

OK, 여기에 오늘의 이상함이 있습니다.
소스 코드에 액세스 할 수없는 기존 C ++ 프로그램에 확장을 만듭니다.

표준 C / C ++ DLL을 작성하고 IJW를 사용하여 C # DLL을 호출합니다. 나는이 일을 잠시 동안하지 않았지만 이제는 창 7에서 일하기 위해 하나를 얻으려고 노력하고 있습니다. 오류가 발생합니다 (오류 0000036b1 - 응용 프로그램에 대한 내부 오류 번호 또는 Windows 오류가 있는지 확실하지 않습니다. / P>

여러 개의 가상 PC가 있습니다 (XP 및 Windows 7) DLL은 XP에서 잘 작동합니다. Visual Studio 2008이 설치된 경우 Windows 7에서도 작동합니다. 그러나 Microsoft Visual C ++ 2008 SP1 재배포 가능 패키지 만 설치된 클린 Windows 7에서는 아닙니다.

컴파일러 스위치가 MT [D]로 설정되지만 / CLR 스위치를 설정하면 i를 MD [D]로 변경해야합니다. 깨끗한 창 7 상자에서 실패합니다. 그러나 Visual Studio 2008이 설치된 Windows 7 상자가 아닙니다.

깨끗한 상자에 설치 해야하는 아이디어가 있습니까? (물론 vs 이외에 ;-))

도움을 주셔서 감사합니다.

l. 이마 / P>

도움이 되었습니까?

해결책

OK 이것은 나쁘다.누군가가 내가 필요로하는 파일이 디버그 버전이었고 디버그 모드에서 DLL을 컴파일했음을 지적했습니다.그는 방출 모드를 시도해 보았습니다.

그래서 Windows 7 Basic을 실행하는 가상 PC의 새 복사본 (3.5 C ++ Redist가 설치됨)이 가상 PC 가이 문제가 있는지 확인하기 위해 원래 DLL (디버그 모드에서 하나의 디버그 모드에서)을 복사했습니다.네가 그랬다.

그런 다음 릴리스 모드에서 컴파일 된 DLL을 복사했습니다.그것은 일했습니다.

OK, 나는 공식적으로 내 머리를 벽에 파운드하고 싶다.

시간에 감사드립니다.

l.이마 / P>

다른 팁

원시 C ++에 대한 지원 코드가있는 vc ++ 런타임 재배포 가능 (C ++에 대한 지원 코드가 있으며, C ++ / CLI에 대한 지원 코드가있는 코드가 있음)이 필요합니다.

.NET 3.5는 WIN7과 함께 제공되지만 VS2008 SP1은 .NET 3.5 SP1이므로 Windows Update에서 모든 .NET 업데이트를 설치하는 것이 좋습니다.

이제 나는 기분이 나쁘다.Windows 7의 깨끗한 설치가 완전히 설치되지 않았습니다. 확장자를 쓰는 응용 프로그램을 설치해야했습니다.그 프로그램의 최신 패치는 Visual C ++ 2008 SP1 재배포 가능 패키지를 설치했습니다.

잘, 나는 작은 bitty c ++ / cli dll의 설치 프로젝트를 만들고 의존성을 포함하도록 말하기로 결정했다.2 개의 파일로 끌어 올렸습니다.

C : \ Program Files \ Common Files \ 병합 모듈 \ Microsoft_VC90_DEBUGCRT_X86.MSM C : \ Program Files \ Common Files \ 병합 모듈 \ Policy_9_0_microsoft_vc90_debugcrt_x86.msm

i 설치와 작은 앱이 작동했습니다.나는 수동으로 DLL을 복사하고 LO를 보았고 보라 그들은 지금까지 일했습니다.따라서 일하기 위해이 두 파일이 필요했습니다.

왜?그리고 왜 그들은 리스틱 패키지에 포함되지 않았습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top