Вот
тоящее время я связываю все свои классы движка 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