小编Eli*_*sky的帖子

十六进制组合二进制标志

下面哪一项给出了63长(在Java中)以及如何?

0x0
0x1
0x2
0x4
0x8
0x10
0x20
Run Code Online (Sandbox Code Playgroud)

我正在使用NetworkManager API标志,如果这有帮助.我从其中一个操作中得到63,但不知道如何将返回值与描述相匹配.

谢谢

hex numbers

3
推荐指数
1
解决办法
3万
查看次数

指向基类的成员指针

全部。我无法理解为什么下面的代码需要演员表才能工作。有人可以解释一下吗?

class Base {
};

class Derived : public Base {
};

class Class {
public:
    Derived member;
};

...

Derived obj;
Base *ptrObj = &obj; // ok, no cast needed

Derived Class::* ptr = &Class::member; // ok
Base    Class::* ptr = &Class::member; // wrong, need cast, why?
Run Code Online (Sandbox Code Playgroud)

c++ inheritance pointers casting member

3
推荐指数
1
解决办法
1268
查看次数

难以理解不同类型的调用语句

考虑到以下类型的CALL语句,我无法清楚地理解其中的差异.

CALL EAX
Run Code Online (Sandbox Code Playgroud)

CALL DWORD PTR[EAX]
Run Code Online (Sandbox Code Playgroud)

assembly reverse-engineering

3
推荐指数
2
解决办法
5695
查看次数

执行“删除此”时缺少虚拟析构函数

C ++ FAQ Lite的16.15节讨论delete this然后提到:

自然,通常的警告适用于以下情况:当您的指针是没有虚拟析构函数的基类的指针时。

为什么会这样呢?考虑以下代码:

class ISuicidal {
public:
    virtual void suicide() = 0;
};

class MyKlass : public ISuicidal {
public:
    MyKlass() {
        cerr << "MyKlass constructor\n";
    }

    ~MyKlass() {
        cerr << "MyKlass destructor\n";
    }

    void suicide() {
        delete this;
    }
};
Run Code Online (Sandbox Code Playgroud)

因此使用:

int main()
{
    ISuicidal* p = new MyKlass;
    p->suicide();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在调用中p->suicide()即使没有虚拟析构函数MyKlass也会ISuicidal按预期调用的析构函数

在我看来,这是有道理的,因为在中MyKlass::suicidethis已知的静态类型为MyKlass*,因此将调用正确的析构函数。通过在 …

c++ polymorphism self-destruction virtual-destructor

3
推荐指数
1
解决办法
1459
查看次数

Wx在PyQt中的空闲和UI更新事件

wx(和wxPython)在PyQt中有两个我错过的事件:

  • EVT_IDLE那被发送到一个框架.它可用于根据应用程序的状态更新各种小部件
  • EVT_UPDATE_UI 当它必须重新绘制和更新时,它被发送到一个小部件,所以我可以在处理程序中计算它的状态

现在,PyQt似乎没有这些,PyQt书建议编写一个updateUi方法并手动调用它.我甚至最终每0.1秒从计时器调用一次,以避免许多手动调用来自可能更新GUI的方法.我错过了什么吗?有没有更好的方法来实现这一目标?


一个例子:我有一个简单的应用程序,带有一个启动按钮,启动一些处理.只有在使用菜单打开文件时才应启用开始按钮.此外,状态栏上还有一个显示信息的永久小部件.

我的申请表明:

  1. 在打开文件之前(在此状态下,状态栏显示特殊内容并禁用启动按钮)
  2. 文件已打开且未开始处理:启动按钮已启用,状态栏显示其他内容
  3. 处理正在运行:开始按钮现在显示"停止",状态栏报告进度

在Wx中,我将按钮的更新UI事件处理其状态:其上的文本以及是否已启用,具体取决于应用程序状态.状态栏也是如此(或者我使用EVT_IDLE).

在Qt中,我必须在几个可能影响状态的方法中更新按钮,或者只是创建一个update_ui方法并在计时器中定期调用它.什么是更"QT"的方式?

python qt wxpython pyqt

2
推荐指数
1
解决办法
2391
查看次数

x86汇编指令REPE/REPZ和REPNE/REPNZ是否相等?

只是一个简单的问题:

REPE是否等于REPZ,REPNE等于REPNZ

谢谢.

x86 assembly

2
推荐指数
1
解决办法
2977
查看次数

howoto修复工作目录总是回家?(蟒蛇)

这是我的第一个问题.

我的python脚本打开并使用以下简单功能从当前文本文件中读取:

open("config.ini", "r")
Run Code Online (Sandbox Code Playgroud)

因为这是一个相对路径,所以它应该起作用,因为config.ini被放置在同一目录中,就像脚本在启动时一样,应该是当前工作的目录.

事实上,这在我的所有3个Linux机箱上都能完美运行,但我有一个用户需要支持,因为他在打开config.ini时遇到错误.错误提高是因为

os.path.exists("config.ini")
Run Code Online (Sandbox Code Playgroud)

即使文件在那里也返回false!

试图解决这个问题,我们发现使其工作的唯一方法是将config.ini放在他的主目录中,尽管假设工作目录是另一个.

此外,如果我的脚本试图在当前工作目录中创建一个文件,那么该文件总是在他的家庭目录中创建,所以我认为由于某种原因,他的工作目录总是在家!

我该如何解决这个问题?也许我可以引入绝对路径,但我担心os.getcwd()将返回homedir而不是正确的路径.

我是否应该建议这个用户以某种方式修理他的机器?

对不起这个长问题,但英语不是我的第一语言,我是编码的初学者,所以有一些难以解释.

非常感谢你提前!=)

python working-directory home-directory

2
推荐指数
1
解决办法
356
查看次数

如何查找llvm :: Instruction是否位于流控制中?

使用LLVM,我试图找出流控制中是否存在指令(if/switch/for)等,我必须在IR级别执行此操作.伪代码如下所示.

if cond
    inst
endif
Run Code Online (Sandbox Code Playgroud)

我正在查看函数的SCC,但我不确定如何推断出流控件中是否存在指令.

以这个IR的万花筒示例为例.

declare double @foo()

declare double @bar()

define double @baz(double %x) {
entry:
  %ifcond = fcmp one double %x, 0.000000e+00
  %0 = call double @foo()
  br i1 %ifcond, label %then, label %else

then:       ; preds = %entry
  %calltmp = call double @foo()
  br label %ifcont

else:       ; preds = %entry
  %calltmp1 = call double @bar()
  br label %ifcont

ifcont:     ; preds = %else, %then
  %iftmp = phi double [ %calltmp, %then ], [ %calltmp1, …
Run Code Online (Sandbox Code Playgroud)

llvm llvm-ir

2
推荐指数
1
解决办法
734
查看次数

Go内存分配——新对象、指针和逃逸分析

我读到 Golang 语言以一种智能的方式管理内存。使用逃逸分析,go在调用new时可能不会分配内存,反之亦然。golang可以用这样的表示法分配内存吗var bob * Person = & Person {2, 3}?或者指针总是指向堆栈

memory go

2
推荐指数
1
解决办法
2275
查看次数

需要帮助在python中使用正则表达式解析HTML

我的字符串是

mystring = "<tr><td><span class='para'><b>Total Amount : </b>INR (Indian Rupees) 
100.00</span></td></tr>"
Run Code Online (Sandbox Code Playgroud)

我的问题是我必须搜索并获得总金额

test = re.search("(Indian Rupees)(\d{2})(?:\D|$)", mystring)
Run Code Online (Sandbox Code Playgroud)

但是我的测试给了我没有.如何获取值和值可以是10.00,100.00,1000.00

谢谢

python

1
推荐指数
1
解决办法
209
查看次数