動態庫導出類,並調用類函數

在對動態庫中的類函數的調用,不能直接使用加載函數來調用,否則會出現LINK2019的錯誤,這裏應該用類對象或者類指針來調用類函數。

動態庫代碼(我這裏使用的是WIN32):

.h

EXTERN_C class CLASSDLL_API Fun
{
public:
	int add(int a, int b);
};

EXTERN_C  CLASSDLL_API int m_add(int a,int b);

 

.cpp

int Fun::add(int a, int b)
{
	return a + b;
}

CLASSDLL_API int m_add(int a,int b)
{
	Fun p;
	int t = p.add(a, b);
	return t;
}

 

我們來調用這個類函數,創建一個MFC基本對話框。

Dlg.cpp文件

#pragma comment(lib,"ClassDLL.lib")
EXTERN_C  int __declspec(dllexport) m_add(int a, int b);

void CLoadDLLDlg::OnBnClickedButton1()
{
	int ret = m_add(1, 2);
	char strRes[100] = { 0 };
	sprintf_s(strRes, "和爲%d", ret);
	MessageBoxA(NULL, strRes, NULL, 0);
	// TODO: 在此添加控件通知處理程序代碼
}

 

結果:

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章