所以...我有一个内核模式组件和一个用户模式组件,我正在使用NT DDK 7.1.0的交钥匙构建环境。内核组件是所有 .c/.h/.rc 文件。用户模式组件是 .cpp/.c/.h/.rc 文件。
起初,两者都使用build似乎最简单,因为我看到您可以修改./sources
用户模式组件的文件,如下所示:
TARGETNAME = MyUserModeComponent
TARGETTYPE = PROGRAM
UMTYPE = windows
UMENTRY = winmain
USE_MSVCRT = 1
这似乎没有造成问题,所以我很高兴,直到我尝试#include <string>
(或<memory>
,或其他)没有找到那些东西:
错误 C1083:无法打开包含文件:“字符串”:没有这样的文件或目录
尽管如此,它仍在用 C++ 语言语义编译用户模式部分。但是我如何让标准包含工作?
从技术上讲,我不需要为用户模式部分使用 DDK构建工具。我可以制作一个视觉工作室解决方案。我有点警惕,因为我遇到了其他烦恼,例如 DDK 使用__stdcall
而不是__cdecl
默认使用的事实......并且没有任何编译指示或编译器开关来覆盖它。假设您有这样做的来源,您实际上必须进入您关心的每个声明并更改它。:-/
我开始怀疑这是否只是分形下降到“仅仅因为你可以并不意味着你应该使用 DDK 构建用户模式应用程序。这里是龙。” 所以我的问题不仅仅是这个特定的技术障碍,而是我是否应该放弃使用 DDK 工具构建 C++ 用户模式组件的想法……只是因为内核组件是纯 C。