我需要调用非静态C++成员函数的Delphi thiscall调用约定
因此我需要使用thiscall
调用约定。
德尔福不支持这种调用约定。
因此,在我可以调用任何成员函数之前,我必须手动推送堆栈中的参数。
asm
mov ecx, myClassPointer
end;
这工作正常,但我正在寻找更好的方式来做到这一点。
此刻,我在调用函数之前每次都用classpointer调用asm代码,这并不好。
因为我不是德尔福专家,我想知道你是否可以声明自己的调用约定或自动调用那些thiscall类的方法。
我为微软的丰富编辑界面写了一些[这个适配器](http://www.cs.wisc.edu/~rkennedy/windowless-rtf),它错误地忽略了调用约定。我的适配器在两个方向上都包装接口,所以Delphi代码可以调用微软的代码,微软的代码可以调用回Delphi接口,并且每一方都认为另一方提供了预期的调用约定。也许你会觉得它很有用。 –