2012-03-02 34 views
4

我想编译一些我在visual studio中下载的代码。该代码旨在用于msvc 6,并将其导入到VS2010。该代码是通过编译DLL为labview提供ASIO支持。整个代码见hereVS2010中的“重新定义;不同类型修饰符”

构建时出现以下错误: “error C2373:'_ pctype':redefinition; different type modifiers。”

的代码片段如下:

unsigned short _Ints[ 512 ];
unsigned short *_pctype = _Ints;

如果有人将来自我提供的链接引用的代码中的包,这是从文件GenMonCIN.c

+1

这听起来像是在同一范围内有两个名为_pctype的变量。例如,如果第一个变量是在for语句中声明的,那么这可以在MSVC的早期版本中进行编译,但是如果没有周围的代码就很难分辨出来。而不是深入到你使用的库中,在这里列出相关代码将是一个真正的帮助。具体而言,您能否引用发生错误的函数? – 2012-03-02 23:21:15

+1

thx为建议JMcF,但没有其他事件发生。如果您需要更多信息,我确实在我的原始帖子中发布了发生此错误的函数。 – brneuro 2012-03-03 14:16:42

回答

8

该错误消息试图告诉你_pctype已经在其他地方定义了。

appears_pctype是因为至少版本使用Visual Studio中的标识符2005

_pctype_pwctype_wctype_mbctype_mbcasemap

这些全局变量包含由字符分类使用的信息功能。它们仅供内部使用。

never pick names with a leading underscore at namespace scope,它们是保留执行。写这个图书馆的人显然不知道,现在你被搞砸了。

+0

好的...... thx,在这种情况下我可以看到问题。但为什么我搞砸了,难道我只是把变量重命名为别的东西?奇怪的是,“_pctype”没有出现在项目中的任何地方,除了在这个声明。我不确定为什么作者声明这个声明是诚实的,我能够提供的唯一的其他信息是在“_Ints”声明之后,这被评论为“//声音缓冲区代码使这些外部声明引用,但是不会'供应' – brneuro 2012-03-03 14:14:43

相关问题