Tag: swig

IDA Python – Почему мой код возвращает неправильное значение ESP?

Я сделал код ida python, который для проверки покрытия кода. Но когда я использовал этот скрипт, я получил ошибку времени выполнения, и я не смог получить правильное значение ESP. -Мой код- from idaapi import * class DbgHook(DBG_Hooks): def dbg_process_exit(self, pid, tid, ea, code): # bpt Del for fun in Functions(SegStart(ScreenEA()),SegEnd(ScreenEA())): DelBpt(fun) return debugger.unhook() def dbg_bpt(self, […]

Ошибка аргумента SWIG при использовании «using std :: vector» в python

Это очень связано с этим вопросом Независимо от того, является ли это практикой кодирования, я столкнулся с кодом, который выглядит так test.hh #include <vector> using std::vector; class Test { public: vector<double> data; }; Я пытаюсь выполнить swig с помощью swig3.0, используя следующий файл интерфейса test.i %module test_swig %include "std_vector.i" namespace std { %template(VectorDouble) vector<double>; }; […]

Обертка C ++ Qt-виджета для использования в Python с PySide

Каков наилучший подход для упаковки пользовательской библиотеки C ++ с пользовательскими виджетами отображения Qt в Python для использования в QApplication на основе PySide? Требуется ли для библиотеки C ++ специальная обработка для упаковки с помощью SWIG? Будут ли завернутые виджеты Qt правильно интегрироваться с PySide? Я был бы признателен за любые замечания по соответствующей номенклатуре, […]

двойное преобразование PyFloat неверно

Я изучаю SWIG, для использования C в Python. Я написал эту функцию, но я не могу понять, почему wrapped myfunc возвращает неверные значения float / double: mfuncs.c #include <stdlib.h> float myfunc(int n) { float result; result = 100 / n; return result; } mfuncs.i %module mfuncs %typemap(out) double, float "$result = PyFloat_FromDouble($1);" extern float myfunc(int […]

Как использовать float ** в Python с Swig?

Я пишу swig привязки для некоторых c функций. Одна из этих функций принимает float **. Я уже использую cpointer.i для обычных указателей и смотрю в carrays.i , но я не нашел способ объявить float **. Что вы порекомендуете? файл интерфейса: extern int read_data (const char * file, int * n_, int * m_, float ** […]

Сделать класс C ++ похожим на массив numpy с помощью swig

Каков хороший способ открыть класс C ++, который предоставляет интерфейс, похожий на массив, для использования с numpy (scipy)? Массивным интерфейсом я имею в виду что-то вроде: //file:Arr.h class Arr{ public: int n_rows; int n_cols; float* m_data; Arr(int r, int c, float v); virtual ~Arr(); float get(int i, int j); void set(int i, int j, float […]

Вызов exit () в библиотеке C ++ завершает скрипт python, который обертывает эту библиотеку с помощью swig

Я пишу обертку Swig-Python для библиотеки C ++. При возникновении критической ошибки библиотека вызывает exit(err); , который, в свою очередь, завершает весь скрипт python, который выполняет функции из этой библиотеки. Есть ли способ обернуть вокруг функции exit() чтобы вернуться к сценарию или выбросить исключение?

swig typemap для python: входные и выходные массивы

У меня есть функция C, которую я хочу использовать в Python: extern int convertAtoB( stateStruct *myStruct, const double PointA[3], double PointB[3]); Используя SWIG, я думаю, мне нужно определить карту-страницу для преобразования двух точек (PointA вход, PointB вывод), чтобы Python мог его использовать. Кажется, что нет typemap в typemaps.i, который работает с этим, поэтому я должен […]

Ошибка импорта SWIG и Python3

Я написал библиотеку в C. Я использую SWIG для создания привязок для Java, Python и т. Д. Мне удалось написать карты пользовательского типа для обоих языков и так далее. Мне также удалось использовать мою библиотеку (собственный протокол) и связаться с сервером, который я написал на C, с клиентом, который я написал на Java, и с […]

SWIG – Wring C строка строки в список python

Мне было интересно, как правильно переносить массив строк в C в список Python с помощью SWIG. Массив находится внутри структуры: typedef struct { char** my_array; char* some_string; }Foo; SWIG автоматически переносит some_string в строку python. Что мне следует поместить в файл интерфейса SWIG, чтобы я мог получить доступ к my_array в Python как обычный список […]

Python - лучший язык программирования в мире.