2011-12-08 3 views
0

DLL에서 함수를 호출하는 프로세스가 있습니다. DLL 내부에서 구조체를 할당하고 구조체가 DLL 내부의 다른 함수에서 사용되며 항상 해당 함수를 참조로 전달됩니다. 프로세스에 의해 호출됩니다. 시간 일을 잘하지만, 내가 여러 번 (비주얼 스튜디오 2008을 사용) 디버그 빌드를 수행 할 때 그 구조가 상황이 갑자기 NULL이되기 때문에, 프로세스, 충돌합니다의 대부분은 다음과 같이이다 :데이터가 갑자기 디버그 빌드에서 NULL이 됨

  • 프로세스
  • 프로세스 Func3를 호출 그때, 많은 곳에서 구조를 사용
  • 프로세스 몇 가지 변수를 수정,이 구조에 어떤 처리를 수행,이 Func2를 호출 변수를 초기화 구조를 할당하고 FUNC1을 ... 호출 코드 안에 한 곳 (여기서 내가 st 링 ( 표준 : : 문자열 myStr = myStructre-> myStrucString) 프로세스가 액세스 위반 오류 추락 ... 나는 모든 변수 myStructure 갑자기 NULL ....
것을 알게 디버거 확인

어떤 아이디어?! (아주 아주 드문 빌드입니다)

+0

이 구조체는 포인터/변수 전역이며 다른 전역 포인터/변수를 통해 액세스됩니다. 피해자가 아닌지 확인해야합니다. 정적 초기화 Fiasco. –

+0

코드의 영어로 된 설명보다 코드가 훨씬 모호하다는 것을 알고 계실 것입니다. –

+0

@Als 아니요 – aiman09

답변

관련 문제