2016-08-12 6 views
0

Я пытаюсь создать оболочку python для библиотеки C++. Swig дает ошибку для этого раздела кода, и я не понимаю, что вызывает ошибку. Также я новичок в использовании swig. Ошибка, которую он мне дает, - «Синтаксическая ошибка во вводе (2)», также Вот раздел кода.Ошибка Swig Error: Ошибка синтаксиса во вводе (2)

typedef void (__cdecl *TSI_FUNCTION_CAMERA_CONTROL_CALLBACK) (int ctl_event, void*context); 
typedef void (__cdecl *TSI_FUNCTION_CAMERA_CONTROL_CALLBACK_EX) (int ctl_event,  TSI_FUNCTION_CAMERA_CONTROL_INFO *ctl_event_info, void *context); 
typedef void (__cdecl *TSI_FUNCTION_IMAGE_NOTIFICATION_CALLBACK) (int notification, void *context); 
typedef void (__cdecl *TSI_FUNCTION_IMAGE_CALLBACK) (TsiImage *tsi_image, void *context); 
typedef void (__cdecl *TSI_TEXT_CALLBACK_FUNCTION) (char  *str,   void *context); 
+0

SWIG не понимает '__cdecl'. Добавьте '% include" windows.i ". У вас могут быть другие символы, которые не определены, но из информации, которую вы дали, я не могу сказать. –

+0

Это исправило ошибку, спасибо за помощь. – singint

+0

Я превратил исправление в ответ, потому что я думаю, что это проблема, с которой сталкиваются многие разработчики. –

ответ

1

SWIG не понимает __cdecl. Возможно, вам нужно добавить `% include" windows.i "в ваш файл интерфейса. У вас могут быть другие символы, которые не определены, но из информации, которую вы дали, я не могу сказать.

%module example 
%{ 
    #include "example_if.h" 
%} 
... 
# Here it must be present 
%include "windows.i" 
... 
%include "example_if.h"