Windows驱动程序中的c++
C++ in a Windows Driver
我正在编写一个简单的WDM驱动程序,并且我想在其中使用c++类。
我的问题是,我不确定我应该链接编译文件到哪个库文件。链接到msvcrt会创建对ntdll.dll的依赖,这在内核模式下当然不能满足。如果没有链接到msvcrt,就没有new/delete操作符——而且我得到了链接错误。
我如何为我的驱动程序启用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');
}
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 使用mongocxx驱动程序时包含头文件问题
- void*到驱动程序中的UnicodeString
- C++驱动程序看不到头文件
- 用于创建/注册虚拟存储设备的 IOKit 驱动程序
- 员工测试驱动程序数据结构
- 获取 OID(类型::b_oid)作为 MongoDB C++驱动程序中的字符串
- 如何在 c++ 中映射驱动程序?
- 如何在 cuda 中将 kd 树从主机复制到驱动程序
- Visual Studio 如何在内核模式驱动程序项目中使用C++标准库?
- 为什么我的驱动程序只读取部分字符串?
- 为 Sql 服务器实现 odbc 包装器.将数据库数据读取为字符或要求驱动程序将数据转换为 C 类型
- 如何在C++中将OID_PM_WOL_PATTERN_LIST发送到NDIS驱动程序?
- C++ 创建 NdisProt 驱动程序的句柄
- 使用 mongo c++ 驱动程序查询嵌套的 BSON 文档
- 有没有办法使用 mongocxx 驱动程序从 GridFS 集合的文件下载任意范围?
- 使用CMake ExternalProject_Add构建mongo cxx驱动程序
- SQL Server-未找到数据源名称,也未指定默认驱动程序
- 钩子SSDT.其他驱动程序使用我的函数