2010-12-13 33 views
3

私の質問は、プログラムを正常に実行するために、ヘッダファイルに何らかのエラーを修正する方法です。たとえば、私は、C++ Builderの2010を使用してWINUSER.Hファイルが含まれている場合、プログラムは常に[BCC32エラー] このヘッダファイルのエラーを修正するには?

プロジェクトの依存関係を確認しています... コンパイルProject7.cbproj(デバッグ 設定)のようなエラーが出ますwinuser.h(47):E2257、予期しているフル パーサーコンテキスト File6.cpp(4):#include c:\ program files(x86)\ embarcadero \ rad スタジオ\ 7.0 \ include \ winuser.h [BCC32 エラー] winuser.h(48):E2257、予期される 完全なパーサーコンテキスト

私はそのファイルをデフォルトのインストールから元のファイルに置き換えようとしますが、それでも同じエラーが発生します。

答えて

2

メッセージが読みにくいですが、実際のエラーは、「予想、E2257」である(昏睡予想される)

RADスタジオのドキュメントからは:

A comma was expected in a list of declarations, initializations, or parameters. 

This problem is often caused by a missing syntax element earlier in the file 
or one of its included headers. 

エラーメッセージがあなたにそれのラインを与えます起こったとあなたはおそらくその前に見える必要があります。おそらくいくつか '}'、 ')'または ';'コードのヘッダーファイルをインクルードする前に、エラーの直前にコード内に他の構文的な部分がありません。完全なエラーメッセージ(それを切り捨てたもの)や実際のコードは、より簡単に見つけることができます。

場合によっては、エラーがwinuser.hに含まれているヘッダーのいずれかにある可能性もあります。

+0

のextern "C" { #endifの/ * __cplusplus */ #ifndefのWINVERの#define WINVER 0x0500/*バージョン5.0 */ #endifの/ *!WINVER */ の#include #ifndefのNOUSER typedef HANDLE HDWP; typedef VOID MENUTEMPLATEA; – raptor

+0

を最初に入れてみてください。私はヘッダー間のいくつかのマクロ定義の競合に賭けるでしょう。 – kriss

+0

私はいくつかのために賭けるだろう....とあなたは勝つ:)、何らかの理由で私はwinuseruser.hファイルの前にwindows.hファイルを含めると、それはうまく動作しますが、同じことをちょうど逆、それはなかった.. .thnx – raptor

4

エラーは、コードが表示されることによってほぼ確実に発生します。より前に、File6.cppの行4より前です。おそらく別のヘッダーファイルである可能性があります。その場合、そのコードが不正な形式である可能性があります。たとえば、セミコロンまたはブレースがありません。

winuser.hが問題ではないことを確認する最も簡単な方法は、winuser.hが最初に含まれるようにインクルードの順序を変更することです。

もう1つの可能性は、winuser.h内の何かが以前にwinuser.hに含まれていなかったか、直接含まれていない他のヘッダに依存していることです。ほとんどのWin32 APIヘッダーはwindows.hに含まれていますが、一般的には、its childrenの代わりにwindows、hを含めることをお勧めします。

+0

私もあなたも理解していますが、Winuser.hファイルに何も問題なく保存されているすべての関数を使用できるwinuser.hファイル(ただしwindows.hのみ)は含まれていません? – raptor

+0

@raptor:はい、通常で十分です。 kriss

+0

thnxを含んでいます。それは知っておいていいです。:) – raptor

関連する問題