문제

요 몇 가지 기본적인 정화에는 C++를 정적 링크가 있습니다.나는 파일이라고 data_client.lib.세 독립적인 소비자에 대한 라이브러리 파일 a.exe,b.exe 고 c.exe.가 서비스 data_server.exe 는 data_client.lib 이의 인터페이스를 제공합니다.실제로,나는 또 다른 기능을 data_server.exe 고 해당 인터페이스를 data_client.lib.이후 그 a.exe 필요한 추가 기능성,구축 a.exe 니다.나는 발송 data_server.exe,data_client.exe 고 a.exe 패치.지금 b.exe 고 c.exe 무작위로/일관성 없이 충돌을 던지

mfc42u!CException::`온 완료 체 Locator'+0x10

가됩니까?면도 b.exe 고 c.exe 다음의 충돌이 발생하지 않습니다.이 방법을 작동하는지?

도움이 되었습니까?

해결책

실제로,나는 또 다른 기능을 data_server.exe 고 해당 인터페이스를 data_client.lib.

그것은 작은 불분명 한 이로부터 정확하게 추가되었습니다.그러나,그것의 새로운 방법을 추가한 클래스(보다는 몇 가지 새로운 독립 기능),가 매우 높은 기회를 다시 컴파일하는 모든 것이 당신의 문제를 해결합니다.이 vtable 지 않을 수도 있었을 던진에 의해 구타 변경합니다.

그것은 또한 당신의 충돌이 절대적으로 아무것도 할 수 있고 일부는 다른 문제에...그러나 당신의 설명에서,나의 돈에 vtable 문제입니다.는 경우 그랬다면,다시 컴파일 b.exe 고 c.exe 다시 테스트하기 전에 조사하는 기타 문제가 발생합니다.

다른 팁

아마도 당신은 명시적인 종속성이 없지만 일부 프로젝트 헤더가 사용하거나 정보를 암시 적으로 라이브러리에 넣습니다.

오류에 대해 알지 못하지만 응용 프로그램 B.exe 및 C.exe는 구형 버전의 바인딩 리브를 사용하여 최신 버전의 Data_Server.exe와 통신합니다. 기능을 추가 한 경우 일부 v_table 인덱스가 꺼져있을 수 있습니다. 당신은 확실히 모든 라이브러리를 재건해야합니다.

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