我有一个这样的课:
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过程中使用指向参数化类型的指针?我不想让整个类成为模板类.
我在这个原型的单元中声明了一个函数:
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是一个成员变量,这个函数调用是在该类的成员中.并且这种特殊方法是模板方法.