0

私は非常に単純なC++/ CLIウィンドウフォームプログラムを持っており、100%正常に動作しています。

ウィンドウフォームのボタンをクリックしたときにInternetExplorerの呼び出しを追加したいので、テスト用に「1行のコード」を追加します。

#pragmaの下に#include"Shellapi.h"を一度追加します。その後、VSは500行のエラーメッセージを表示します。

私の質問は、プログラムに.hファイルを追加するだけだということです。なぜ問題が発生するのですか?私は何かが恋しいですか?

===========エラーメッセージの最初の数行===============

1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\Shellapi.h(56): error C2065: 'HDROP' : undeclared identifier
1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\Shellapi.h(56): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\Shellapi.h(59): error C2146: syntax error : missing ';' before identifier 'DECLSPEC_IMPORT'
1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\Shellapi.h(59): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\Shellapi.h(59): error C2146: syntax error : missing ';' before identifier 'UINT'
1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\Shellapi.h(59): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\Shellapi.h(59): error C2146: syntax error : missing ';' before identifier 'STDAPICALLTYPE'
1>C:\Program Files\Microsoft SDKs\Windows\v7.0A\include\Shellapi.h(59): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
4

2 に答える 2

3

Several things:

  1. You should #include <windows.h> in any windows program

  2. You should include any system file - like shellapi.h - using brackets (<>) instead of quotes (""), e.g. #include <shellapi.h>

  3. If you're compiling from the command line, it's a good idea to run "vcvars32.bat" (or equivalent) to set your command-line environment for Visual Studio.

于 2012-04-24T20:51:55.160 に答える
0

I believe you forgot to #include <windows.h> before #include <shellapi.h>

Generally, (or atleast in my personal experiences), when you are bombarded with a wall of errors after including a header, your missing <windows.h> or some other header.

于 2012-04-24T20:49:11.063 に答える