2009-07-29 10 views
2

Je veux compiler la bibliothèque beecrypt sous VS2008. Mais plusieurs des structures ci-dessous génèrent une erreur de syntaxe (erreur de syntaxe C2059: « »):Points dans les variables? VC9 donne des erreurs d'analyse lors de la construction de beecrypt

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

VC++ n'accepte pas les points au début. Si je commente ce qui précède, j'obtiens des erreurs de liaison plus tard (LNK2001 symbole non résolu _md5) - donc je suppose qu'il doit être décommenté.

Quelle est cette structure? Pour quoi en ai-je besoin? Comment puis-je dire à VS2008 de le compiler?

Répondre

6

Ce type d'initialisation struct est une caractéristique de C99 (ISO/CEI 9899: 1999). Il n'est pas valide C++ ou C avant la dernière norme. Visual Studio 2008 ne prend en charge que C90 (alias C89), donc il ne va pas compiler.

Édition Il semble que BeeCrypt ait récemment été modifié pour nécessiter un compilateur C99 qui exclut effectivement Visual Studio. Votre autre option est d'utiliser une ancienne version de BeeCrypt.

Questions connexes