В настоящее время я связываю все свои классы движка C ++ с python для сценариев игры.Последняя проблема состоит в том, что когда вы говорите, что вы делаете переменную в скрипте строкой, такой как
string = 'hello world'
, это становится PyUnicodeObject.Далее мы хотим вызвать функцию этого объекта в скрипте из связанной функции на стороне C.PrintToLog (string), в качестве примера, скажем, что эта c-функция как таковая
void PrintToLog( const char * thisString )
{
//file IO stuff as expected
myLog << thisString;
//more stuff involving fileIO
}
Так что моя привязка должна извлечь char * из PyUnicodeObject, который сначала будет передан питоном моему универсальномуобработчик функции, который, в свою очередь, извлечет и преобразует пиобъекты в правильный тип c-стороны и передает его моей функции.
Единственная функция, которую я могу найти, извлекает wchar_t * ... Есть ли в любом случае, чтобы получитьпредставление ascii, поскольку мы будем использовать только набор символов ascii.
РЕДАКТИРОВАТЬ: я использую Python 3.2, где все строки Unicode