나는 3 개의 클래스가있는 C++ DLL을 가지고 있습니다. "stdafx"헤더 파일에 정적 부울 변수를 추가했습니다 (모든 클래스에 포함되어 있기 때문에). 사용하려고합니다. 모든 수업이 내 변수를 보는 반면, 각 변수는 다른 변수를 가진 것처럼 보입니다. 한 번 클래스에서 변수를 true로 설정하면 다른 클래스에서 false라는 것을 알 수 있습니다. DLL 내에서만 모든 클래스에서 사용할 수있는 변수를 만들 수있는 방법이 있습니까?C++ DLL에서 전역 변수 사용
답변
글쎄, 당신은 그것을 static
으로 표시 했으므로 그렇게됩니다. 대신 머리글에 extern
레이블을 지정하고 TU로 정의하십시오.
stdafx
을 수정하지 마십시오. 그것은 당신 것이 아닙니다. 자신의 공유 헤더를 사용하십시오.
'stdafx.h '를 수정할 수 있습니다. 파일에서 자동으로 생성 된 주석은 이렇게 말합니다 * // stdafx.h : 표준 시스템 포함 파일 또는 빈번하게 사용되지만 자주 변경되지 않는 프로젝트 별 포함 파일 용 파일 포함 * – Praetorian
@Praetorian : _really_ 나쁜 생각. 주로 IDE에 의해 자동 생성되기 때문에; 당신의'bool'은 어떤 점에서 길을 잃을 것입니다. –
자동 생성되지만 프로젝트를 만들 때 한 번만 수행하고 그 후에는 IDE에 의해 수정되지 않습니다. stdafx.h와 함께 사용할 수있는 미리 컴파일 된 헤더를 만들 수는 없다고 생각하므로 단지 옵션 일 수 있습니다. – Praetorian
변수가 static
이고 프로젝트의 모든 소스 파일에 포함되어있는 stdafx.h
으로 선언하고 있습니다. 즉, 각 번역 단위에는 고유 한 변수 사본이 포함됩니다. 이는 정확히 사용자가 보는 행동입니다.
stdafx.h
extern bool MyBool;
- 1. DLL에서 전역 변수 내보내기
- 2. 공개 변수 전역 사용
- 3. 전역 변수 사용
- 4. backbone.js에서 전역 변수 사용
- 5. 전역 변수 사용
- 6. 전역 변수 사용
- 7. DLL에서 정적 클래스 변수/함수 사용
- 8. dll에서 전역 변수에 액세스
- 9. objective-c - 전역 변수
- 10. C++의 전역 변수
- 11. C++ 전역 변수 수명
- 12. C# .net의 전역 변수
- 13. C 코드베이스의 전역 변수 식별
- 14. 다른 공유 라이브러리에서 전역 변수 사용
- 15. 전역 이름 공간에서 변수 사용
- 16. vb6에서 dll의 전역 변수 사용
- 17. 정적 메서드에서 전역 변수 사용
- 18. 자바 스크립트에서 전역 변수 사용
- 19. python 함수에서 전역 변수 사용
- 20. Cakephp 변수 문제 - 전역 변수 사용?
- 21. IPhone : Objective C 전역 변수
- 22. C++에서 전역 변수 변경
- 23. C : 전역, 정적 변수 이해
- 24. 메트로 앱 전역 변수 C#
- 25. DLL을 통한 C++ 전역 변수
- 26. DLL에서 선언 된 전역 변수는 어떻게됩니까?
- 27. C/C++의 dlopen 및 전역 변수
- 28. DLL에서 C++ 클래스 내보내기
- 29. COM DLL에서 tlbexp.exe 사용
- 30. 변수 전역 변수?
에
stdafx.cpp
다음
extern
그 안에 변수를 선언하려면? 아마도 수정하지 않을까요? –이 문제를 해결하는 데 도움이되는 아이디어가 있습니다. 이것은 나에게 가장 이해하기 쉬워서 같이 갔다. – Seb
고유 한 헤더를 만듭니다. –