Я пытаюсь отправить многосимвольную строку из Python в C ++, используя ctypes. Однако передается только первый символ каждой строки.
Это вызов в Python:
ctypes.cdll.LoadLibrary(os.path.abspath("nodispersion.so"))
ctypes.CDLL(os.path.abspath('nodispersion.so')).nodispersion('teststring')
А как я определяю в C ++:
extern "C" void nodispersion(char* test)
{
cout << "print test " << test << "\n";
}
В результате печатается только 't'.
Другие типы, такие как int pass fine. Кроме того, если я определяю char * в c ++, он печатается нормально, поэтому я предполагаю, что это что-то, когда он передается из Python. Любой совет приветствуется.