
我很难理解使用dll来处理C大部分消息,然后将信息传递到C#界面.有人可以在这里嘟umb我吗?
此外,由于速度将是一个优先事项,我想知道如果访问两个不同层次的代码将有更多的性能命中,编程项目在C#中的整体,或者肯定C虽然我已经阅读坏的东西关于编程GUI在C中,这个应用程序也必须看起来现代,干净,专业等等,所以我在想C#将是前进之路(也许是XAML,wPF)
谢谢你的时间.
解决方法 在C/C++ DLL和.NET程序集之间进行互 *** 作的最简单的方式是通过p / invoke.在C/C++方面,创建一个DLL,就像其他任何一样.在C#方面你创建一个p / invoke声明.例如,说你的DLL是mydll.dll,它导出一个方法voID Foo():[Dllimport("mydll.dll")]extern static voID Foo(); 而已.你可以像任何其他静态类方法一样调用Foo.困难的部分是数据编组,这是一个复杂的主题.如果您正在编写DLL,那么您可能无法使出口功能轻松编组.有关p / invoke编组的更多信息,请参阅这里:http://msdn.microsoft.com/en-us/magazine/cc164123.aspx.
使用p / invoke时,您将会遇到性能问题.每次托管应用程序进行非托管方法调用时,都需要跨越托管/非托管边界,然后再次返回.编组数据时,大量的复制.如果需要,可以通过使用“不安全”C#代码(使用指针直接访问非托管内存)来减少复制.
你应该注意的是所有.NET应用程序都充满了p / invoke调用.没有.NET应用程序可以避免使 *** 作系统调用和每个 *** 作系统调用必须跨入 *** 作系统的非托管世界. WinForms甚至WPF GUI应用程序使得旅程数百甚至数千次.
如果是我的任务,我将首先在C#中做100%.我会配置它,并根据需要调整性能.
总结以上是内存溢出为你收集整理的C后端与C#前端?全部内容,希望文章能够帮你解决C后端与C#前端?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)