我希望这个问题不会影响StackOverFlow FAQ规则
因此,当使用以C ++编写的库时,这意味着我们在这些DLL中会有一些代码将被执行,当软件执行出现时,这部分代码将由CLR执行?
我需要这个,因为我们计划开发一个软件和一些愤怒的算法,我认为用C ++编写它们会更好,但Visual C#为我们提供了一些我们无法在c ++(Linq,Anonymous等)中找到的工具。
答案 0 :(得分:1)
您可以在C#项目中使用在C ++中创建的DLL,并且您已经知道必须进行互操作调用。这会将上下文切换为不安全,因此代码可能在CLR之外执行。这意味着您将丢失CLR为您提供的可移植性选项。例如,基于C#的应用程序可以在Windows和Windows Phone上运行,但添加互操作调用只会使其在Windows(或编译DLL的任何系统)上运行。
但通常这不是一个问题。
另见此主题:http://forums.devshed.com/net-development-87/using-a-c-dll-in-c-107829.html