我正在尝试制作Q3BSP地图信息调试器。
我停留在纹理调试器部分,这是该部分使用的代码:
for( i = 0; i < nTextures; i++ ) {
printf( "Texture id %d\n", i );
printf( "\tTexture name %s\n", Texture[i].name );
printf( "\tTexture flags %d\n", Texture[i].flags );
printf( "\tTexture contents %d\n", Texture[i].contents );
}
但是这种错误似乎出现了:
错误C2676:二进制'[':'Q3BSPTexture'未定义此运算符或转换为预定义运算符可接受的类型
这是Q3BSPTexture结构:
typedef struct {
char name[64]; // Texture name.
int flags; // Surface flags.
int contents; // Surface contents
} Q3BSPTexture;
我怀疑结构没有设置限制,如char [32]
但我喜欢听专业人士的解答!
答案 0 :(得分:3)
您尚未向我们展示Texture
的定义。
您将Texture
视为Q2BSPTezture
的数组。显然它是一个Q2BSPTezture
对象,所以索引它是没有意义的。您可能只需将其声明为数组,或者可能是指向需要分配的数组的第一个元素的指针。
此外,错误消息暗示您正在编译C ++,而不是C(在C中,类型无法定义任何运算符)。