gpt4 book ai didi

c++ - std::string 和 std::wstring 的 wdk ddk 编译器问题

转载 作者:行者123 更新时间:2023-11-28 01:06:56 27 4
gpt4 key购买 nike

我已经开始研究 WDK/DDK(我假设它们是相同的东西)示例,尤其是打印机端口监视器示例。我已经使用他们的构建工具进行了编译,我可以附加到假脱机进程并通过...进行调试……好东西!

.. 当我只想写一些调试时,问题就来了。我真的认为这会很简单(有一段时间没有使用 C++ 了!)但它似乎并不简单!

我目前遇到的问题只是尝试创建一个 std::wchar 的实例,如下所示:

std::wstring test("Blah");

问题是,当我使用 wdk 构建工具进行编译时,出现以下错误:

1>c:\winddk\7600.16385.1\src\print\monitors\localmon\localmon.c(361) :
error C2143: syntax error : missing ';' before ':'
1>c:\winddk\7600.16385.1\src\print\monitors\localmon\localmon.c(363) :
error C2143: syntax error : missing ';' before 'type'

我猜这是因为编译器可能不理解 std::位?行号指向上面的wstring声明。

我添加了 include <string.h>但这没有帮助,我的源文件如下:

!IFNDEF MSC_WARNING_LEVEL
MSC_WARNING_LEVEL=/W3
!ENDIF
MSC_WARNING_LEVEL=$(MSC_WARNING_LEVEL) /WX


C_DEFINES=-DUNICODE -D_UNICODE -D_SPL_CLUST

TARGETNAME=ddklocalmon
TARGETTYPE=DYNLINK
DLLENTRY=_DllMainCRTStartup
DLLDEF=localmon.def
DLLORDER=localmon.prf
TARGETLIBS=$(SDK_LIB_PATH)\kernel32.lib \
$(SDK_LIB_PATH)\advapi32.lib \
$(SDK_LIB_PATH)\user32.lib \
$(SDK_LIB_PATH)\ws2_32.lib \
$(SDK_LIB_PATH)\spoolss.lib

INCLUDES=$(INCLUDES); \
$(DDK_INC_PATH); \


USE_MSVCRT=1

SOURCES=localmon.rc \
localmon.c \
winspool.c \
util.c \
config.c \
xcv.c \
irda.c \
mem.c \

PRECOMPILED_INCLUDE=precomp.h

此外,如果我曾经让 wstring 工作,我打算将它与 OutputDebugString() 一起使用来处理我对 visual studio 输出控制台的调试,但我想我在某处读到这可能无法在端口监视器运行时工作在内核模式下?

如果有人能阐明这一点,我将不胜感激! :)

安迪。

最佳答案

std::stringstd::wstring是 C++ 类(实际上是 C++ 类的类型定义),并且您正在编译 .c 文件。

在驱动中使用C++运行时库感觉有点奇怪,不知道行不行。

如果您在哪里编译为 C++,则包含的是 <string>而不是 <string.h> .

关于c++ - std::string 和 std::wstring 的 wdk ddk 编译器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5592540/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com