草庐IT

ctype_digit

全部标签

python - ctypes中不同版本的msvcrt

在Windows中,当我导入ctypes模块时,ctypes.cdll.msvcrt对象自动存在,它代表msvcrtMicrosoftC++运行时库accordingtothedocs.但是,我注意到还有一个find_msvcrt函数将“返回Python使用的VCruntype库的文件名”。它进一步指出,“如果您需要释放内存,例如,通过调用free(void*)的扩展模块分配的内存,请务必在与它相同的库中使用该函数分配了内存。”所以我的问题是,我已经拥有的ctypes.cdll.msvcrt库与我可以使用find_msvcrt函数加载的库有什么区别?在什么特定情况下它们可能不是同一个库

error:0308010C:digital envelope routines::unsupported

问题描述使用npmrundev或者yarnrundev时报错:error:0308010C:digitalenveloperoutines::unsupportednodejs版本为18.12.1解决方案Google了一下发现是NodeJS17的BUG,相关ISSUE也给出了解决办法,就是修改package.json,在相关构建命令之前加入setNODE_OPTIONS=--openssl-legacy-provider"scripts":{ "dev":"setNODE_OPTIONS=--openssl-legacy-provider&nodebuild/dev-server.js","s

python - Python 的 ctypes.c_long 在 64 位系统上是 64 位的吗?

在C中,long在64位系统上是64位。这是否反射(reflect)在Python的ctypes中?模块? 最佳答案 long的大小dependsonthememorymodel.在Windows(LLP64)上它是32位,在UNIX(LP64)上它是64位。如果需要64位整数,请使用c_int64.如果你需要一个指针大小的整数,使用c_void_p(“该值表示为整数”)。 关于python-Python的ctypes.c_long在64位系统上是64位的吗?,我们在StackOverf

python - 如何在 ctypes 中传回指针?

不太了解ctypes,最近才开始使用它。我在类似C的dll中有一个简单的函数,它返回一个指向动态生成的字符串的指针。它工作正常,但是,因为我手动为字符串分配内存,所以我应该在使用后释放它。我有这样的东西:extern"C"char*DLL_EXPORTfunc(constchar*str1,constchar*str2){returngetSomeString(str1,str2);}//GoalistocallthisfunctioncorrectlyfromPython.extern"C"voidDLL_EXPORTfreeMem(void*mem){if(mem!=NULL)de

python - Ctypes 优缺点

我听说Ctypes会导致Python和Windows崩溃(或停止错误)。我应该远离他们的使用吗?我从哪里听到的?当我试图控制窗口的各个方面、自动化之类的东西时,它又回来了。我听说过swig,但我经常看到Ctypes。这里有什么危险吗?如果是,我应该注意什么?我确实搜索了ctypeproconpython。 最佳答案 就健壮性而言,我仍然认为swig优于ctypes,因为可以让C编译器为您更彻底地检查;然而,由于@Mark已经提到的argtypes功能,这现在还没有实际意义(虽然它在早期的ctypes版本中显得更大)。然而,毫无疑问,

Anaconda创建python3.10环境 ,pip报错:ImportError: DLL load failed while importing _ctypes: 找不到指定的模块。

一、问题>pipTraceback(mostrecentcalllast):File"D:\Users\tangtang1600\Anaconda3\envs\automatic1\Scripts\pip-script.py",line6,infrompip._internal.cli.mainimportmainFile"D:\Users\tangtang1600\Anaconda3\envs\automatic1\lib\site-packages\pip\_internal\cli\main.py",line9,infrompip._internal.cli.autocompletion

c++ - 调试 Python ctypes 段错误

我正在尝试从特定于Windows的程序中移植一些Pythonctypes代码,以链接到我的库的Linux端口。描述我的问题的最短Python代码示例如下所示。当我尝试执行它时,我在Python中的examine_arguments()中收到段错误。我在函数调用崩溃时在我的库中放置了一个printf语句,但它从未执行过,这让我认为问题出在ctypes代码中。importctypesavidll=ctypes.CDLL("libavxsynth.so")classAVS_Value(ctypes.Structure,object):def__init__(self,val=None):se

python - ctypes 中的 const void* 指针

如果我有一个可写的buffer,我可以使用ctypes.c_void_p.from_buffer函数来获取指向该缓冲区的C指针。但是如何处理不可写的缓冲区呢?如何形成一个const指针,我可以将其传递给需要constvoid*的C代码,而无需求助于制作不可写缓冲区的可写副本?我考虑过c_void_p.from_address但缓冲区(和内存View)似乎没有公开它们的地址。一些说明:>>>importctypes>>>b=buffer("somedatathatsupportsthebufferinterface,likeastr")>>>ptr=ctypes.c_void_p.fro

python - ctypes 回调函数的无效结果类型

我在使用ctypes实现时遇到问题。我有2个C函数:antichain**decompose_antichain(antichain*,int,char(*)(void*,void*),void**(*)(void*));counting_function**decompose_counting_function(counting_function*);其中antichain和counting_function是两个结构。反链可以看作一个集合,包含未知类型的元素(在这个例子中,counting_function)。decompose_antichain函数将用于分解反链包含的元素的函数

python - 在 Python 中验证 ctypes 类型精度

如果API需要64位类型,我如何检查ctypes如果sizeof类型有那么多位返回字节数?我如何知道当前平台上每个字节有多少位?CHAR_BIT在哪里在Python中定义? 最佳答案 C/C++函数签名是用C/C++类型编写的,例如“int”或“double”或“uint32_t”。所有这些都有对应的ctypes等价物,因此通常您不关心位数。也就是说……importosprintos.sysconf('SC_CHAR_BIT')...我认为,您将尽可能接近。不适用于非Unix平台。正如tMC在评论中指出的那样,它甚至不能在所有Uni