Точки в переменных? VC9 выдает ошибки синтаксического анализа при сборке beecrypt - PullRequest
2 голосов
/ 29 июля 2009

Я хочу скомпилировать библиотеку beecrypt под VS2008. Но некоторые из приведенных ниже структур создают синтаксическую ошибку (синтаксическая ошибка C2059: '.'):

const hashFunction md5 = {
.name = "MD5",
.paramsize = sizeof(md5Param),
.blocksize = 64,
.digestsize = 16,
.reset = (hashFunctionReset) md5Reset,
.update = (hashFunctionUpdate) md5Update,
.digest = (hashFunctionDigest) md5Digest
};

VC ++ не принимает точки в начале. Если я прокомментирую вышеизложенное, я получу ошибки связывания позже (неразрешенный символ LNK2001 _md5) - так что я предполагаю, что его необходимо раскомментировать.

Что это за структура? Для чего мне это нужно? Как я могу сказать VS2008 для его компиляции?

1 Ответ

6 голосов
/ 29 июля 2009

Этот тип инициализации struct является функцией C99 (ISO / IEC 9899: 1999). Это недействительно C ++ или C до последнего стандарта.

Visual Studio 2008 поддерживает только C90 (он же C89), поэтому компиляция не производится.

Редактировать Похоже, что BeeCrypt совсем недавно был изменен и теперь требует компилятора C99, который фактически исключает Visual Studio. Другой вариант - использовать старую версию BeeCrypt.

...