gpt4 book ai didi

c++ - shobjidl.h 中的第二个 C 链接

转载 作者:行者123 更新时间:2023-11-28 03:41:23 26 4
gpt4 key购买 nike

我目前正在将一个 C++ 项目从 VS6 移动到 VS2008,但是我遇到了 shobjidl.h 中许多函数的以下错误

error C2733: second C linkage of overloaded function 'HWND_UserMarshal' not allowed c:\program files\microsoft sdks\windows\v6.0a\include\shobjidl.h    28830

不仅 HWND_UserMarshall 受到影响,此 header 中的其他函数也受到影响,例如 HWND_UserSize、HWND_UserFree 和 HWND_UserFree64。

我知道当使用一组不同的参数声明外部“C”函数时会发生此错误,但是这是在 SDK header 中,我无法更改。

有人对我的下一步应该做什么有什么建议吗?

编辑: header 是 Microsoft header ,顶部包含以下注释

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


/* File created by MIDL compiler version 7.00.0499 */
/* Compiler settings for shobjidl.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING( )

最佳答案

不幸的是,我不熟悉这个标题或这些功能。但是,我怀疑有一些 C 宏可以根据预处理器定义来控制哪些函数对您可见。而且我怀疑您以某种方式定义(或未定义)预处理器符号,从而获得重复的函数定义。

由于不熟悉 header ,所以我无法真正推荐如何才能获得您想要的功能。我可能会先阅读文档,查看类似产品的配置,然后阅读头文件本身。

关于c++ - shobjidl.h 中的第二个 C 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9129984/

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