请看一下我的源文件,它们有点太长了,不能在这里发布:
X11Painter.cpp: http://pastebin.com/gu4SrHUr
X11Painter.h: http://pastebin.com/3ktp1Fvn
在我看来,这堂课的行为很奇怪.
我有以下测试用例:
#include "X11Painter.h"
int main()
{
X11Painter p ;
p.show();
}
Run Code Online (Sandbox Code Playgroud)
用线编译它
g++ -O0 -g -o test2 test2.cpp X11Painter.cpp -lX11 -lXfixes -lXinerama
Run Code Online (Sandbox Code Playgroud)
只需运行它就可以执行以下操作:
this->some_test=1234
this->screen:0
1:: this->display='0x8b73008'; this->window='77594625'
width: 3200
0xbff91bdc
this->some_test=1234
this->some_test=3682292
Segmentation fault
Run Code Online (Sandbox Code Playgroud)
我正在尝试映射X11窗口 X11Painter::show()
当我开始调查为什么X11Painter.cpp:83是segfaulting时,我发现大多数变量都被覆盖并且show()
与构造函数中的变量完全不同.
我把它int some_test
看看发生了什么.为什么地狱的价值会发生变化?
如果我这样做printf("%p\n", this)
,指针也会改变.我怀疑在某个地方,这个指针被覆盖了.但为什么会这样呢?用ddd调试告诉我,在退出构造函数的同时修改了this-> some_value.
使用测试类(具有公共构造函数的类,一个公共方法和一个私有变量)进行简短测试可以正常工作.
有没有人知道为什么会发生这种奇怪的事情?我知道堆栈中的变量会发生什么变化,但我们仍然在那里...
可能与X11库有关吗?
我成功创建了一个用于显示错误消息的用户控件.现在一切正常但是当显示消息时,可以访问后台控件.如何禁用页面控件或页面单击或选择任何控件.当消息面板关闭时,它应该启用页面控件.
我找到了答案的朋友.
void DisableControls(Control parent, bool status)
{
foreach (Control c in parent.Controls)
{
if (c is DropDownList)
{
((DropDownList)(c)).Enabled = status;
}
if (c is Button)
{
((Button)(c)).Enabled = status;
}
if (c is TextBox)
{
((TextBox)c).Enabled = status;
}
if (c is RadioButton)
{
((RadioButton)c).Enabled = status;
}
if (c is ImageButton)
{
((ImageButton)c).Enabled = status;
}
if (c is CheckBox)
{
((CheckBox)c).Enabled = status;
}
if (c is DropDownList)
{
((DropDownList)c).Enabled = status;
}
if (c is …
Run Code Online (Sandbox Code Playgroud) 上次当我想保存 Mathematica 文件时,有些事情很奇怪。现在,当我想打开我的文件时,需要很长时间,最后我只看到一些数据,而且我无法使用它。
我已在这里上传我的文件:
http://www.mediafire.com/?4etrrd3rauq0j59
您能否打开该文件并向我解释一下您是如何做到这一点并再次发送给我的?
很长一段时间后,Mathematica 中出现此消息:
下面命名的文件中似乎存在错误。您应该关闭它而不保存,然后选中“笔记本选项”对话框中的“打开时解析整个笔记本并将其加载到内存中”复选框。文件名:D:\App\Math\Unt.nb。
我的Django项目中有一个python文件,其中包含自定义模板标记和自定义模板过滤器.
我的自定义标记用于template.loader.get_template()
加载另一个模板文件.这很好用......直到我将自定义过滤器添加到加载的模板中.
现在我得到一个Django"Invalid Filter" TemplateSyntaxError
异常.看看调用堆栈,Django无法加载我的模板过滤器.
事情变得奇怪了.我可以使用其他模板中的自定义过滤器.我可以在我的自定义标记加载的模板中使用任何其他过滤器.但是我不能在我自己的自定义标签中使用我自己的过滤器.
显而易见的原因是没有在我的模板HTML中加载我的自定义标记/过滤器文件,但我正确加载它.(因为当我不加载它时,我会得到一个不同的错误 - "无效的块标记")
我在Python 2.7上运行Django 1.2.3.
[顺便说一下,我终于找到了答案,但是我花了好几个小时才能在stackoverflow或google上的任何地方找到答案,所以我要回答我自己的问题,以便其他人不必浪费和我一样多的时间]
我有一个很常见的设计问题:我需要为Google App Engine中的记录实现历史记录(审计跟踪).历史日志必须是结构化的,即我不能将所有更改加入到一些自由格式文本中并存储在字符串字段中.
我已经考虑了历史模型的以下选项,并且在注意到选项#1中的性能问题之后,我选择实现选项#3.但是,如果这个解决方案是高效和可扩展的,那么我们会有些怀疑.例如:随着选项#3中动态属性数量的增加,性能是否会显着下降?
您是否对每个选项的优缺点有更深入的了解,或者可以建议适用于Google App Engine数据库特征的其他审计跟踪设计模式?
fieldName
创建history_fieldName_n
字段(其中n = <0..N>是一些历史记录)
fieldName
创建一个fieldName_history
列表字段
我有一个5行的textarea.我想只显示一行,并且在焦点上它应显示剩余的4行.
有没有jc直接删除"li"的方法只需用onclick?
$go .="<li id=\"go_$id\"><a ondblclick=\"g('$id'); return false;\">$title</a>
<a onclick=\"go('$id', 'g')\">(x)</a>
</li>\n";
Run Code Online (Sandbox Code Playgroud)
我需要通过单击(x)来删除它,因此与我的其他函数(代码中的onclick函数)一起组合删除,以便"li"将消失onclick.
我想做的一个小例子.
我有一个(堆栈分配)顶点的列表
class Vertex {
int id;
double x;
double y;
double z;
};
Run Code Online (Sandbox Code Playgroud)
并想要创建边缘列表
class Edge {
int id;
Vertex * source;
Vertex * target;
};
Run Code Online (Sandbox Code Playgroud)
两个指向其源和目标顶点的指针.
通常我会在这里找一个参考,但我希望能够在运行时更改源或目标顶点,所以我需要某种指针类型.
所以我的问题是:是否有一个智能指针在这里很有用,或者我应该只使用上面的普通指针?
编辑
解决了答案中出现的一些问题:
首先,列表应该拥有顶点,这就是它们在堆栈中的原因.
其次,ID用于其他程序.
它需要一个文件,其中包含所有顶点及其坐标的列表,以及所有边的列表及其两个顶点的ID.
第三,我需要某种指针,因为顶点的id在运行时会发生变化,而边缘的源和目标顶点可能会变为.
(其中包括进行某种切割和切片)
我正在使用来自后台线程的STA COM对象,其中一个COM对象的方法将阻塞,当我从处于STA线程模式的新线程调用它时,因为COM对象的模式是STA,并且UI线程似乎也被阻止了,我可以避免这种UI阻止吗?
好的,所以我需要一个python编译器(从.py或.pyw到.exe)。
我遇到的唯一的是:
-cx_freeze(无效)
-py2exe(太复杂了)
编辑:以上 两个程序对我来说都很复杂,因为您必须制作所有这些安装文件,并键入一堆参数和命令才能使它们工作,我发现了一个名为gui2exe.py的东西,但是我似乎无法让它正确加载...有什么想法吗?
所以我在寻找的是一个无需通过python命令行运行的程序。最好是一个独立程序,您可以选择文件并选择输出(.exe),然后单击“转换”。没有什么太复杂了,因为我刚刚开始。
我想要这个的原因是因为我有一个我的朋友想看一看的程序,但是他不想下载python来查看它。我也不希望他能够更改源代码。
有任何想法吗?