看板 C_Sharp 關於我們 聯絡資訊
因為我對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
KENyroj:DllImport ? 12/14 17:01