当我包含一个本身包含odbcss.h的头文件时,我收到了C ++编译器错误C2371。我的项目设置为MBCS。
C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ include \ odbcss.h(430): 错误C2371:'WCHAR':重新定义;不同的基本类型1>
C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ include \ winnt.h(289): 看到'WCHAR'的声明
我没有在odbcss.h中看到任何我可以设置避免这种情况的定义。有没有人见过这个?
答案 0 :(得分:2)
这是一个已知错误 - 请参阅Microsoft Connect网站:
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=98699
如果将应用程序编译为Unicode而不是MBCS,则不会发生错误。
答案 1 :(得分:1)
网上各种论坛上有六篇关于此的帖子 - 当在MFC存在的情况下使用odbcss.h时,这似乎可能是一个问题。大多数答案涉及更改包含标题的顺序(巫毒调试)。包含odbcss.h的头文件在其本机项目中编译得很好,但是当它包含在不同的项目中时,会出现此错误。我们甚至将它放在后一个项目的stdafx.h中,就在MFC的基础包含之后,仍然没有乐趣。我们最终通过将它移动到原始项目中的cpp文件来解决这个问题,该文件不使用MFC(无论如何都应该这样做 - 但它不是我们的代码)。所以我们有一个解决办法,但没有真正的解决方案。
答案 2 :(得分:0)
当您重新声明与已声明的变量同名的变量时,会发生此错误。您是否想看看odbcss.h是否声明了您已经拥有的变量?
答案 3 :(得分:0)
这有帮助吗?
http://bytes.com/forum/thread602063.html
线程中的内容:
Bruno van Dooren [MVP VC ++]但我知道这个问题的解决方案。 它通过改变“将wchar_t视为内置的项目设置来解决 输入“value”No(/ Zc:wchar_t-)“。但我使用的是”Xtreme Toolkit“ 专业版“为了使外观和应用程序感觉良好, 当我通过更改项目设置来修复上述问题时 链接错误来自Xtreme Toolkit Library。那么我该怎么做才能解决 这个问题,在项目设置“将wchar_t视为内置类型” 值“是”,我写了以下语句,其中包括wab.h 头文件。您可以基于每个代码文件更改该设置 只使用该特定设置编译特定文件。如果 你可以解决你的问题,这将是最干净的 溶液
#define WIN16
#include "wab.h"
#undef WIN16
之后我的项目工作正常,所有与WAB相关的事情也正常。任何人指导我,是正确的方式 解决这个问题???并且,这会对其余部分产生任何影响 项目??我不担心。无论定义如何,它都是一个 两种情况下都是16位变量。我同意这不是最好看的 解决方案,但它应该工作如果WIN16内部没有其他影响 wab.h文件。
-
亲切的问候,Bruno van Dooren bruno_nos_pam_van_dooren@hotmail.com 仅删除“_nos_pam”