Python (PyQt5), как использовать оболочку SIP для C ++ (Qt5) на win10?

Я пытаюсь использовать обертку SIP C ++ для Python, но это не удалось. Как я могу соловья это?

Версия моего программного обеспечения:
— QT 5.9.1 MSVC2015
— PYQT 5.9.1
— ПИФОН 3.6.4
— SIP 4.19.8

//foo.h

#ifndef FOO_H
#define FOO_H

#if defined(FOO_LIBRARY)
#define FOOSHARED_EXPORT __declspec(dllexport)
#else
#define FOOSHARED_EXPORT __declspec(dllimport)
#endif
FOOSHARED_EXPORT int len(const char* str);
#endif //FOO_H

//foo.cpp

#include <string.h>
#include<foo.h>

int len(const char* str)
{
return strlen(str);
}

//foo.sip

%Module(name=foo)
%UnitCode
#include <foo.h>
%End
int len(const char* str);

Я использовал vs2015 craet foo.dll, foo.lib и использовал nmake (install) foo.pyd.

я пытаюсь import foo, все нормально.

Но я привык foo.len("123")Питон сказал мне ошибку:

len(): argument 1 has unexpected type 'str'

Я не знаю почему ..

————————— обновление на 2018.04.03 —————————

Сегодня попробую foo.len("123".encode('gb2312')), это верно!
Но я не знаю почему ..
Я пытаюсь скомпилировать foo.dll, foo.lib utf8, но то же самое об ошибке.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]