2009-05-20 3 views
0

내보낼 수있는 함수에는 매개 변수 중 하나 인 struct가 있습니다. 이 DLL은 많은 Exes에서 사용됩니다.수출 가능한 구조체의 데이터 멤버를 추가하면 (결국) 문제가 발생합니까?

EXE 중 하나는 추가 데이터를 보내야하므로 구조체 끝에 하나의 멤버를 추가하고 DLL을 배포했습니다.

지금 내 질문은 여분의 구성원을 인식하지 못하는 다른 EXE에 새 DLL을 넣으면 문제가 발생합니까?

DLL은 EXE에없는 구조 데이터 멤버에 액세스하려고 시도하면 안됩니다. 이 상황을 어떻게 처리합니까?

참고 : 새 API를 추가하는 것은 DLL에서 허용되지 않습니다.

답변

1

다른 함수가 값으로 struct을 허용하는 경우, 즉 포인터를 사용하지 않으면 문제가 발생할 가능성이 큽니다. 호출 코드는 수신 함수가 제거 할 것보다 더 큰 struct을 스택에 배치하여 순 스택 증가 및 일반적 불량을 초래합니다.