C++ python 扩展数组大小问题 (C2133)
C++ python extension array size issue (C2133)
我正在创建一个游戏扩展,将游戏 API 公开给嵌入式 python 解释器,我在 PyMethodDef 中收到 C2133 数组未知大小错误:
static PyMethodDef pyTTPlayerMethods[] = {
{"Get_Player_Name", pyTTGet_Player_Name, METH_VARARGS, "Returns the nickname of a client."},
{"Get_Player_Type", pyTTGet_Player_Type, METH_VARARGS, "TODO: Returns the player type of a client."},
{"Get_Bandwidth", pyTTGet_Bandwidth, METH_VARARGS, "Returns a player's bandwidth."},
{"Get_Ping", pyTTGet_Ping, METH_VARARGS, "Returns the ping of a client."},
{"Get_Kbits", pyTTGet_Kbits, METH_VARARGS, "Return kbits of a client."},
{"Get_Ip", pyTTGet_Ip_Address, METH_VARARGS, "Returns the IP of a client."},
{"Get_Port", pyTTGet_Ip_Port, METH_VARARGS, "Returns the port of a client."},
{"Get_Team", pyTTGet_Team, METH_VARARGS, "Returns the team ID of a client."},
{"Get_Translated_Team", pyTTGet_Translated_Team, METH_VARARGS, "Returns the team name of a client (GDI, NOD)."},
{"Change_Team", pyTTChange_Player_Team, METH_VARARGS, "Changes the team of a client."},
{"Change_Team2", pyTTChange_Player_Team2, METH_VARARGS, "Changes the team of a client without killing respawning the player."},
{"Get_Kills", pyTTGet_Kills, METH_VARARGS, "Returns the kill count of a client."},
{"Get_Deaths", pyTTGet_Deaths, METH_VARARGS, "Returns the death count of a client."},
{"Get_KD", pyTTGet_KillDeath_Ratio, METH_VARARGS, "Returns the KD ratio of a client."},
{"Get_Rank", pyTTGet_Rank, METH_VARARGS, "Returns the rank of a client."},
{"Set_Rung", pyTTSet_Rung, METH_VARARGS, "Sets the rung of a client."},
{"Set_Ladder_Points", pyTTSet_Ladder_Points, METH_VARARGS, "Returns the rank of a client."},
{"Get_Score", pyTTGet_Score, METH_VARARGS, "Returns the score of a client."},
{"Set_Score", pyTTSet_Score, METH_VARARGS, "Sets the score of a client."},
{"Get_Money", pyTTGet_Money, METH_VARARGS, "Returns the amount of money a client has."},
{"Set_Money", pyTTSet_Money, METH_VARARGS, "Sets the amount of money a client has."},
{"Refill", pyTTGrant_Refill, METH_VARARGS, "Replenishes a client's health and ammo."},
{"Change_Character", pyTTChange_Character, METH_VARARGS, "Changes a client's character."},
{"Toggle_Fly_Mode", pyTTToggle_Fly_Mode, METH_VARARGS, "Toggles a client's flying mode."},
{"Is_Stealth", pyTTIs_Stealth, METH_VARARGS, "Returns a client's stealth status."},
{NULL, NULL, 0, NULL}
};
编译插件时,我得到这个结果:
1>------ Build started: Project: PythonTT, Configuration: Release SSGM Win32 ------
1> pyGame.cpp
1> pyPlayer.cpp
1> PythonTT.cpp
1>pyGame.cpp(10): error C2248: 'cGameData::MapName' : cannot access protected member declared in class 'cGameData'
1> g:c++ssgm 4.0scriptsGameData.h(104) : see declaration of 'cGameData::MapName'
1> g:c++ssgm 4.0scriptsGameData.h(76) : see declaration of 'cGameData'
1>pyGame.cpp(15): error C2039: 'MapNum' : is not a member of 'cGameData'
1> g:c++ssgm 4.0scriptsGameData.h(76) : see declaration of 'cGameData'
1>g:c++ssgm 4.0pythonttpyPlayer.h(46): error C2133: 'pyTTPlayerMethods' : unknown size
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
第一个错误是因为我在 PyObject 中选择了错误的调用,但我不知道如何纠正最后一个错误 (C2133(; 有什么建议吗?
您可以尝试使用选项/Ze 进行编译,将一个未调整大小的数组声明为成员。http://msdn.microsoft.com/en-us/library/0k0w269d%28v=vs.71%29
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 基于boost的程序的静态链接——zlib问题
- C++格式化输出问题
- C++ python 扩展数组大小问题 (C2133)