小编Blu*_*erk的帖子

OpenSSL 中的 ENGINE 是什么,它的用途是什么?

我找不到关于ENGINEOpenSSL 是什么的很好的解释。它用于像EVP_PKEY_CTX_new.

EVP_PKEY_CTX_new在加密/解密某些东西之前使用EVP_PKEY_encryptEVP_PKEY_decrypt但是我真的需要ENGINE在调用EVP_PKEY_CTX_new. 我在 OpenSSL 内部查看的每个地方都将参数指定为 null。

所以我的问题是:ENGINEOpenSSL 中的什么是它,它的用途是什么,如果没有指定它有什么区别?

c openssl cryptography evp-cipher

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

是否有Exit方法退出嵌套过程及其所有者过程?

是否有一个方法可以从嵌套过程内部调用Exit,它也将退出所有者/父过程?

procedure OwnerProc;

    procedure NestedProc;
    begin
      // Do some code here

      EXIT_ALL; {Call a method which will exit NestedProc and OwnerProc}
    end;

begin
  NestedProc;
end;
Run Code Online (Sandbox Code Playgroud)

delphi control-flow

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

New和Dispose在内部做什么?

我想知道在调用New和Disposed时内部会发生什么.Delphi的帮助提供了一个合理的解释,但是如果一个人会写一个自己的New和Dispose,那该怎么办呢?哪个方法在内部调用两个方法还是全部组装?

我不打算写自己的New和Dispose.我对这两种方法的内部工作非常好奇.

delphi

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

自我的范围是什么?

我要求提高我对自我的理解.

请考虑以下事项:

type
  PTestObject = ^TTestObject;
  TTestObject = class(TObject)
  private
    FCaption : String;
  public
    procedure MakeThePointer;

    property Caption : String read FCaption write FCaption;
  end;

  TForm4 = class(TForm)
    ButtonFirst: TButton;
    ButtonSecond: TButton;
    ButtonThird: TButton;
    procedure ButtonFirstClick(Sender: TObject);
    procedure ButtonSecondClick(Sender: TObject);
    procedure ButtonThirdClick(Sender: TObject);
  private
  public
  end;

var
  Form4: TForm4;
  PointerOfTest : PTestObject;
  TestObj : TTestObject;

implementation

{$R *.dfm}

procedure TTestObject.MakeThePointer;
begin
  PointerOfTest := @Self;
end;

procedure TForm4.ButtonFirstClick(Sender: TObject);
begin
  TestObj := TTestObject.Create;
  TestObj.Caption := 'Hello';
  TestObj.MakeThePointer;
end;

procedure TForm4.ButtonSecondClick(Sender: TObject); …
Run Code Online (Sandbox Code Playgroud)

delphi

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

如何告诉Delphi它必须放置自动创建的事件代码?

当开发人员双击Object Inspector中的控件事件并且该事件没有任何代码时,Delphi将自动创建该事件的过程声明及其代码.我想知道开发人员如何告诉Delphi或者至少向Delphi表明应该在单元中的哪个部分应该放置事件的实现部分.

当我创建一个单元时,我通常会插入一组预定义的注释,并且我在单元中的某些区域添加了某些类型的代码.在单元的最后,我有所有自动创建的事件过程.有时我认为Delphi将继续将自动创建的事件代码放在单元的末尾,但有时它会继续将它放在我自己手动创建的过程之间.如果可能的话,我想告诉Delphi在哪里放置它.

delphi

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

获取主题编辑控件的非客户区域的大小

如何获取 Windows XP 及更高版本中主题编辑控件的边框(非客户端)宽度?

在 Windows 7 上GetThemeMetric,使用TMT_BORDERSIZEas 属性标识符对于现有编辑控件返回 0,如果未提供句柄,则返回 1。但仔细一看,似乎应该是2。

当控件包含WS_VSCROLLWS_HSCROLL窗口样式时,滚动条将绘制在该边框内,并且它们确实距离控件的外边缘 2 个像素,因此我假设有一种方法可以获得正确的信息。

查询的原因是我能够在WM_NCCALCSIZE创建自定义控件时设置客户区域大小。

在此输入图像描述

windows delphi winapi themes

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

如何更改表中的现有主键?

我有一个表已经定义了主键.我想为它添加一列,它也必须是主键的一部分.怎么办?

firebird

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

VirtualTreeView是否为节点的用户数据管理内存,或者我可以吗?

我开始玩VirtualTreeView,似乎从所有的Web信息和文档中,VirtualTreeView管理用户提供的数据的内存(如果有的话,记录).一个人没有New()和Dispose()任何用户数据.只需要告诉VirtualTreeView userdata的大小,并在调用GetNodeData后分配其字段值.

如果我想管理它怎么办?可以吗?我可以根据需要创建用户数据并将其添加到我自己的列表中,并且只向VirtualTreeView提供每条记录的指针而不会干扰它吗?

delphi virtualtreeview

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

Delphi中的多行插入符?

Lazarus具有一项称为“ Multi Caret”的功能,该功能允许在代码编辑器(源代码编辑器)中一次在多行上键入代码。

德尔福有这样的功能吗?

delphi lazarus

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

你能检查一下是否调用了 Exit()

开发人员可以检查是否Exit被调用吗?

try
  {do some stuff}
  If Condition then
    Exit;
finally
  {Can I check here if Exit was called without checking Condition again?}
end;
Run Code Online (Sandbox Code Playgroud)

delphi

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

OnTerminate应该同步吗?

TThread通过称为线程函数ThreadProcCreateThread创建线程时.这是ThreadProc用于TThread:

function ThreadProc(Thread: TThread): Integer;
var
  FreeThread: Boolean;
begin
  TThread.FCurrentThread := Thread;
{$IF Defined(MACOS)}
  if Thread.FSuspended then
    pthread_mutex_lock(Thread.FCreateSuspendedMutex);
{$ELSEIF Defined(LINUX)}
  if Thread.FSuspended then
    sem_wait(Thread.FCreateSuspendedSem);
{$ENDIF LINUX}
  try
    if not Thread.Terminated then
    try
      Thread.Execute;
    except
      Thread.FFatalException := AcquireExceptionObject;
    end;
  finally
    Result := Thread.FReturnValue;
    FreeThread := Thread.FFreeOnTerminate;
    Thread.DoTerminate;
    Thread.FFinished := True;
    SignalSyncEvent;
    if FreeThread then Thread.Free;
{$IF Defined(MSWINDOWS)}
    EndThread(Result);
{$ELSEIF Defined(POSIX)}
    // Directly call pthread_exit since EndThread will detach the thread causing
    // …
Run Code Online (Sandbox Code Playgroud)

delphi

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