如何在VC ++中正确包含.h文件?

时间:2012-04-24 17:42:45

标签: visual-studio-2010 c++-cli

我有一个非常简单的C ++ / CLI窗口窗体程序,100%正常工作。

由于我想在单击窗口表单上的按钮时添加调用Internet Explorer,我会添加“一行代码”以进行测试。

我在 #pragma once 下添加 #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

2 个答案:

答案 0 :(得分:3)

有几件事:

  1. 您应该在任何Windows程序中#include <windows.h>

  2. 你应该包括任何系统文件 - 比如shellapi.h - 使用括号(<>)而不是引号(""),例如#include <shellapi.h>

  3. 如果您是从命令行编译的,最好运行“vcvars32.bat”(或等效的)来为Visual Studio设置命令行环境。

答案 1 :(得分:0)

我相信您在 #include <windows.h>

之前忘记了#include <shellapi.h>

一般情况下(或者至少在我的个人经历中),当您在包含标题,丢失<windows.h>或其他标题后遭遇错误时会受到轰炸。