[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 * );