嘿,我試圖編寫一個遊戲引擎,我試圖導出一個類在一個DLL中,並試圖在我的主代碼中使用它。就像使用loadlibrary()
函數一樣。我知道如何導出和使用Dll的函數。但我想導出類,然後像使用函數一樣使用它們。我不想爲該類別include <headers>
然後使用它。我希望它是運行時。我有一個非常簡單的類的代碼,我只是用它來試驗它。如何使用DLL中的導出類
#ifndef __DLL_EXP_
#define __DLL_EXP_
#include <iostream>
#define DLL_EXPORT __declspec(dllexport)
class ISid
{
public:
virtual void msg() = 0;
};
class Sid : public ISid
{
void msg()
{
std::cout << "hkjghjgulhul..." << std::endl;
}
};
ISid DLL_EXPORT *Create()
{
return new Sid();
}
void DLL_EXPORT Destroy(ISid *instance)
{
delete instance;
}
#endif
如何在我的主代碼中使用這個?任何幫助將非常感激。 如果它很重要我在Visual Studio 2012.
http://stackoverflow.com/questions/110833/dynamically-importing-ac-class-from-a-dll – user2176127
雖然上面的線程很好,簡而言之,您可以將接口類從dll中取出一個單獨的頭文件,然後通過分配給創建實例的基指針調用方法。 – 2013-11-23 11:20:37
其中的解決方案顯示瞭如何從Dll加載函數,我已經知道了。我無法理解如何加載課程。我不知道如何加載該Create函數,因爲在爲此創建typdef時,我需要返回類型,但我不想包含標題。 – Xk0nSid