在Windows驱动程序中的C ++

我正在写一个简单的WDM驱动程序,我想在其中使用一个C ++类。

我的问题是,我不知道哪个lib文件应该链接编译的文件。 链接到msvcrt创build依赖ntdll.dll ,这当然不能满足在内核模式。 没有链接到msvcrt,没有新的/删除操作符 – 我得到链接错误。

我怎样才能为我的驱动程序启用C ++function?

显然,实现新的/删除操作符就足够了我的问题(只要我不使用异常和其他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'); }