c++ - strsafe.h 中 ',' 标记之前的预期主表达式

标签 c++ c

我正在尝试在 Windows XP Pro SP3 32 位下使用 Dev-C++(版本 4.9.9.2)及其附带的标准编译器(我认为使用 MinGW 的 g++)重建某人的旧 C++ 项目。在包含 strsafe.h 的文件之一中,当我尝试编译时,出现此错误:

expected primary-expression before ',' token

错误指向的代码行位于 strsafe.h(Microsoft(?)库头文件)中,全部如下所示:

hr = StringGetsExWorkerA(pszDest, cchDest, cbDest, NULL, NULL, 0);

每一行都有 2 个“预期主要表达式”错误。我发现this forum thread这表明 NULL 值未被正确识别,并建议我包含 <cstddef>在 strsafe.h 之前。我这样做了,但没有用。另外,看起来 NULL 实际上已经定义了,因为当我在包含 strsafe.h 之前执行“#define NULL 0”时,我收到一条错误消息,告诉我正在那里重新定义它。

很抱歉,我无法提供更多详细信息,但重现此错误的代码很简单:'#include <strsafe.h> ’,所以我真的不知道还能说什么。有谁知道可能会发生什么以及我该如何解决这个问题?

谢谢!

(我已经尝试下载最新版本的 Microsoft Platform SDK,因此我拥有最新版本的 strsafe.h)

最佳答案

我想知道 NULL 的定义是什么?也许它不是 0,它可以是任何东西(尽管如果有人将 NULL 定义为 0 以外的值,那会很奇怪)。

尝试以下操作,看看是否有效。

#undef NULL
#define NULL 0

关于c++ - strsafe.h 中 ',' 标记之前的预期主表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1373940/

相关文章:

c++ - CMake Visual Studio 将可执行文件与静态库链接

未识别 C++ Windows 跳转列表类

c++ - C++ 中的存储重用

c++ - 如何修复 R6031 - 尝试多次初始化 CRT。这表明您的应用程序中存在错误?

c - 访问已分配内存时的分段代码

c++ - 来自文件的数据 - 发送的字节与 fread() 不匹配

C++ 隐式转换运算符优先级

将字符数组复制到另一个而不复制换行符

c++ - 如何帮助编译器根据输入的约束优化我的程序?

c - C 编程中的字符串比较