2013-04-15 6 views
0

wince 6.0에서 C++ libary가 있습니다. 일부 전역 변수가 있습니다. libary는 C++ 인 DLL과 연결되어 있습니다. 내가 응용 프로그램을 exected하고 DLL을 호출했을 때. 먼저 static libary의 모든 전역 변수를 초기화하지만 컨트롤이 정적 lib에 DLL로 돌아올 때. 그 모든 glbal 값을 재설정. 누구든지 그것에 대해 생각하고 있습니까?정적 lib 글로벌 값이 DLL에서 호출 한 후 재설정 됨

+2

하나의 DLL 만 정적 라이브러리에 링크했거나 다른 DLL입니까, 아니면 정적 라이브러리에 연결된 EXE입니까? – Ben

+0

두 개의 DLL이있는 @ben, LIB를 추가했습니다 – user2268978

답변

0

정적 라이브러리에 두 개의 DLL을 연결 한 경우 라이브러리에 모든 코드와 변수의 사본이 두 개 있다는 의미입니다.

이 문제를 해결하려면 정적 라이브러리를 DLL로 변환해야합니다. 이것은 module.def 파일과 링커 호출로 구성된 간단한 프로젝트로 수행 할 수 있습니다.

그런 다음 DLL을 정적 라이브러리에 연결하는 대신 DLL과 연결하십시오.

또는 두 개의 DLL이있는 대신 단일 DLL로 프로젝트를 결합하십시오.

데이터가 공유되지 않는다는 것을 이해하고 받아 들일 경우, 동일한 정적 라이브러리로 두 모듈을 연결하는 것이 좋습니다.

+0

감사합니다. 우리는 한 dll에 대해서만 하나의 lib를 사용하고 있습니다. – user2268978

관련 문제