[問題] C# 使用 C++ dll
因為我對C#不熟,目前我遇到的情況是,要用C#去接一個
C++的dll(含MFC),經google後,我的作法是:
*dll*
extern "C" __declspec(dllexport) int add(int x,int y)
{
classname myclass;
return myclass.add(x,y);
}
*C#*
[DllImport("RegularDll.dll", CharSet = CharSet.Auto)]
public static extern int add(int x,int y);
但是這樣每一次呼叫 add()時,就需要重新再做一個classname的物件
,而我在我寫的dll裡面,有一部份需要讀檔然後計算完建成一張表,
然後可以做查表的功能(需要計算不短的時間),所以變成我每次呼叫一
次add(),就需要重新計算一次來建表(這樣就失去了查表的意義了Orz)
請問,C#有像c++可以讀取直接導出class的作法嗎? 像
*export.h*
class __declspec(dllexport) classname;
*import.h*
class __declspec(dllimport) classname;
這樣在cpp裡就可以直接用 classname來創造物件。
C#有類似的作法嗎?
或者有其他方法可以保留dll裡的class的member資料?
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.228.236.56
推
12/14 17:01, , 1F
12/14 17:01, 1F