vs2010编译C代码的奇怪问题 error C2039: 不是成员

zhaoxuefeng2180 2017-01-19 11:18:50
一头文件有如下定义:
typedef struct INITIALIZE_ARGS {
CREATEMUTEX CreateMutex;
DESTROYMUTEX DestroyMutex;
LOCKMUTEX LockMutex;
UNLOCKMUTEX UnlockMutex;
} INITIALIZE_ARGS;
typedef INITIALIZE_ARGS * INITIALIZE_ARGS_PTR;

另一C文件
void init_lock(INITIALIZE_ARGS_PTR args)
{
...
if (args->CreateMutex && args->DestroyMutex && args->LockMutex && args->UnlockMutex)
{
...
}
...}
在vs2010编译的时候遇到如下错误:
error C2039: “CreateMutexA”: 不是“CK_C_INITIALIZE_ARGS”的成员
我代码写的是CreateMutex,为什么编译报错说用到了成员CreateMutexA哪?同一行代码用到的另外两个结构的成员没有报错。
我把CreateMutex检查放到这一行的最后,结果还是一样。

求大神指教这个问题怎么解决
跪谢
...全文
1754 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ipqtjmqj 2017-01-19
  • 打赏
  • 举报
回复
名字冲突了,你改个名字试试
ipqtjmqj 2017-01-19
  • 打赏
  • 举报
回复
CreateMutex是个宏,没定义UNICODE宏时,会被替换成CreateMutexA
ipqtjmqj 2017-01-19
  • 打赏
  • 举报
回复
引用 5 楼 zhaoxuefeng2180 的回复:
[quote=引用 4 楼 ipqtjmqj 的回复:] [quote=引用 3 楼 zhaoxuefeng2180 的回复:] [quote=引用 2 楼 ipqtjmqj 的回复:] 名字冲突了,你改个名字试试
换名字不太方便,我定义了UNICODE试,报错变成 error C2039: “CreateMutexW”: 不是“INITIALIZE_ARGS”的成员 有办法不用改成员名来通过编译么?[/quote] 把宏删掉#undef CreateMutex[/quote] 我在头文件定义结构体之前undef了还是报错。 或者是源文件include的其它头文件又把windows定义的宏给弄进来了 我干脆改源文件吧,顺便把成员名字改了 [/quote] 不要改头文件,写在源文件里,所有的include最下面
zhaoxuefeng2180 2017-01-19
  • 打赏
  • 举报
回复
引用 4 楼 ipqtjmqj 的回复:
[quote=引用 3 楼 zhaoxuefeng2180 的回复:] [quote=引用 2 楼 ipqtjmqj 的回复:] 名字冲突了,你改个名字试试
换名字不太方便,我定义了UNICODE试,报错变成 error C2039: “CreateMutexW”: 不是“INITIALIZE_ARGS”的成员 有办法不用改成员名来通过编译么?[/quote] 把宏删掉#undef CreateMutex[/quote] 我在头文件定义结构体之前undef了还是报错。 或者是源文件include的其它头文件又把windows定义的宏给弄进来了 我干脆改源文件吧,顺便把成员名字改了
ipqtjmqj 2017-01-19
  • 打赏
  • 举报
回复
引用 3 楼 zhaoxuefeng2180 的回复:
[quote=引用 2 楼 ipqtjmqj 的回复:] 名字冲突了,你改个名字试试
换名字不太方便,我定义了UNICODE试,报错变成 error C2039: “CreateMutexW”: 不是“INITIALIZE_ARGS”的成员 有办法不用改成员名来通过编译么?[/quote] 把宏删掉#undef CreateMutex
zhaoxuefeng2180 2017-01-19
  • 打赏
  • 举报
回复
引用 2 楼 ipqtjmqj 的回复:
名字冲突了,你改个名字试试
换名字不太方便,我定义了UNICODE试,报错变成 error C2039: “CreateMutexW”: 不是“INITIALIZE_ARGS”的成员 有办法不用改成员名来通过编译么?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧