小编HNB*_*HNB的帖子

Delphi"const of array"改为"varargs"

请帮忙!我需要这个转换来为Delphi编写一些C头的包装器.

举个例子:

function pushfstring(fmt: PAnsiChar): PAnsiChar; cdecl; varargs; external;

...

function PushString(fmt: AnsiString; const args: array of const): AnsiString;
begin
  Result := AnsiString(pushfstring(PAnsiString(fmt), args)); // it's incorrect :/
end;
Run Code Online (Sandbox Code Playgroud)

如何将"const of const"转换为"varargs"?

编辑:函数PushString实际上在记录中(我给出了一个简化的例子),我没有直接访问pushfstring.直接呼叫被排除在外.

编辑2:我为Delphi编写了LUA库的单元,这个案例对我来说非常重要.

指定并提供事情的所有细节 - 我在C中有这个功能:

LUA_API const char *(lua_pushfstring) (lua_State *L, const char *fmt, ...);
Run Code Online (Sandbox Code Playgroud)

在Delphi中我有这样的东西:

LuaLibrary.pas

{...}
interface
{...}
function lua_pushfstring(L: lua_State; fmt: PAnsiChar): PAnsiChar; cdecl; varargs;
implementation
{...}
function lua_pushfstring; external 'lua.dll'; // or from OMF *.obj file by $L
Run Code Online (Sandbox Code Playgroud)

dtxLua.pas

uses LuaLibrary;
{...} …
Run Code Online (Sandbox Code Playgroud)

arrays delphi variadic-functions

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

Delphi - 有关记录中方法的RTTI信息

如何在Delphi记录中提取有关方法的RTTI信息?是否可以使用新的Rtti装置?

delphi methods records rtti delphi-2010

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