2

VS2008でbeecryptライブラリをコンパイルしたい。ただし、以下の構造のいくつかは構文エラーを生成します(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にコンパイルするように指示するにはどうすればよいですか?

4

1 に答える 1

6

このタイプのstruct初期化は、C99 (ISO/IEC 9899:1999) の機能です。最新の標準より前の C++ または C は有効ではありません。

Visual Studio 2008 は C90 (別名 C89) のみをサポートするため、これはコンパイルされません。

編集BeeCrypt は、Visual Studio を効果的に除外する C99 コンパイラを要求するようにごく最近変更されたようです。他のオプションは、古いバージョンの BeeCrypt を使用することです。

于 2009-07-29T16:45:41.707 に答える