我有一个非常简单的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
答案 0 :(得分:3)
有几件事:
您应该在任何Windows程序中#include <windows.h>
你应该包括任何系统文件 - 比如shellapi.h - 使用括号(<>
)而不是引号(""
),例如#include <shellapi.h>
如果您是从命令行编译的,最好运行“vcvars32.bat”(或等效的)来为Visual Studio设置命令行环境。
答案 1 :(得分:0)
我相信您在 #include <windows.h>
#include <shellapi.h>
一般情况下(或者至少在我的个人经历中),当您在包含标题,丢失<windows.h>
或其他标题后遭遇错误时会受到轰炸。