私はCodeProjectのガイドに従い、抽象インターフェイスを使用して DLL を構築し、extern "C"
コマンドを使用__declspec(dllexport)
してファクトリ関数をエクスポートし__cdecl
ました。これを行うことで、DLL がクリーンなインターフェイスでコンパイラに依存しないようになると記事は主張しています。ただし、g++ の 2 つの異なるバージョンで DLL を使用すると、非標準の ABI により、DLL の呼び出しで標準の c++ の問題が発生しました。CodeProject の記事に加えて、クラスの複数のインスタンスを作成できるようにするために、 MinGWの記事も使用しました。
では、DLL コンパイラを独立させるにはどうすればよいでしょうか。これが不可能な場合、DLL 内でクラスをインスタンス化し、関数を純粋な C にしますが、インスタンス化されたクラスに関連する C++ 関数を呼び出すことは可能ですか?