c# - 为什么使用C++而不是C#来进行驱动级编程(系统级编程)

标签 c# c++ c operating-system

<分区>

我必须开发一个测试应用程序来测试图形驱动程序的某些功能。 通过使用 Microsoft 公开的标准,如 DXVAHD.h、DXVA2Api.h (Directshow) 和其他 Microsoft API。 由于与 C++ 相比,用 C# 编写代码非常容易,为什么我们不能改用 C#。 是不是因为C#中不能使用头文件(有包的概念)?

在系统级编程方面,谁能告诉我为什么人们更喜欢 C、C++ 而不是 C#。 ?任何链接或学习 Material W.R.T.这些将不胜感激。

提前致谢。

最佳答案

当您编写系统软件或驱动程序时,您希望严格控制您的环境:内存使用、时间限制等。

使用 C# 这是不可能的。即使您忽略了运行在引入大量开销的 VM 之上的事实,您仍然无法控制内存分配/释放策略,您永远无法确定 GC 线程何时启动并阻塞您的工作线程等。

除此之外,还有许多您无法在 C# 中执行的低级操作:从读取/写入设备寄存器的值或直接访问内存开始,然后转向更具体的任务。

关于c# - 为什么使用C++而不是C#来进行驱动级编程(系统级编程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15356552/

相关文章:

c# - WPF:如何与非事件窗口交互?

c# - TreeView 添加排序

c# - 在中间件中为什么这个值只设置一次?

c++ - 将 .txt 中的数据存储为 C++ 中的列 vector

c - 矢量化代码随机减速的原因

c - 段错误的位置

c - 在某些情况下,在管道中执行第二个/最后一个命令后进程挂起

c# - 排队来自 silverlight 的 WCF 调用

c++ - 使用 C\C++ 的 Android Studio 中的内容辅助无法正常工作

c++ - Winsock2 select() 函数 : passing {0, 0} 作为超时参数