各DLLでクラスの実装が異なるシステムを作成しようとしています。だから私は1つの実装とプライベートメソッド(と多分そのDLLによって厳密に使用されるメソッド)を持つVertexBufferObjectクラスを持っていただろう。しかし、ある種のメソッドだけがメインの実行可能ファイルによって使用されます。たとえば、次のようにopenglGraphics.dllで複数の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を表すインターフェイスを使用します。 –