小编Hal*_*Hal的帖子

如何根据泛型类型声明指针?

我有一个这样的课:

type A = class
    procedure<T> DoStuff(tPtr: ^T);
end;
Run Code Online (Sandbox Code Playgroud)

但是当我尝试编译时,Delphi给了我这个错误:

[DCC Error] RPML.pas(57): E2029 Identifier expected but '^' found
Run Code Online (Sandbox Code Playgroud)

如何在Delphi过程中使用指向参数化类型的指针?我不想让整个类成为模板类.

delphi generics parameters pointers delphi-2010

9
推荐指数
2
解决办法
2282
查看次数

DCC无法弥补功能所需的参数数量

我在这个原型的单元中声明了一个函数:

function MapFunction(process: THANDLE; func: Pointer; size: Cardinal) : Pointer;
Run Code Online (Sandbox Code Playgroud)

我用它来称呼它:

stub := MapFunction(proc, remoteStub, 80);
Run Code Online (Sandbox Code Playgroud)

当我编译时,我得到这个错误,停止编译:

[DCC错误] test.pas(22):E2035实际参数不足

我摆弄了一段时间,然后决定添加更多参数来看看它在想什么.所以我打电话给它:

stub := MapFunction(proc, remoteStub, 80, 1, 1, 1, 1, 1);
Run Code Online (Sandbox Code Playgroud)

然后DCC通知我:

[DCC错误] test.pas(22):E2035实际参数不足

[DCC错误] test.pas(22):E2034实际参数太多

并注释掉该行允许单元成功编译.

我只有一个问题:什么?

我还应该提到它remoteStub是一个成员变量,这个函数调用是在该类的成员中.并且这种特殊方法是模板方法.

delphi parameters delphi-2010

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

标签 统计

delphi ×2

delphi-2010 ×2

parameters ×2

generics ×1

pointers ×1