我有一個C語言編寫的傳統DLL,我想從C#.NET應用程序調用。問題是C DLL的DLL接口相當複雜。這件事情是這樣的:從C DLL到.NET的接口
__declspec(dllexport) void __stdcall ProcessChunk(
void *p_prochdl,
const BIG_INPUT_STRC *p_inparams,
BIG_OUTPUT_STRC *p_outparams
);
的BIG_INPUT_STRC/BIG_OUTPUT_STRC包含各種東西......指針數組緩衝,列舉的參數,整型參數,等等,總之,他們是複雜的。
第一個問題:是否有一種簡單的方法可以將DLL頭文件中包含的所有結構信息獲取到C#類中,還是需要將所有內容從字面上複製並粘貼到C#並重新定義它?這似乎是多餘的。
與此相關,什麼是正確的方式將結構從C#傳遞到非託管DLL?
最後,有沒有一個如何正確地將緩衝區數組從C#傳遞到非託管DLL的例子?或者,我怎樣才能傳遞一個二維數組到DLL中?
感謝, -Greg
避免COM爲什麼?互操作性非常好,幾乎沒有需要做的事情,但導入接口。 – arul 2009-01-30 04:28:56