5

I'm creating an game extension that exposes the game api to an embedded python interpreter, and I get a C2133 array unknown size error in the PyMethodDef:

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}
};

When compiling the plugin, I get this result:

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.0\scripts\GameData.h(104) : see declaration of 'cGameData::MapName'
1>          g:\c++\ssgm 4.0\scripts\GameData.h(76) : see declaration of 'cGameData'
1>pyGame.cpp(15): error C2039: 'MapNum' : is not a member of 'cGameData'
1>          g:\c++\ssgm 4.0\scripts\GameData.h(76) : see declaration of 'cGameData'
1>g:\c++\ssgm 4.0\pythontt\pyPlayer.h(46): error C2133: 'pyTTPlayerMethods' : unknown size
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

The first errors are because I've chosen the wrong call in the PyObject, but I don't know how to correct the last error (C2133); any suggestions?

3
  • Reduce the array and try to find a minimal example to show the problem. Most probably there's just a comma or something in the wall of text that shouldn't be. The code should be correct in general. Commented May 19, 2012 at 22:26
  • Code looks OK to me too. Get rid of the other compiler errors - it might be that one of them upset the compiler and caused that C2133. Commented May 19, 2012 at 22:31
  • @Voo , Nick I'd incorrectly declared the list as something else in the header file, thanks for the help though Commented May 20, 2012 at 10:40

1 Answer 1

1

You can try compile with option /Ze, an unsized array is declared as a member. http://msdn.microsoft.com/en-us/library/0k0w269d%28v=vs.71%29

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.