如何使本地API成爲PInvoke友好?如何使PInvoke友好的原生API?
有關於如何修改與P/Invoke here一起使用的本機程序的一些提示。但是在我編寫本地程序之前,我應該注意什麼使我的程序/庫PInvoke友好?
使用C或C++都很好。
更新:
如果我寫一個C API,什麼是我必須這樣做,這是P /使用C#的語法類似於下面的調用,能夠在事情:
[DLLimport("MyDLL.dll")]
是有可能這樣做與原生C++代碼/庫相同嗎?
摘要/改寫一些提示,使一個的P/Invoke友好的本地API:
+的參數應該是原生類型(INT,CHAR *,浮法,...)
+參數少是更好
+如果分配了動態內存並將其傳遞給託管代碼,請確保創建一個也稱爲「清理程序」的函數,該函數也可以被p/
+ +提供樣本和/或單元測試, +提供C++/CLI封裝器
「函數應該儘可能少的參數應該是本機類型(int,char *,float,...)」 我可以將它總結爲: - >參數應該是本機類型(INT,CHAR *,浮法,...) - >少參數更好 - >如果動態內存分配和傳遞到託管代碼,確保創建一個「乾淨」的功能,這也是p /援引 – 2010-01-19 09:52:14
是這是一個很好的總結。 – 2010-01-19 16:25:13