读书人

Delphi 怎么给printf和scanf类型的函数

发布时间: 2012-06-15 19:37:05 作者: rapoo

Delphi 如何给printf和scanf类型的函数传递可变参数
因为需要调用visa dll里面的viscanf,viprintf函数,所以必须传递可变参数。

c++代码如下:
声明:
UINT viScanf (ViSession vi, char* readFmt, ...);

使用:
char buf[255];
viPrintf(vi,("measure:voltage:dc?\n ");
viScanf(vi,"%#t",buf);


delphi代码我是这样写的:
声明:
function viPrintf(vi:ViSession;writFmt:ViString):ViStatus;cdecl varargs;external 'visa32.dll';
function viScanf(vi:ViSession;readFmt:PChar):ViStatus;cdecl varargs;external 'visa32.dll';

使用:
viPrintf(vi,PChar('measure:voltage:dc? '#10''));
viScanf(vi,'%#t',buf);

已试出viPrintf可以把内容发出去,但 viScanf无法取回数据。
有请各位高手指教!


[解决办法]
viScanf(vi,'%#t',buf);
难道不应该是
viScanf(vi,Pchar('%#t'),buf); 吗?
[解决办法]
这个……难度很大,目前还没有如此智能化的东东,友情支持楼主了
[解决办法]
C++中的可变参,在Delphi中使用时,可以参考Format函数的方式。
const Args: array of const
[解决办法]

探讨
C++中的可变参,在Delphi中使用时,可以参考Format函数的方式。
const Args: array of const

读书人网 >.NET

热点推荐