草庐IT

ctype_digit

全部标签

python - 我怎样才能得到方法作为 python ctypes 的回调?

我有一个与pythonctypes包交互的Capi。一切正常,除了这个小花絮。为了将函数注册为某些通知的回调,我调用了这个函数:voidRegisterNotifyCallback(intloginId,intextraFlags,void*(*callbackFunc)(Notification*))所以在python中我的代码看起来像:CALLBACK=ctypes.CFUNCTYPE(None,ctypes.POINTER(Notification))func=CALLBACK(myPythonCallback)myLib.RegisterNofityCallback(45454

python - 使用 ctypes 从共享库映射全局变量

我想映射一个int值pbs_errno使用ctypes在库libtorque.so中声明为全局。目前我可以像这样加载库:fromctypesimport*libtorque=CDLL("libtorque.so")并成功映射了一堆功能。然而,出于错误检查的目的,他们中的许多人设置了pbs_errno变量,所以我也需要访问它。但是,如果我尝试访问它,我会得到:>>>pytorque.libtorque.pbs_errno当然,它不是函数指针,尝试调用它会导致段错误。它在主头文件中声明为intpbs_errno;,在API头文件中声明为externintpbs_errno;。Objdump

python-tesseract OCR : get digits only

我正在使用带有python-tesseract的tesseractOCR。在tesseractFAQ中,关于数字,我们有:UseTessBaseAPI::SetVariable("tessedit_char_whitelist","0123456789");BEFOREcallinganInitfunctionorputthisinatextfilecalledtessdata/configs/digits:tessedit_char_whitelist0123456789andthenyourcommandlinebecomes:tesseractimage.tifoutputbas

python - Python 2 和 3 之间 ctypes 的差异

我有一个调用DLL的工作python2.7程序。我正在尝试将脚本移植到python3.2。DLL调用似乎有效(即调用时没有错误)但返回的数据没有意义。以防万一它可能有用:-该调用采用三个参数:两个int(输入)和一个指向ushort数组的指针(输出)。我尝试过同时使用python和numpy数组,但都没有成功。谁能列举出Python2.7和3.2在ctypes方面的区别?提前致谢编辑这是一些示例代码。DLL是专有的,所以我没有代码。但我确实有Cheader:voidexample(intwidth,intheight,unsignedshort*pointer)python代码是:wi

Python ctypes 参数错误

我用C++编写了一个测试dll,以确保在我开始使用我需要的更重要的dll之前一切正常。基本上它需要两个double并将它们相加,然后返回结果。我一直在玩弄其他测试功能,我已经恢复工作,但由于错误我无法传递参数。我的代码是:importctypesimportstringnDLL=ctypes.WinDLL('test.dll')func=nDLL['haloshg_add']func.restype=ctypes.c_doublefunc.argtypes=(ctypes.c_double,ctypes.c_double)print(func(5.0,5.0))它返回调用“func”的

python - Django DecimalField 在保存时生成 "quantize result has too many digits for current context"错误

我有一个像这样的模型:classModelWithDecimal(models.Model):value=models.DecimalField(max_digits=2,decimal_places=2)...然而当我尝试...obj=ModelWithDecimal(value="1.5")obj.save()我在保存期间收到quantizeresulthastoomanydigitsforcurrentcontext错误。这不应该没问题吗-它少于2位数字,小数点后少于2位数字?同样的错误发生在一个模型上:classModelWithDecimal(models.Model):va

javascript - JS 正则表达式 : replace all digits in string

我需要替换所有数字。我的函数只替换第一个数字。vars="04.07.2012";alert(s.replace(newRegExp("[0-9]"),"X"));//returns"X4.07.2012"//shouldbeXX.XX.XXXX" 最佳答案 您需要将“全局”标志添加到您的正则表达式中:s.replace(newRegExp("[0-9]","g"),"X")或者,也许更漂亮,使用内置的文字正则表达式语法:.replace(/[0-9]/g,"X") 关于javascri

python - Hello World with go on the appengine : ctypes error

我正在尝试在应用引擎上部署一个go应用程序并按照本教程进行操作:https://developers.google.com/appengine/docs/go/gettingstarted/helloworld?hl=de但是dev_appserver.pygopath/myapp/导致这个奇怪的错误消息:C:\Users\praktikant\Desktop\google_appengine>dev_appserver.pygopath/myapp/INFO2013-07-1610:43:17,565sdk_update_checker.py:244]Checkingforupdat

python - 返回结构时使用 ctypes 的段错误 - 32 位 linux

所以我在32位linux机器上从ctypes得到一个段错误,我无法在64位darwin或linux上重现。这是C:typedefstruct{void*ptr;}doodle;doodleC_intpointerfunction(int*a){*a=41;doodlefoo;foo.ptr=a;returnfoo;}编译为:gcc-cintpointerlibrary.cgcc-sharedintpointerlibrary.o-olibintpointerlib.so这是Python:importnumpyasNfromctypesimport*_libintpointer=N.ct

Python ctypes 在 Linux 上从 libc 调用 reboot()

我试图通过ctypes从Python中的libc调用reboot函数,但我无法让它工作。我一直在引用man2reboot页面(http://linux.die.net/man/2/reboot)。我的内核版本是2.6.35。下面是来自交互式Python提示的控制台日志,我在其中尝试让我的机器重新启动-我做错了什么?为什么ctypes.get_errno()不工作?>>>fromctypesimportCDLL,get_errno>>>libc=CDLL('libc.so.6')>>>libc.reboot(0xfee1dead,537993216,0x1234567,0)-1>>>ge