2016-09-22 20 views
0

私はC++を実行するためにEclipseを使用しています。私のコードでは、関数を実行するためにPythonのハイレベル埋め込みを使用します。私はsysを使用してそれをインポートしようとします。私はエラーを取得する:Pythonのsysを使ったエラーC++での埋め込み

致命的なPythonのエラー:私はターミナルから.exeファイルを実行すると、私は

とValueErrorを取得

#include <python3.4m/Python.h> 
#include <iostream> 
#include <iostream> 
#include <fstream> 
#include <string> 
using namespace std; 

int main(int argc, char **argv) 
{ 

    Py_Initialize(); 
    PySys_SetArgv(argc, (wchar_t**)argv); 
    PyRun_SimpleString("import sys\n"); 
    Py_Finalize(); 
    return 0; 
} 

:sys.argvの

CODEのための無MEM :文字U + 384d2f2eは範囲にありません[U + 0000; U + 10ffff] 中止

この問題を解決するには、何か助けてください。 ありがとうございます。

答えて

0

エラーはPythonが** argvがユニコード値のセットを指すことを期待していたことでした。代わりにargvがcharsを指していました。

wchar_t **wargv; 
wargv = (wchar_t**)malloc(1*sizeof(wchar_t *)); 
*wargv = (wchar_t*)malloc(6*sizeof(wchar_t)); 
**wargv = L'argv1'; 

Py_Initialize(); 
PySys_SetArgv(1, (wchar_t**)wargv); 
PyRun_SimpleString("import sys\n" 
        "print('test')\n"); 
Py_Finalize(); 
return 0; 

希望、これは他の誰かに役立ちます。この問題を解決するには