2011-06-29 51 views
0

我希望這個問題不會亂用計算器FAQ規則互操作和CRL活動

因此,使用它們用C++編寫,例如庫時,這意味着我們有一些代碼在這些DLL的這是怎麼回事在這種情況下執行軟件執行時,這部分代碼是否會由CLR執行?我需要這個,因爲我們計劃開發一個軟件和一些憤怒的算法,我認爲用C++編程它們會更好,但是Visual C#爲我們提供了一些我們在C++(Linq,Anonymous等)找不到的工具。

回答

1

您可以在C#項目中使用C++創建的DLL,因爲您已經知道必須進行互操作調用。這將上下文切換爲不安全的,所以代碼可能在CLR之外執行。這意味着你失去了CLR給你的可移植性選項。例如,基於C#的應用程序可以在Windows和Windows Phone上運行,但添加interop調用只會使其在Windows上(或者編譯DLL的任何系統)工作。

但通常這不是一個問題。

也看到這個線程:http://forums.devshed.com/net-development-87/using-a-c-dll-in-c-107829.html

+0

我覺得這個應用程序將是一個專業的一個,並且將有一個非常特定的環境,也許我們需要一臺機器只運行應用程序和用戶不能在系統沒有改變所有,所以可移植性不是問題,只是用非託管代碼處理會弄亂一些東西,但也會調整應用程序。 – Burimi