精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
服务方向
联系方式
锐英源精品原创,禁止转载和任何形式的非法内容使用,违者必究
最近编译一套有改动的源代码,有些模块不是原来用的,编译时出现如下错误:
error C2059: 语法错误:“return” error C2065: “CALLBACK”: 未声明的标识符 1>E:\Windows Kits\10\Include\10.0.19041.0\um\prsht.h(104,25): error C2065: “LPFNPSPCALLBACKA”: 未声明的标识符 1>E:\Windows Kits\10\Include\10.0.19041.0\um\prsht.h(104,41): error C2513: “int”: 在“=”前没有声明变量 E:\Windows Kits\10\Include\10.0.19041.0\um\prsht.h(104,41): fatal error C1903: 无法从以前的错误中恢复;正在停止编译
报错的代码行是:
typedef _Return_type_success_(return >= 0) long HRESULT;
是系统头文件commctrl.h里的一行。这文件肯定不可能改动,我特意网上搜索了下,这一行原文也确实这样,证明我没有乱改底层代码。
网络上也搜索不到相关的信息,比较头疼。
后来我想,这控件相关是从一个例子里找来的代码,我看看例子里的情况,用如下包含次序解决了问题:
#include <windows.h> #include <windowsx.h> #include <commctrl.h>
解决问题有直接办法,也有间接办法,希望大家能从这个过程中学到一些办法。