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

C++;在Windows驱动程序中 我正在编写一个简单的WDM驱动程序,我想在其中使用C++类。,c++,windows,visual-studio,driver,C++,Windows,Visual Studio,Driver,我的问题是,我不确定应该将编译后的文件链接到哪个lib文件。 链接到msvcrt会创建对ntdll.dll的依赖,当然在内核模式下无法满足这一要求。如果不链接到msvcrt,就不会有新的/删除操作符-我会得到链接错误 如何为我的驱动程序启用C++特性?显然,实现新的/删除操作对于我的问题来说是足够的(只要我不使用异常和其他C++特性)。 因此,我以以下方式实现了操作符,现在一切正常: #include <ntddk.h> void *__cdecl operator new(siz

我的问题是,我不确定应该将编译后的文件链接到哪个lib文件。 链接到msvcrt会创建对ntdll.dll的依赖,当然在内核模式下无法满足这一要求。如果不链接到msvcrt,就不会有新的/删除操作符-我会得到链接错误


如何为我的驱动程序启用C++特性?

显然,实现新的/删除操作对于我的问题来说是足够的(只要我不使用异常和其他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');
}
#包括
void*\u cdecl运算符新建(大小\u计数){
返回ExAllocatePoolWithTag(非页面池,计数,'TRCm');
}
void\uu cdecl运算符删除(void*对象){
ExFreePoolWithTag(对象“TRCm”);
}

您应该阅读这篇文章。谢谢,我一定会看的!