2

PGP 6.5.8 ソース コードには、次のように定義された関数が表示されます。

static void
sUnlockMemory(
void *  mem,
PGPSize numBytes.
PGPBoolean  nonPageable )
{
/* we always call VirtualLock() so always call VirtualUnlock() */
(void)wasLocked;

VirtualUnlock ( mem, numBytes );
}

4 行目の最後のピリオドに注意してください。これは何をするのでしょうか? コンマで代用できますか?ファイルの最終更新日は 1999 年 8 月です。ビルド手順は Visual C++ 6 を参照しています。

変更せずに Github に置きましたが、ここからもダウンロードできます: http://www.pgpi.org/products/pgp/versions/freeware/win32/6.5.8/

4

2 に答える 2

1

C では、関数プロトタイプでピリオドを使用できるのは、関数が可変数の引数を受け入れるときだけであり、最後のパラメーター宣言として常に 3 つのドットで指定されます。括弧内のドットをその他の方法で使用すると、構文エラーになります。

例えば:

void fn(int arg1, ...);

于 2012-12-28T04:28:48.093 に答える
0

それは間違いなく構文エラーです。

PGP_WIN32そのコードは、定義されている場合にのみ有効になりますが、それが関連しているとは思えません。Windows でコンパイルできないコードはリリースされないでしょう。

PGP ソフトウェアは現在 Symantec が所有しており、ソース コードはピア レビューのみに使用できます。些細な構文エラーを故意に導入して、ソース コードを使いにくくし、レビューしやすくしているのだろうか。(ただし、使用許諾契約では、コードのコンパイルが許可されているようです。)

于 2012-12-28T04:46:54.553 に答える