草庐IT

python - 如何将通过 ctype malloc 分配的二进制缓冲区保存到 Python 中的文件中?

我有以下代码importctypespBuf=ctypes.cdll.msvcrt.malloc(nBufSize)#wrotesomethingintothebuffer如何使用Python2.5将缓冲区的内容保存到文件中?您可能已经知道,这是行不通的,给出TypeError:argument1mustbestringorread-onlybuffer,notint:f=open("out.data","wb"f.write(pBuf) 最佳答案 也许用ctypes.create_string_buffer()分配缓冲区会更好而不

python - 无法在 Windows 7 上导入 ctypes

尝试导入ctypes时出现此错误的任何想法:>>>fromctypesimport*Traceback(mostrecentcalllast):File"",line1,infromctypesimport*File"C:/Python27\ctypes.py",line3,inlibc=ctypes.windll.msvcrtAttributeError:'module'objecthasnoattribute'windll' 最佳答案 "C:/Python27\ctypes.py"表示您在加载的路径中有一些杂散的ctypes.p

python - 在 Python 中释放通过 ctypes 分配的内存

我有一个基于ctypes的库,它包装了一个有时会分配需要释放的内存的C库。在Linux下这很容易,因为常见的glibc功能已链接到该C库中,我可以简单地对其调用free()。但是,当我在Windows下访问第三方编译的库时,似乎无法使用相同的功能。ctypes.util.find_msvcrt()看起来很有希望,但它返回None即使我在Windows下运行。我不确定这是否意味着源DLL是使用Microsoft工具链以外的东西构建的。所以,我只剩下需要释放的内存,而且没有明显、简单的方法来释放它。有人有什么想法吗? 最佳答案 使用MS

python - 如何使用 Python 和 ctypes 在 Windows 上读取或写入 as h r i 文件属性?

备案:a表示“可归档”s表示“系统”h表示“隐藏”r表示“只读”i表示“可索引”我当前从Python脚本读取/写入这些属性的解决方案是使用subprocess调用attrib模块。Python代码:importos,subprocessdefattrib(path,a=None,s=None,h=None,r=None,i=None):attrs=[]ifr==True:attrs.append('+R')elifr==False:attrs.append('-R')ifa==True:attrs.append('+A')elifa==False:attrs.append('-A')i

Python ctypes 无法在结构中传递内存数组

Python2.7.8,Windows7,PhytonUSB程序员的DLL我被Data元素困住了,它应该是一个大内存数组,我尝试使用几种不同的定义,但我无法理解这些错误试图告诉我什么。我遇到的大多数错误都是类型错误,下面这段代码是我最接近的,它似乎是在调用函数,但由于错误而没有处理。CAPI:typedefstructtagACI_Memory_Params{UINTSize;//(in)Sizeofstructure,inbytesUINTBufferNumber;//(in)Numberofbufferofinterest,thefirstbuffernumberis0UINTLa

python - 使用 CTypes 时检测从 Windows DLL 调用 Python 脚本

我正在寻求在Windowsdll中添加功能以检测调用Python脚本的名称。我正在使用ctypes通过Python调用dll,如HowcanIcallaDLLfromascriptinglanguage?的答案中所述在dll中,我能够使用WINAPIGetModuleFileName()成功确定调用进程http://msdn.microsoft.com/en-us/library/windows/desktop/ms683197(v=vs.85).aspx.但是,由于这是一个Python脚本,它通过Python可执行文件运行,因此返回的模块文件名为“C:/Python33/Python

python - 从 ctypes windll 获取错误信息

我正在尝试使用Python脚本更改Windows7计算机上的墙纸。如果重要的话,我会从node-webkit应用程序调用脚本。缩短后的脚本如下所示:#...result=ctypes.windll.user32.SystemParametersInfoA(20,0,path,0)通常,它会起作用,但有时,似乎是随机的,它却不起作用。除了状态代码(0或1)之外,我有什么方法可以检索有关错误的更多信息?我一直在尝试使用GetLastError,它有时会在ctypes库中被提及,但无法提取任何错误信息。 最佳答案 ctypes文档建议使用

Python 3.5 ctypes libc printf() 仅打印字符串的第一个字节 Windows 7/10

我正在尝试遵循GrayHatPython示例之一,它在Python2.7中运行良好,但在Python3.5中结果被截断。fromctypesimport*msvcrt=cdll.msvcrtmessage_string="HelloWorld!\n"msvcrt.printf("Testing:%s\n",message_string)您可以在下面看到上面代码的输出只是字母T。基于一些与此类似的其他帖子,在最后一行添加b会有所帮助,但随后message_string会被截断。fromctypesimport*msvcrt=cdll.msvcrtmessage_string="Hello

r - 启动期间 - 警告消息 : Setting LC_CTYPE= failed on Windows

升级Windows10后,每当我启动Rstudio时,我都会收到以下警告消息。启动期间-警告消息:设置LC_CTYPE=失败我目前正在运行MicrosoftROpen版本。有什么方法可以修复此警告消息,我在stackoverflow上找到了一些适用于Mac而不是适用于Windows的解决方案。 最佳答案 我发现针对该问题的最佳解决方法是设置一个.Renviron文件并覆盖那里的语言环境。如何设置和修改.Renviron文件在打开的书的相关章节中有描述EfficientRProgramming.因此,只需要复制这些行user_renv

windows - 在 python 上使用 ctypes 不显示多个消息框

您好,我有一个简单的代码,使用ctypes显示消息框但我的问题是在我添加MB_TOPMOST后它没有附加或重叠消息框?defmsgbox(self,msg):MB_OK=0x0MB_OKCXL=0x01MB_YESNOCXL=0x03MB_YESNO=0x04MB_HELP=0x4000ICON_EXLAIM=0x30ICON_INFO=0x40ICON_STOP=0x10MB_TOPMOST=0x40000"""HEXVALUELINKhttps://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm"""writeLogs=