BOOL未被识别为数据类型(C…?)

BOOL未被识别为数据类型(C…?),c,C,我正试图用Visual Studio 2015 Enterprise从源代码编译一个应用程序。我遇到了一些问题 当我尝试编译时,我得到了几个与BOOL是未定义类型相关的错误。我尝试过包含winmindef.h和windef.h,但没有效果。下面是代码中引发错误的一些函数声明: void GetCheatName ( int CheatNo, char * CheatName, int CheatNameLen ); BOOL LoadCheatExt ( ch

我正试图用Visual Studio 2015 Enterprise从源代码编译一个应用程序。我遇到了一些问题

当我尝试编译时,我得到了几个与BOOL是未定义类型相关的错误。我尝试过包含winmindef.h和windef.h,但没有效果。下面是代码中引发错误的一些函数声明:

void GetCheatName          ( int CheatNo, char * CheatName, int CheatNameLen );
BOOL LoadCheatExt          ( char * CheatName, char * CheatExt, int MaxCheatExtLen);
void RefreshCheatManager   ( void );
void SaveCheatExt          ( char * CheatName, char * CheatExt );
BOOL TreeView_GetCheckState(HWND hwndTreeView, HTREEITEM hItem);
BOOL TreeView_SetCheckState(HWND hwndTreeView, HTREEITEM hItem, BOOL fCheck);`
当我在.h文件中包含以下内容时,问题仍然没有得到解决

#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif

typedef int BOOL;
如果有帮助的话,我正在尝试编译PJ64,可能需要更改一些设置才能编译,但我不确定是哪个

感谢您的帮助

---更新---

以下是完整的编译错误(我省略了大部分警告):

1>cl:命令行警告D9007:“/Gm”需要“/Zi或/Zi”;选项被忽略
1> 作弊
1> Cheat.c(55):错误C2059:语法错误:“”
1> Cheat.c(56):错误C2059:语法错误:'{'
1> Cheat.c(233):警告C4267:“=”:从“大小”转换为“字”,可能会丢失数据
1> Cheat.c(326):警告C4267:“=”:从“大小”转换为“字”,可能会丢失数据
1> Cheat.c(346):警告C4267:“=”:从“大小”转换为“字”,可能会丢失数据
1> Cheat.c(982):错误C2059:语法错误:“”
1> Cheat.c(998):错误C2059:语法错误:'{'
1> Cheat.c(999):错误C2449:在文件范围内找到“{”(缺少函数头?)
1> Cheat.c(1012):错误C2059:语法错误:'}'
我试图编译的项目的完整代码可以找到

这是编译并抛出上述错误的代码的一部分。我遗漏了绝大多数代码,因为它太长,无法包含在这里。我留下了注释,指出哪些行抛出了错误

#include <Windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <windef.h>
#include <stdio.h>
#include "main.h"
#include "cheats.h"
#include "cpu.h"
#include "resource.h"

#define UM_CHECKSTATECHANGE     (WM_USER + 100)
#define UM_CHANGECODEEXTENSION  (WM_USER + 101)
#define IDC_MYTREE              0x500

#define MaxCheats               300

#define SelectCheat             1
#define EditCheat               2
#define NewCheat                3 

HWND hManageWindow = NULL;
HWND hSelectCheat, hAddCheat, hCheatTree;
CHEAT_CODES Codes[MaxCheats];
int NoOfCodes;

void GetCheatName          ( int CheatNo, char * CheatName, int CheatNameLen );
BOOL LoadCheatExt          ( char * CheatName, char * CheatExt, int MaxCheatExtLen);
void RefreshCheatManager   ( void );
void SaveCheatExt          ( char * CheatName, char * CheatExt );
BOOL TreeView_GetCheckState(HWND hwndTreeView, HTREEITEM hItem); //(line 55, error thrown.)
BOOL TreeView_SetCheckState(HWND hwndTreeView, HTREEITEM hItem, BOOL fCheck); //(line 56)

LRESULT CALLBACK ManageCheatsProc (HWND, UINT, WPARAM, LPARAM );

void ApplyCheats (void) {
    //lots 'o code
}


BOOL CheatActive (char * Name) {
    //more code
}

LRESULT CALLBACK CheatsCodeExProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    //Too much code to contain in this post...
}

LRESULT CALLBACK CheatsCodeQuantProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    //code
}

//Because of the inmensity of code, I will skip to the lines that throw errors.

BOOL TreeView_GetCheckState(HWND hwndTreeView, HTREEITEM hItem) { //line 982, error thrown.
    //code here
}

BOOL TreeView_SetCheckState(HWND hwndTreeView, HTREEITEM hItem, BOOL fCheck) //line 999, error thrown
{ //line 1000, error thrown
    //Lots o code
} // line 1013, error thrown
#包括
#包括
#包括
#包括
#包括
#包括“main.h”
#包括“作弊,h”
#包括“cpu.h”
#包括“resource.h”
#定义UM_CHECKSTATECHANGE(WM_用户+100)
#定义UM_CHANGECODEEXTENSION(WM_用户+101)
#定义IDC_MYTREE 0x500
#定义MaxCheats 300
#定义SelectCheat 1
#定义编辑作弊2
#定义新作弊3
HWND-hManageWindow=NULL;
HWND hSelectCheat、hAddCheat、hCheatTree;
作弊代码[最大作弊];
内部节点代码;
void GetCheatName(int-CheatNo,char*CheatName,int-CheatNameLen);
BOOL LoadCheatExt(char*CheatName,char*CheatExt,int-MaxCheatExtLen);
无效经理(无效);
void SaveCheatExt(char*CheatName,char*CheatExt);
BOOL TreeView_GetCheckState(HWND hwndTreeView,HTREEITEM hItem);/(第55行,抛出错误。)
BOOL TreeView_SetCheckState(HWND hwndTreeView,HTREEITEM hItem,BOOL fCheck);/(第56行)
LRESULT回调管理器存储过程(HWND、UINT、WPARAM、LPARAM);
无效应用程序加热(无效){
//lots'o代码
}
BOOL CheatActive(字符*名称){
//更多代码
}
LRESULT回调作弊SCodeExproc(HWND hDlg、UINT uMsg、WPARAM WPARAM、LPARAM LPARAM){
//此帖子中包含的代码太多。。。
}
LRESULT回调作弊代码QUANTPROC(HWND hDlg、UINT uMsg、WPARAM WPARAM、LPARAM LPARAM){
//代码
}
//由于代码的复杂性,我将跳到抛出错误的行。
BOOL TreeView_GetCheckState(HWND hwndTreeView,HTREEITEM hItem){//第982行,抛出错误。
//代码在这里
}
BOOL TreeView_SetCheckState(HWND hwndTreeView,HTREEITEM hItem,BOOL fCheck)//第999行,抛出错误
{//第1000行,抛出错误
//标段o代码
}//第1013行,抛出错误

如果需要更多的代码,我很乐意发布!

我已经检查了您提供链接的代码

BOOL
类型已正确包含。要检查是否可以使用
/p
选项编译
Cheat.c

所有问题都是由于将项目从Visual Studio 6升级到Visual Studio 2015引起的

如果您调查预处理器输出,您将看到转换:

BOOL TreeView_GetCheckState(HWND hwndTreeView, HTREEITEM hItem); //(line 55, error thrown.)
BOOL TreeView_SetCheckState(HWND hwndTreeView, HTREEITEM hItem, BOOL fCheck); //(line 56)
预处理至:

BOOL ((((UINT)(SendMessageA((HWND hwndTreeView), (0x1100 + 39), (WPARAM)(HTREEITEM hItem), 0xF000))) >> 12) -1);
BOOL { TVITEMA _ms_TVi; _ms_TVi.mask = 0x0008; _ms_TVi.hItem = (HTREEITEM hItem); _ms_TVi.stateMask = (0xF000); _ms_TVi.state = ((((BOOL fCheck)?2:1) << 12)); SendMessageA((HWND hwndTreeView), (0x1100 + 13), 0, (LPARAM)(TVITEMA *)&_ms_TVi);};
BOOL(((UINT)(sendmagesa((HWND hwndTreeView),(0x1100+39),(WPARAM)(HTREEITEM hItem),0xF000))>>12-1);

BOOL{TVITEMA_ms_TVi;_ms_TVi.mask=0x0008;_ms_TVi.hItem=(HTREEITEM hItem);_ms_TVi.stateMask=(0xF000);_ms_TVi.state=((BOOL fCheck)?2:1)我已经检查了您提供链接的代码

BOOL
类型已正确包含。要检查是否可以使用
/p
选项编译
Cheat.c

所有问题都是由于将项目从Visual Studio 6升级到Visual Studio 2015引起的

如果您调查预处理器输出,您将看到转换:

BOOL TreeView_GetCheckState(HWND hwndTreeView, HTREEITEM hItem); //(line 55, error thrown.)
BOOL TreeView_SetCheckState(HWND hwndTreeView, HTREEITEM hItem, BOOL fCheck); //(line 56)
预处理至:

BOOL ((((UINT)(SendMessageA((HWND hwndTreeView), (0x1100 + 39), (WPARAM)(HTREEITEM hItem), 0xF000))) >> 12) -1);
BOOL { TVITEMA _ms_TVi; _ms_TVi.mask = 0x0008; _ms_TVi.hItem = (HTREEITEM hItem); _ms_TVi.stateMask = (0xF000); _ms_TVi.state = ((((BOOL fCheck)?2:1) << 12)); SendMessageA((HWND hwndTreeView), (0x1100 + 13), 0, (LPARAM)(TVITEMA *)&_ms_TVi);};
BOOL(((UINT)(sendmagesa((HWND hwndTreeView),(0x1100+39),(WPARAM)(HTREEITEM hItem),0xF000))>>12-1);

BOOL{TVITEMA{u ms_TVi;_ms_TVi.mask=0x0008;_ms_TVi.hItem=(HTREEITEM hItem);_ms_TVi.stateMask=(0xF000);_ms_TVi.state=((BOOL fCheck)?2:1)任何原因,你不能只使用标准/正确的代码> Boo.<代码>类型,而不是使用丑陋的TyWuff/Grace/Bug < Boo> <代码>,定义<代码>真< /COD>和<代码> false > EEW,为什么?这个代码看起来像是很坏的C -请升级到好的C++)您是否曾尝试过代码< WINDEF.H./Cuth>?@ JePijull:可能需要使用<代码>布尔O/COD>与其他使用它的Windows代码兼容。(这是使用<代码> Boo.<代码>而不是<代码> BoOL <代码> C++的唯一借口),<代码> BoOL < /C> >定义在<代码> WINDEF.H./COD>中,如<代码> TyPufIn Boo.;(只是在一篇评论中)你尝试了包括<代码> WordEf .H./code >。你确定你做的是否正确?尝试编译一个小型的C++程序,使用<代码> >包含<代码> > BooL
。更新你的问题,显示你实际做的代码包括<代码> WiDEF.H./code >。(复制并粘贴)问题中的错误消息。目前,您要求我们调试我们看不到的代码。这些错误没有说明任何有关