我想創建一個系統,在每個DLL中使用不同類的實現。所以我會有一個VertexBufferObject類,它有一個實現和私有方法(也許方法嚴格使用該DLL)。但是主要的可執行文件只會使用一些特定的方法。例如:在多個DLL中的單獨的類實現
在openglGraphics.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();
};
在directXGraphics.dll:
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。 –