[C++ Error] ocidl.h(8163): E2337 Only one of a set of overloaded functions can be "C"
E2337解决办法:进入CB的安装目录找到C:\Program Files\Borland\CBuilder5\Include\ocidl.h ,找到报错的那几行,把他注释掉。
原因分析:工程下包含的所有头文件中含有这几行信息,与ocidl.h提供的重复了,编译这个工程的时候,如果你找不着这个信息的其他出处,你就把这个注释掉。
注意事项:当编译新工程时要把这个位置还原。
例如:在ocidl.h里把下面几行,注释掉运行就OK了。
//unsigned long __RPC_USER HDC_UserSize( unsigned long __RPC_FAR *, unsigned long , HDC __RPC_FAR * );
//unsigned char __RPC_FAR * __RPC_USER HDC_UserMarshal( unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, HDC __RPC_FAR * );
//unsigned char __RPC_FAR * __RPC_USER HDC_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, HDC __RPC_FAR * );
//void __RPC_USER HDC_UserFree( unsigned long __RPC_FAR *, HDC __RPC_FAR * );
本文介绍了解决C++编译时出现的ocidl.h文件E2337错误的方法。通过定位到错误的具体行并将其注释掉可以临时解决问题,但需在新工程中还原更改。
1024

被折叠的 条评论
为什么被折叠?



