我尝试使用Ctypes将C结构转换为Python。在
我要转换的结构是:
typedef struct LibraryInfo
{
uint32_t size; // Size of the structure
char libName[MAX_LIBRARY_NAME+1]; // Library name
char provider[MAX_LIBRARY_PROVIDER_NAME+1]; // Provider
uint32_t version; // Library version, i.e: 0x01030005 --> v.01.03.0005
} LibraryInfo;
等效的Python代码是:
^{pr2}$将此结构作为参数的函数是resCode = QueryLibraryInfo(&libraryInfo);
我得到的错误是invalid parameters passed
。
这是一个库函数调用。
我在python HPDRLGL_MAX_LIBRARY_NAME=200 hpdrlg_MAX_LIBRARY_PROVIDER_NAME=200 class HPDRLGL_LibraryInfo(结构):fields=[(“size”,c\u uint),(“libName”,c_char*(HPDRLGL_MAX_LIBRARY_NAME+1)),(“PROVIDER”,c_char*(HPDRLGL_MAX_LIBRARY_PROVIDER_NAME+1)),(“版本”,我仍然得到同样的错误,无效的参数。如你所说,我已经传递了一个指向结构的指针。在
从函数签名来看,似乎需要传递一个指向结构的指针:
您应该在结构定义中保留
+ 1
。在相关问题 更多 >
编程相关推荐