2012-03-02 3 views
4

Я пытаюсь скомпилировать некоторый код, который я загрузил в визуальную студию. Код был предназначен для msvc 6, и я импортировал его в VS2010. Код предназначен для поддержки ASIO для labview путем компиляции DLL. см. here для всего кода.«redefinition; модификатор разного типа» в VS2010

При возникновении ошибки при создании: "ошибка C2373: '_ pctype': redefinition; модификаторы другого типа."

фрагмент кода выглядит следующим образом:

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

Если кто-нибудь будет ссылающийся на пакет кода по ссылке, предоставленной мне, это из файла GenMonCIN.c

+1

Похоже, что в той же области есть две переменные, называемые _pctype. Это может быть компилятор в более ранних версиях MSVC, если первая переменная была объявлена ​​внутри оператора for, например, но это сложно сказать без окружающего кода. Вместо того, чтобы копаться в библиотеке, которую вы используете, включение соответствующего кода здесь будет реальной помощью. В частности, можете ли вы привести функцию, в которой происходит ошибка? –

+1

thx для предложения JMcF, но других случаев нет. Если вам нужна дополнительная информация, я действительно разместил функцию, в которой эта ошибка возникает в моем исходном сообщении. – brneuro

ответ

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» это прокомментировано «// Код буфера звука делает ref этим внешним, но doesn 't supply' – brneuro

 Смежные вопросы

  • Нет связанных вопросов^_^