Q&A
使用上のヒント

index (戻り先メニューにジャンプ)

本プログラム・ソース集を利用される方から、いくつか共通的な質問を受けていますので、以下に、代表的な応答集を示します。是非、参考にして下さい。


質問Tomy の回答
マイクロソフトVisual C++ でコンパイルするとエラーが出ます。Tomy は、Visual C++ を所有しておりません。Visual C++に関する質問にはお答えできません。
また、この C プログラム集は、ボーランド社の Turbo C++ で開発しました。C/C++ 言語は移植しやすいと言われていますが、コンパイラによって独自の関数や定数を使っていたり、また異なるインクルードファイルに定義されていたりと、様々な違いがあります。つまり、他のコンパイラでエラーが発生する可能性は十分あります。但し、同じボーランド系の Borland C++ Compiler 5.5 というフリーのコンパイラが公開されています。それならば、おそらくエラーは出ないのではないでしょうか?
Visual C++ でコンパイルしたいけど、values.h がありません。values.h は、MAXINT や MAXDOUBLE 等の機種依存するパラメータを定義しているインクルードファイルです。上記のBorland C++ Compiler 5.5コンパイラにはありますので、それを利用して下さい。

インクルードファイルのコンパイルエラー対処法

エラーの出た箇所、例えば #include <values.h> をコメント化してコンパイルすると、今度は、未定義のマクロ定数がコンパイルアラームで表示されるはずです。そこで、そのマクロ定数を定義している自分のコンパイラのインクルードファイルを grep 等のファイル内検索ツールで探して下さい。
Visual C++で暗号プログラムのコンパイルしましたが、動作しません。暗号プログラムでは、メモリ内容を直接操作する関数を使用しています。おそらく、Visual C++ と関数リファレンス(多分、引数の順番)が違っているものと思われます。Borland C++ Compiler 5.5コンパイラ を使用して下さい。
暗号化プログラムで、暗号化後のファイルサイズが増えています。FEAL 及び DES 暗号はブロック暗号で、8 バイト単位で暗号化しますので、暗号化後のファイルサイズは必ず、8 バイトの倍数になります。プログラムでは、最後のブロックの不足バイト分を 0 で補って暗号化しています。
M_PI、M_PI_2、M_SQRT_2 が宣言されていないというエラーが出ます。M_PI、M_PI_2、M_SQRT_2 は、それぞれ π、π/2、1/√2 を示すマクロ定数で、Turbo C++ では、math.h の中で定義されています。おそらく、あなたのコンパイラでは、違うインクルードファイルの中で定義されているはずです。grep 等のファイル内検索ツールで探して下さい。それでも見つからなければ、自分で
#define M_PI 3.14…
#define M_PI_2 1.57…
#define M_SQRT_2 0.707…
と定義して下さい。(これは、有効桁数が17桁程度の倍精度の定数です。)