SQLite запрос на обновление базы данных с несколькими условиями в Android

Вы спросили, что такое переносимый способ вызвать любой указатель функции с заданным количеством аргументов. Правильный ответ заключается в том, что такого пути нет .

Например, python может вызывать функции C через модуль ctypes, но это переносимо только до тех пор, пока вы знаете точные прототипы и вызовы. В C самым простым способом добиться того же - знать прототип указателя функции во время компиляции.

Update

Для примера python / ctypes на каждой платформе, на которой включен модуль ctypes, python знает, как записать вызывающий стек для заданного набора аргументов. В Windows, например, python знает два стандартных соглашения о вызовах - cdecl с C параметрами порядка в стеке и stdcall с «упорядочением стиля pascal». В Linux необходимо беспокоиться о том, следует ли вызывать 32 или 64-битные общие объекты и т. Д. Если python скомпилирован на другую платформу, ctypes также нуждается в изменениях; C-код в модуле ctypes не является, как таковой, портативным.

Обновление 2

Для Python здесь находится волшебство: исходный код ctypes . В частности, похоже, что ссылка http://sourceware.org/libffi/ может быть именно тем, что вам нужно.

13
задан Rohit 9 September 2014 в 05:38
поделиться