【发布时间】:2011-09-26 17:11:42
【问题描述】:
我有 2 部分应用程序,Delphi 和 C,我有 2 个问题 1.给Delphi传参数最快的方法是什么?
procedure name(Data: string); // Data is Copied to another location before passing so its slow
procedure name(var Data: string); // Data is Passed by pointer, Faster
procedure name(const Data: string); // unknown
-
我想通过 c 中的指针传递参数,我有一个 char 数组和一个函数,我不想传递整个数组,剪切它的第一部分并传递其余部分
void testfunction(char **Data) { printf("Data = %d\n", *Data); return; } int main() { char Data[] = "TEST FUNCTION"; testfunction(&&Data[4]); // Error return 0; }
谢谢
【问题讨论】:
-
如果需要将字符串数据从C dll传递给Delphi,在delphi接口中使用PAnsiChar或PWideChar类型,相当于LPCSTR(char *)和LPWSTR(wchar_t *)。跨度>
-
@Warren
LPCSTR实际上是const char*。通常你会配对LPSTR和LPWSTR或LPCSTR和LPCWSTR。 -
没错。我无法再编辑该评论,因此感谢您注意到这一点。
-
-1 表示完全错误的前提。你的程序崩溃,你问的是速度!?首先关注正确性。一旦它工作,然后担心速度。单词中的所有速度都不会帮助错误的程序。
标签: c delphi parameters parameter-passing