Я понимаю, как определять структуры в Python с помощью ctypes, но я не могу найти никакой документации о том, как обрабатывать основные псевдонимы. Например, 64-разрядные целые числа в SQLite :
#ifdef SQLITE_INT64_TYPE
typedef SQLITE_INT64_TYPE sqlite_int64;
typedef unsigned SQLITE_INT64_TYPE sqlite_uint64;
#elif defined(_MSC_VER) || defined(__BORLANDC__)
typedef __int64 sqlite_int64;
typedef unsigned __int64 sqlite_uint64;
#else
typedef long long int sqlite_int64;
typedef unsigned long long int sqlite_uint64;
#endif
typedef sqlite_int64 sqlite3_int64;
typedef sqlite_uint64 sqlite3_uint64;
В зависимости от параметров сборки базовый тип может быть разным. В этом случае, я думаю, я могу предположить, что типом является c_longlong
, но является ли это правильным способом справиться с этой ситуацией?