C1010エラー対策は?

解決


HELP!  2005-04-01 23:30:02  No: 56849

こんにちは。また、質問させて頂きます。
ソフトを作成し、コンパイルしたら

fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。

というエラーが発生しました。
この対処はどのようにすればよろしいでしょうか。
ご教授お願い致します。

開発環境はVC++.net  ダイアログベースです。


シャノン  2005-04-02 00:04:40  No: 56850

stdafx.h がインクルードされていないソースファイルがありませんか?


HELP!  2005-04-02 03:54:04  No: 56851

>シャノン様
ありがとうございます。よく探してみたら
stdafx.hがインクルードされていないソースファイルがありました。
ありがとうございました。

ついでで申し訳ございませんが
次は
Test error LNK2019: 未解決の外部シンボル _InstallColorProfileA@8 が関数 "void __cdecl CreateAndInstallColorProfile(void)" (?CreateAndInstallColorProfile@@YAXXZ) で参照されました。

このようなエラーが発生してしまいました。
これはどのようにすればよろしいでしょうか?


シャノン  2005-04-02 09:03:04  No: 56852

まずは答え。
プロジェクトのプロパティの中にある「リンカ」→「入力」→「追加の依存ファイル」というところに、mscms.lib を書き加えてください。

以下、解説。
C 言語では、関数は「宣言」と「定義」という2段階で作ることができます。
宣言とは、「こういう関数がどこかにあるよ」というもので、何処にあるかはわかりません。
定義は、その実体になります。

そのエラーは、宣言はあるけど定義が見つからない(InstallColorProfile という関数が「どこか」にあるのはわかるけれど、「どこ」にあるのかわからない)場合に出ます。
MSDN で InstallColorProfile を参照すると、下のほうに

>  ヘッダー:icm.h 内で宣言
>  インポートライブラリ:mscms.lib を使用

と書かれています。
これは、icm.h で宣言され、mscms.lib で定義されていますよ、ということです。

Win32 API のお約束ですが、こう書かれている場合は、ヘッダーをインクルードするだけではなく、定義されているライブラリをリンクしてやらなければなりません。
その方法が、冒頭で示した回答というわけです。


HELP!  2005-04-04 18:09:17  No: 56853

>シャノン様
親切丁寧なご教授ありがとうございました。
教えて頂いた方法で無事に実行できました。
また、大変勉強になりました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加