少し前からDLLの作成について学ばせていただいています。
静的リンクでは特に問題を感じられませんでしたが、
やっかいなのは動的リンクでした。
先日やっとclassのDLL化と動的リンクまで間接的ながら成功したのですが
どうも違うような気がしてなりません。
CMyClassというクラスを作成して、(もちろんメソッドはvirtualで)
以下のような全域関数をexportしました。
そして呼び出す側では関数ポインターを定義して
以下のようにクラスにアクセスすることができました。
typedef void (*PFUNC)(void);
HMODULE hModule = LoadLibrary("MyClass.dll");
PFUNC pFuncCreateInstance = (PFUNC)GetProcAddress(hModule, "CreateInstance");
CMyClass* pClass = pFuncCreateInstance();
/* クラスの使用 */
delete pClass;
以下のように直接的にアクセスすることができました。 CreateInstance()を使った私の方法は何か間違ってるような気がします。
正しい方法がありましたら是非教えて頂きたいたいです。