정적 변수가 들어있는 cpp 파일 (헤더 파일이 없어야 함)이 있습니다. 이러한 정적 변수는 Visual Studio 2008 컴파일러에서 무시됩니다. 어떻게 해결할 수 있습니까?정적 라이브러리 (Visual Studio)에서 cpp 파일의 강제 연결
자세한 내용 : 나는 정적 필드 allInstances이있는 추상 클래스를
- ; 내 클래스의 "concretee"인스턴스가 생성되면 (cpp 파일에있는 정적 변수가 인스턴스화 될 때 발생합니다),이 인스턴스에 대한 포인터가 allInstances에 push_back됩니다.
- Cpp 파일에는 내 추상 클래스에서 파생 된 클래스가 포함되어 있습니다. 그들의 구현은 allInstances를 통해서만 호출 될 수 있기 때문에 cpp 파일에 있어야한다.
- 내 추상 클래스 cpp 파일은 정적 라이브러리에서 컴파일되는 폴더 (프로젝트)에있다.
- 이 정적 라이브러리는 프로젝트에서 사용된다. xll을 컴파일하는 파일
cpp 파일이 xll 프로젝트에있을 때 모든 것이 잘되었습니다. 하지만 엑셀이 유일한 인터페이스가 아니기 때문에 별도의 폴더에 cpp 파일을 옮겼을 때 정적 변수가 더 이상 인스턴스화되지 않습니다.
나는어떤 아이디어 .... 프로젝트가 좋지 않을까 등 XLL, EXE, PYD, DLL, 각각으로 이러한 CPP 파일의 많은 그들 모두를 포함 있나요? 미리 감사드립니다.
MSVS에서 작업 한 지 오래되었지만 사용하지 않은 개체를 제거하는 옵션이 설정되지 않았는지 확인 했습니까? 설정되어 있고 컴파일러가 정적 변수에 대한 참조를 알아 내지 못하면 제거 될 수 있습니다. 또한 객체를 '휘발성 (volatile)'으로 시험해 볼 수도 있습니다. – ysap