こんにちは。また、質問させて頂きます。
ソフトを作成し、コンパイルしたら
fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
というエラーが発生しました。
この対処はどのようにすればよろしいでしょうか。
ご教授お願い致します。
開発環境はVC++.net ダイアログベースです。
stdafx.h がインクルードされていないソースファイルがありませんか?
>シャノン様
ありがとうございます。よく探してみたら
stdafx.hがインクルードされていないソースファイルがありました。
ありがとうございました。
ついでで申し訳ございませんが
次は
Test error LNK2019: 未解決の外部シンボル _InstallColorProfileA@8 が関数 "void __cdecl CreateAndInstallColorProfile(void)" (?CreateAndInstallColorProfile@@YAXXZ) で参照されました。
このようなエラーが発生してしまいました。
これはどのようにすればよろしいでしょうか?
まずは答え。
プロジェクトのプロパティの中にある「リンカ」→「入力」→「追加の依存ファイル」というところに、mscms.lib を書き加えてください。
以下、解説。
C 言語では、関数は「宣言」と「定義」という2段階で作ることができます。
宣言とは、「こういう関数がどこかにあるよ」というもので、何処にあるかはわかりません。
定義は、その実体になります。
そのエラーは、宣言はあるけど定義が見つからない(InstallColorProfile という関数が「どこか」にあるのはわかるけれど、「どこ」にあるのかわからない)場合に出ます。
MSDN で InstallColorProfile を参照すると、下のほうに
> ヘッダー:icm.h 内で宣言
> インポートライブラリ:mscms.lib を使用
と書かれています。
これは、icm.h で宣言され、mscms.lib で定義されていますよ、ということです。
Win32 API のお約束ですが、こう書かれている場合は、ヘッダーをインクルードするだけではなく、定義されているライブラリをリンクしてやらなければなりません。
その方法が、冒頭で示した回答というわけです。
>シャノン様
親切丁寧なご教授ありがとうございました。
教えて頂いた方法で無事に実行できました。
また、大変勉強になりました。
ありがとうございました。
ツイート | ![]() |