2014-01-13 58 views
0

我的bos不是CS的人,他問我爲c#開發一個dll。 我的進一步調查顯示,dll應該在cdecl約定中。__cdecl約定中的c#dll

如果我將這個項目,這將是我的第一個DLL的發展。

通過谷歌瀏覽告訴我這是可能的,但在我告訴bos 之前,我可以做到這一點,我想獲得關於這個問題的建議。 (讓我們假設也沒有時間或代碼質量是主要問題,但它需要完成)

關於這種可能性的任何意見將不勝感激。

+0

1.什麼讓你認爲它應該使用cdecl約定,以及2.如果是這種情況,爲什麼要使用C#? –

+0

1.該dll是針對心理學研究的指定軟件,基於VB,在C/C++上開發的dll應該使用cdecl進行編譯。 2.我開發它之後,其他只知道C#的程序員可能會維護它。如果在C#中沒有解決方案,我會堅持使用C++ – vlady

回答

1

這聽起來像你正在尋找非託管功能出口。在C#中沒有可以實現的方式。你可以使用Robert Giesecke的Unmanaged Exports。這在編譯期間執行一些魔術,以修改發出的IL以允許非託管導出。

官方支持的從.net DLL中導出非託管函數的方法是製作混合模式的C++/CLI程序集。

將您的功能導出到非託管代碼的另一種方法是從您的C#代碼中公開COM服務器。