創建一個DLL,并把類名作為介面:
頭檔案:
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __MyDLL
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif
class DLL_API __stdcall SimpleDLL
{
public:
SimpleDLL(int a =1, int b = 2);
~SimpleDLL();
int Test();
private:
int ma, mb;
};
DLL_API int __stdcall test_externC();
#ifdef __cplusplus
}
#endif
物體:
SimpleDLL::SimpleDLL(int a, int b)
{
ma = a;
mb = b;
}
SimpleDLL::~SimpleDLL()
{
}
int SimpleDLL::Test()
{
return ma+mb;
}
int __stdcall test_externC()
{
return 1;
}
在virtual studio2015的程式中實體化類SimpleDLL是沒問題的,但在C++ Builder中呼叫卻提示找不到建構式,編譯不通過,這是C++builder不支持識別C++命名規范的DLL函式嗎?
uj5u.com熱心網友回復:
coff2omf。百度搜索,格式都不一樣。uj5u.com熱心網友回復:
盡量用簡單變數格式,int char*等uj5u.com熱心網友回復:
我是在VS編譯出這個DLL,在VS可用;在C++ Builder編譯出這個DLL,在C++ Builder都無法呼叫類uj5u.com熱心網友回復:
序列化再呼叫?uj5u.com熱心網友回復:
要么封裝成COM要么純C的DLL
uj5u.com熱心網友回復:
靜態呼叫dll,lib兩者不同,
動態呼叫dll不需要lib,你試試
uj5u.com熱心網友回復:
沒有試過封裝成com,要試一下。to xjq2003:動態呼叫的時候也需要lib,不然會報錯
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/95815.html
