PyString_AS_STRING在Windows 64位与32位中的工作方式不同吗?

时间:2014-10-14 22:48:15

标签: python string embedding

我有以下功能:

void py_get_var( const char** var_name, int* found, char** resultado )
{
    *found = 0;

    PyObject * module     = PyImport_AddModule("__main__");
    PyObject * dictionary = PyModule_GetDict(module);
    PyObject * result     = PyDict_GetItemString(dictionary, *var_name );

    if( result == NULL ){
        *found = 1;
        *resultado = "";
        return;
    }

    #ifdef PY3K
    *resultado = PyBytes_AS_STRING( PyUnicode_AsUTF8String(result) );
    #else
    *resultado = PyString_AS_STRING(result);
    #endif
}

尝试从嵌入式Python会话中检索字符串(它始终是一个字符串)。它可以在Linux,Mac和Win32平台(以及几个版本的Python)上运行。

但是,它在Win64上返回一个空字符串。我在Windows上使用GCC编译器。

任何想法可能是什么原因?

0 个答案:

没有答案