草庐IT

ctype_alpha

全部标签

c++ - ctypes 类成员访问段错误

我有兴趣在Python中使用C++类。看着CallingC/C++frompython?,我决定尝试ctypes。但是,当我尝试更改类成员的值时出现段错误。这是一个重现我的问题的简单示例:C/C++方面:#includeclassFoo{private:intmValue;public:voidbar(){std::coutbar();}voidFoo_setValue(Foo*foo,intv){foo->setValue(v);}voidFoo_setValue2(Foo*foo){foo->setValue2();}}代码在OSX上编译:g++-c-fPICfoo.cpp-ofo

c++ - <locale> 中的 "ctype"函数抛出 std::bad_cast

这个程序#include#includeintmain(){std::isxdigit(std::cin.peek(),std::cin.getloc());}抛出std::bad_cast类型的异常使用libstdc++使用gcc或clang编译时在我身上。用VS2010运行正常。我明白这里发生了什么。peek()返回int以适应带外EOF值。语言环境不需要ctype方面(他们在VS中确实有这个方面,也许作为扩展)。如果语言环境没有执行功能的方面,它将抛出bad_cast。.但这不应该按照原始的精神来工作吗??这是标准的缺陷吗?是否有普遍接受的解决方法?我知道我可以自己检查EOF并转

python - 使用 ctypes 捕获 c++ 共享库日志条目

我有一个带有c接口(interface)的cplusplus共享库,它在标准输出中写入日志条目。我在使用ctypes库的python应用程序中使用它。python应用程序使用logging库来写入日志条目。我需要做的是捕获共享库的标准输出条目以使用logging模块写入日志条目。换句话说,我想将c库的stdout条目重定向到logging模块,这样我就可以使用logging来使用它的处理程序写入文件和控制台。我发现可以捕获标准输出(seethisSOquestion),但我只能在c模块调用结束时访问它,因此它对日志记录没有用。我想要一种无阻塞的方式来访问标准输出条目。一个最小的例子如下

c++ - 如何防止 Qt 对 QListView 中的图标进行 alpha 混合选择?

我有一个使用QTableView和QListView的Qt应用程序。在这两个witdgets中,我都显示了一些图标。问题是,当用户选择其中一个条目时,Qtalpha将选择混合在图标上,使图标看起来对比度较低,颜色略有不同。我希望Qt先绘制选区,然后在顶部绘制图标,这样无论是否选中,它们看起来都一样。我该怎么做?更新:这就是我的问题:白色矩形图标更容易识别:当您使用图形编辑器检查颜色值时,您会看到颜色值发生了变化。我希望Qt在没有这个覆盖层的情况下按原样绘制图标。这里的QListView是用颜色渐变背景设计的。但是我对没有样式的QTableView也有同样的问题。顺便说一句,所有图标都是

c++ - CToolBar (MFC) 上带有 alpha channel 的 32 位图像

是否可以在MFC的CToolBar控件上显示带有alphachannel的32位图像?目前,我的工具栏使用由VisualStudio2010中的“文件名”属性分配给它的4位图像。提前致谢! 最佳答案 迟到的答案,但我遇到了同样的问题,所以万一其他人正在寻找解决方案:具有8位alpha的32位图像开箱即用,至少在XP和更新版本上是这样。您需要一个32位alphaBMP格式的BMP文件,许多应用程序无法正确保存该格式。我的方法是先生成PNG图像,然后使用这个小工具将它们转换为32位BMP:https://github.com/thome

python - 如何将 BitString 转换为 ctypes 字节数组?

我刚开始使用BitString和ctypes,我有一个二进制文件的一部分存储在startdata中,一个BitArray类。>print(startdata)0x0000000109f0000000010605ffff现在,我必须按原样将这些数据传递给一个以unsignedchar*作为参数的C函数,所以我首先尝试做这样的事情:buf=(c_ubyte*len(startdata))()最终做到这一点:buf_ptr=cast(pointer(buf),POINTER(c_ubyte))这行得通,但是如何将字节数据从startdata分配到我刚刚创建的数组/缓冲区?这行不通:>buf=

c++ - 开罗的 Alpha 透明度

我在使用GTK和Cairo显示alpha透明度时遇到问题。我尝试显示此图像1如果我对自己进行alpha混合,一切正常。如果我将alpha值直接传递给Cairo,阴影似乎渲染良好,但发光效果已损坏。这是Cairo1.14.2中的错误,还是我遗漏了什么?//NeeddeprecatedAPItogetbackgroundcolorGdkColorcolor=gtk_widget_get_style(widget)->bg[GTK_STATE_NORMAL];Pixelcolor_blend{uint8_t(255*color.red/65535.0f),uint8_t(255*color.

c++ - cout 是否保证有 ctype<char> 刻面?

给定:autofoo="ABCDEFGHIJKLMNOPQRSTUVWXYZ"s我可以通过以下方式将所有字符转换为小写:use_facet>(cout.getloc()).tolower(data(foo),next(data(foo),foo.size()));LiveExample但这取决于cout.getloc()包含ctypefacet.假设我使用的是未修改的cout我可以假设cout.getloc()将包含facetctype还是我需要在使用前确认这一点:has_facet>(cout.getloc()) 最佳答案 来自c

c++ - iPhone OpenGL ES 不正确的 alpha 混合

我在iPhone上使用openGLES时遇到错误的alpha混合结果问题。这是我创建纹理对象的代码:glGenTextures(1,&tex_name);glBindTexture(GL_TEXTURE_2D,tex_name);glTextImage2D(GL_TEXTURE_2D,0,GL_RGBA,tex_width,tex_height,GL_RGBA,GL_UNSIGNED_BYTE,tex_data);'tex_data'是从用zlib打包的原始RGBA8888数据加载的。它按应有的方式加载,我已经用调试器检查过了。这是我在渲染前设置纹理的代码:glEnable(GL_BL

python - 使用 Python Ctypes 和 C++ 时如何解决段错误?

假设我在C++中有以下两个函数签名:BYTE*init(BYTE*Options,BYTE*Buffer)和:intnext(BYTE*interface,BYTE*Buffer)我的想法是,我首先在C++中初始化一个Interface类,然后从Python调用next函数,并引用该类。第一个函数通过以下方式返回指向接口(interface)的BYTE指针:Interface*interface;//initializestuffreturn((BYTE*)interface);我在Python中这样调用它:classFoo:definit(self,data):#leftout:se