Вот

тоящее время я связываю все свои классы движка 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, который сначала будет передан питоном моему обработчику универсальной функции, который, в свою очередь, извлечет и преобразует pyobjects в правильный тип c-side и передаст его моей функции.

Единственная функция, которую я могу найти, извлекает wchar_t * ... В любом случае можно получить представление ascii, так как мы будем использовать только набор символов ascii.

РЕДАКТИРОВАТЬ: я использую Python 3.2, где все строки являются Unicode

Ответы на вопрос(2)

Ваш ответ на вопрос