Windows 驱动程序中的 C++ [关闭]
Posted
技术标签:
【中文标题】Windows 驱动程序中的 C++ [关闭]【英文标题】:C++ in a Windows Driver [closed] 【发布时间】:2014-08-12 10:29:55 【问题描述】:我正在编写一个简单的 WDM 驱动程序,我想在其中使用一个 C++ 类。
我的问题是我不确定应该将编译后的文件链接到哪个 lib 文件。 链接到 msvcrt 会创建对 ntdll.dll 的依赖,这在内核模式中当然不能满足。如果不链接到 msvcrt,就没有新/删除运算符 - 我会收到链接错误。
如何为我的驱动程序启用 C++ 功能?
【问题讨论】:
你应该阅读这个。 download.microsoft.com/download/5/b/5/… 谢谢,我一定会读的! 【参考方案1】:显然,实现 new/delete 运算符就足以解决我的问题(只要我不使用异常和其他 C++ 特性)。
所以我按照以下方式实现了运算符,现在一切正常:
#include <ntddk.h>
void *__cdecl operator new(size_t count)
return ExAllocatePoolWithTag(NonPagedPool, count, 'TRCm');
void __cdecl operator delete(void *object)
ExFreePoolWithTag(object, 'TRCm');
【讨论】:
以上是关于Windows 驱动程序中的 C++ [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Windows 中的线程有啥好的初学者教程吗? C++ [关闭]
C++ Windows 驱动程序 MSB3030 无法复制文件 '' 因为找不到
适用于 Windows 8.1 的 Nvidia GeForce 驱动程序无法在 Windows 10 上运行 [关闭]