作者syntex (飘荡者)
看板C_Sharp
标题[问题] C# 使用 C++ dll
时间Fri Dec 14 16:56:55 2007
因为我对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
1F:推 KENyroj:DllImport ? 12/14 17:01