C后端与C#前端?

C后端与C#前端?,第1张

概述我有一个项目,我将不得不处理100秒,如果不是1000秒的消息,并相应地处理/绘制这些数据(用户将搜索一组数据,其中图形将被实时绘制,没有字面上不得不在图上绘制1000个值). 我很难理解使用dll来处理C大部分消息,然后将信息传递到C#界面.有人可以在这里嘟umb我吗? 此外,由于速度将是一个优先事项,我想知道如果访问两个不同层次的代码将有更多的性能命中,编程项目在C#中的整体,或者肯定C虽然我 我有一个项目,我将不得不处理100秒,如果不是1000秒的消息,并相应地处理/绘制这些数据(用户将搜索一组数据,其中图形将被实时绘制,没有字面上不得不在图上绘制1000个值).

我很难理解使用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#前端?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1255599.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存