小编Rob*_*edy的帖子

重新提升时,为什么对Exception对象的更改会丢失?

我确信这曾经适合我,我已经在网上看到了它(Jolyon Smith和David Moorhouse).刚刚在D2007和XE2试用版中的一个简单程序中尝试过它,它不会保留修改后的消息.一旦"加注"发生,该消息将恢复为原始异常.

我错过了什么盲目明显的事情?另一种方法是"引发Exception.Create(...)",但我想只是在链上传播原始异常,只是在每个异常块上标记了附加信息.

var a: Integer;
begin
  try
    a := 0;
    Label1.Caption := IntToStr(100 div a);
  except
    on e: Exception do
    begin
      e.Message := 'Extra Info Plus the original : ' + e.Message;
      raise;
    end;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

delphi exception

23
推荐指数
2
解决办法
993
查看次数

你如何缩进预处理器语句?

当有许多预处理器语句和许多#ifdef级联时,很难得到概述,因为通常它们不会缩进.例如

#ifdef __WIN32__
#include <pansen_win32>
#else
#include <..>
#ifdef SOMEOTHER
stmts
#endif
maybe stmts
#endif
Run Code Online (Sandbox Code Playgroud)

当我考虑缩进这些预处理器语句时,我担心会与一般缩进级别混淆.那么你如何以一种美丽的方式解决这个问题呢?

c++ code-formatting indentation

22
推荐指数
3
解决办法
8382
查看次数

当我尝试通过git URL进行克隆时,为什么会"无法连接套接字"?

当我尝试从GitHub克隆项目时,它给我以下错误.

:git clone git://github.com/project.git
github.com[0: 207.97.227.239]: errno=Connection refused
fatal: unable to connect a socket (Connection refused)
Run Code Online (Sandbox Code Playgroud)

但是如果我使用相应的HTTP URL,那很好:

:git clone http://github.com/project.git
Run Code Online (Sandbox Code Playgroud)

我应该怎么做来克隆一个git URL?

git github

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

对于最大化的风格窗户,我可以做些什么,在相邻的显示器上显示边框?

在多监视器系统上,"空白"VCL应用程序可以最大化,但启用了样式的相同应用程序(以及一个默认选择的应用程序)最大化不正确.我所看到的是窗口的右侧边缘延伸到第二台显示器(我的主要位于左侧).当我开始与其他Windows应用程序进行比较时,我注意到在Windows 7(至少)下,最大化的窗口甚至在左侧,右侧或底侧都没有非客户端边框.事实上,标准VCL(非样式)应用程序的行为方式相同,没有非客户端边界.

我该如何解决?我注意到TFormStyleHook有一个WMNCCalcSize的处理程序,我还没有解剖,但让我想知道VCL是否可能错误地处理这个消息以获得最大化的窗口.

delphi maximize-window delphi-xe2 vcl-styles

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

如何让表单更顺畅地调整大小?

调整具有许多控件的窗体时,窗体看起来很糟糕,因为闪烁.有什么提示可以更顺畅地调整大小?

forms delphi resize smooth flicker

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

为什么C#运算符重载必须是静态的?

为什么C#需要运算符重载是静态方法而不是成员函数(如C++)?(也许更具体地说:这个决定的设计动机是什么?)

c# c++ static language-design operator-overloading

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

整数溢出如何被利用?

有没有人详细解释如何利用整数?我已经阅读了很多关于这个概念的内容,我理解它是什么,我理解缓冲区溢出,但我不明白如何可靠地修改内存,或者以修改应用程序流的方式,通过使一个大于它定义的记忆....

security exploit integer-overflow

21
推荐指数
2
解决办法
2万
查看次数

"L"在整数字面的末尾是什么意思?

我有这个常数:

#define MAX_DATE  2958465L
Run Code Online (Sandbox Code Playgroud)

在这个意义上,L的含义是什么?

c++

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

为什么c ++指针*与声明的变量关联,而不是类型?

为什么C++的设计使得在同一行上声明两个int*的正确方法是

int *x, *y;
Run Code Online (Sandbox Code Playgroud)

int* x,y;
Run Code Online (Sandbox Code Playgroud)

我知道有些人认为你应该避免使用任何形式并在自己的行上声明每个变量,但我对为什么做出这个语言决定感兴趣.

c++ pointers language-design declaration

21
推荐指数
2
解决办法
1558
查看次数

如何组合输出流,以便输出一次多个位置?

我想将两个(或更多)流组合成一个.我的目标是将任何输出定向到cout,cerr并且clog还将其与原始流一起输出到文件中.(例如,当事情记录到控制台时.关闭后,我仍然希望能够返回并查看输出.)

我在考虑做这样的事情:

class stream_compose : public streambuf, private boost::noncopyable
{
public:
    // take two streams, save them in stream_holder,
    // this set their buffers to `this`.
    stream_compose;

    // implement the streambuf interface, routing to both
    // ...

private:
    // saves the streambuf of an ios class,
    // upon destruction restores it, provides
    // accessor to saved stream
    class stream_holder;

    stream_holder mStreamA;
    stream_holder mStreamB;
};
Run Code Online (Sandbox Code Playgroud)

这看起来很简单.然后在main中的调用将是这样的:

// anything that goes to cout goes to both …
Run Code Online (Sandbox Code Playgroud)

c++ boost iostream stream tee

20
推荐指数
3
解决办法
8910
查看次数