C++ 代码块编译器c++;使用mingw64时出错

C++ 代码块编译器c++;使用mingw64时出错,c++,codeblocks,gnu,C++,Codeblocks,Gnu,我有一个使用CB的项目。编译器是MingW64 当我使用GNU GCC x64来编译它时。没有错误。 当我切换到GNUGCC(32位)时,我得到了这些错误 C:..\SDK\ScopeCppSDK\vc15\SDK\include\shared\basetsd.h错误:从“const void*”转换为“long unsigned int”会丢失精度[-fpermissive] x86_64-w64-mingw32\include\debugapi.h错误:“WINBOOL”未命名类型 x86_

我有一个使用CB的项目。编译器是MingW64 当我使用GNU GCC x64来编译它时。没有错误。 当我切换到GNUGCC(32位)时,我得到了这些错误

C:..\SDK\ScopeCppSDK\vc15\SDK\include\shared\basetsd.h错误:从“const void*”转换为“long unsigned int”会丢失精度[-fpermissive]

x86_64-w64-mingw32\include\debugapi.h错误:“WINBOOL”未命名类型

x86_64-w64-mingw32\include\fileapi.h错误:“WINBOOL”未命名类型

然后我将vc15\SDK的文件夹移动到vc15\SDK_old,这样MingW就找不到了。 然后用GNUGCC(32)编译该项目。没有错误

所以问题似乎来自basetsd.h

但此MS SDK不在搜索路径中


它是如何涉及的?为什么带有MnGW的CB使用MS SDK?

这取决于实现。但通常,64位体系结构上的32位编译器有64位指针,
long int
为32位。因此,您试图将64位值转换为32位