2. 1. 함수 Export 2. 클래스 Export 3. 클래스 맴버함수Export 4. 가상 클래스 맴버함수Export 차례
3. 소스 코드 공개 없이 기능 로직을 다른 응용 프로그램에 제공하거나 클래스를 상속할 수 있게 해준다. 실행파일의 가상 메모리 영역에 Mapping 해서 사용되기 때문에, 둘 이상의 프로세스가 같은 DLL 을 공유하는 경우, 메인 메모리에서 공유가 이루어진다. 왜 DLL 인가요?
5. 매크로 정의에 따라 DLL 사용방식 변경 Class 정의에 __declspec를 사용해준다. 응용 프로그램에서 DLL에 있는 클래스를 선언하거나 할당할 때 메모리 추적이 잘 못될 수 있으므로 주의해야 함. 2. 클래스 Export
6. Class 공개 보호를 위해 해당 클래스 맴버 함수에만 __declspec처리를 해준다. 클래스 에서는 public 이여도 export 처리 하지 않으면 DLL 외부에서 접근하지 못하므로 사용방식을 제한할 수 있다. 3. 클래스 맴버 함수 Export
7. LoadLibrary를 이용한 실행시점에서의 DLL 로딩시inline 함수를 확장시키지 않으면 에러 발생. 맴버 함수를 가상함수로 선언하면 인라인 함수 확장이 따로 필요없음. 응용 프로그램 상에서는 별다른 작업 없이 그대로 파생되는 클래스를 제작 할 수 있다. 4. 가상 클래스 맴버 함수 Export
8. 게임 브리오DLL 라이브러 처리 방식 빌드할 때 네이밍에 버전, 컴파일러, 빌드방식을 표기 사용자가 원하는 DLL을 가져다 쓰게 정의. 5. 예제