Ada*_*dam 1 c++ windows driver visual-studio
我正在编写一个简单的WDM驱动程序,我想在其中使用C++类.
我的问题是我不确定应该将编译后的文件链接到哪个lib文件.链接到msvcrt会创建对ntdll.dll的依赖,这当然在内核模式中无法满足.没有链接到msvcrt,没有新的/删除操作符 - 我得到链接错误.
如何为我的驱动程序启用C++功能?
显然,实现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');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1186 次 |
| 最近记录: |