각 dll에서 각기 다른 클래스 구현을 사용하는 시스템을 만들려고합니다. 그래서 한 구현 및 개인 메서드 (및 아마도 그 DLL에 의해 엄격하게 사용되는 메서드) VertexBufferObject 클래스를 가질 것이다. 그러나 특정 실행 파일 집합 만이 주요 실행 파일에 사용됩니다.여러 DLL에서 클래스 구현이 개별적으로 구현됩니다.
openglGraphics.dll에서 : directXGraphics.dll에서
class VertexBufferObject {
private:
// Unexported data
uint vbo;
// Exported data (won't actually use this though)
std::vector<Vec3> arr;
public:
// Unexported methods
IDirect3DVertexBuffer9 *getVBO();
// Exported methods
virtual void Build(Vec2 array);
virtual void Build(Vec3 array);
virtual void Unbind();
~VertexBufferObject();
};
예를 들어
class VertexBufferObject {
private:
// Unexported data
IDirect3DVertexBuffer9 vbo;
// Exported data (won't actually use this though)
std::vector<Vec3> arr;
public:
// Unexported methods
IDirect3DVertexBuffer9 *getVBO();
// Exported methods
virtual void Build(Vec2 array);
virtual void Build(Vec3 array);
virtual void Unbind();
~VertexBufferObject();
};
그리고 마지막으로, 실행은 공장 기능을 사용하여 클래스의 수출 방법을 만들 수는 없지만 dll 특정 메서드. 이것이 가능한가? 그것을 처리 할 다른 방법이 있습니까? (또한 그래픽 API를 사용하고 있으면 멋진 점을 발견 할 수 있지만 질문의 요지는 찾을 수 없습니다.)
인터페이스를 사용하여 공용 API를 나타냅니다. –