微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在不使用Microsoft编译器的情况下开发Windows驱动程序

我的团队有一个C语言代码库,用于多个不同平台的embedded式系统。 我们有一群人试图将这个代码库的一部分移植到Windows驱动程序中。 但是,Microsoft编译器的某些方面不会与我们现有的代码库(C99function等)进行交互。 我们尽量保持产品之间的通用代码库,并避免为特定平台创build分支,但特定于Windows的解决方法和#ifdefs正变得越来越杂乱。

有没有办法使用非微软的编译器build立一个Windows驱动程序? 我们的代码库在gcc和GreenHills下编译得很好,我们也应该可以使用Intel C编译器(我们已经尝试了一段时间,但它仍然可以工作)。 能够使用不同的编译器将有助于保持我们的代码更清洁,再加上它会节省我们的时间和精力。 我们所能find的所有文档都是指使用Visual Studio或Windows DDK。

如果确实需要使用Microsoft编译器或DDK,那么是否可以使用另一个编译器将大量代码构build为静态库,然后使用Windows DDK为该库创build一个包装?

哪个更容易编写驱动程序? Windows还是LInux?

是__alloc_pages_slowpath()可重入安全吗?

如何显示驱动程序的popup消息框(内核模式)?

需要为USB外设写驱动程序?

用驱动程序注册(/绑定/匹配)设备

有时在IRQL 2中完成IRP的例程有时IRQL为0

如何从Windows内核调用usermode

如何使用Linux获得触摸屏Rawdata的坐标

如何区分内核的软locking和用户间的softlockup?

自定义Windows USB / RNdis .inf文件以更改networking连接名称

即使成功编译,我也不会推荐这样的东西。 你永远不会知道副作用。 唯一使用的编译器是WDK中的编译器(它被合并到VS2012中)。 即使是MS非WDK编译器(VS2012之前的任何VS版本)也不适合这里。

与其他编译器构建库并将其与MS链接相同的答案。 这不是“如何欺骗操作系统”的问题,而是“如何做正确的事情”。 我想你可以用其他编译器编译代码的一小部分(例如C99中不支持MS的编译代码),但是风险很大。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐