pipt_findpoint
This function returns the point number for the given tagname. The tagname may be a long tagname or tagname. If found, the matching tagname in Point Database format is returned: tagnames are returned with delimiters and always 12 characters long; long tagnames are returned in upper case.C format
int32 pipt_findpoint( 
char PIPTR * tagname,
int32 PIPTR * pt );Returns
>0
 System error
0
 Success
-2
 Passed tag is all spaces
-5
 Tag not found, or not yet connected to a server
 
Arguments
tagname (passed, returned)
Tagname (null terminated and returned in uppercase)
pt (returned)
Point number
pi Toolkit Reference
ParseFindTag, FindPoint
Usage NotesIt is the calling routine抯 responsibility to ensure the tagname buffer is large enough for the returned tagname. Tagnames are 12 characters long, long tagnames are up to 80 characters long. When the PI-API connects to a Server, it determines if long tag names are supported. Before a connection is made it is assumed that long tagnames are not supported. Because of this, calling pipt_findpoint before establishing a server connection will return -5 if the passed tagname contains more than 12 characters. 
上面的是这个函数的用法及介绍
C format
int32 pipt_findpoint( 
char PIPTR * tagname,
int32 PIPTR * pt );
这是函数定义,int32 PIPTR * pt 对应的delphi 类型是什么?

解决方案 »

  1.   

    char PIPTR * tagname,可以译成 tagname: array of Char没有问题
    但是
    int32 PIPTR * pt   译成 array of int32  调用的时候就提示写地址非法
    我是这样调用的
    pipt_findpoint(tagname,pt);
    是不是调用方法有问题啊,请帮忙看一下,谢谢了
      

  2.   

    我是这样定义的
    pipt_findpoint(tagname:array of Char,var pt:array of integer):Integer;stdcall;external 'piapi32.dll';
      

  3.   

           tagname:pchar;pt:pinteger
    或者用 var tagname:char;var pt :integer;你的 array of integer本来就是一个数组的首地址,不要再VAR 了
      

  4.   


    因为还要调用DLL文件,能告诉我你的邮箱吗?我EMail给你