C++写的DLL接口:
bool HLGetFingerM (HANDLE hHandle, LPBYTE &rpData, DWORD &rdwLen);
功能描述:获取语义指纹
参数说明:hHandle [IN] 分词句柄
          rpData [OUT] 存放语义指纹的指针
          rdwLen [OUT] 语义指纹长度
返 回 值:是否成功
其他相关函数:无这个C++写的DLL接口要把他转为适合DELPHI调用的,中间那两个指针要怎么写啊?function HLGetFingerM (hHandle:HANDLE ; LPBYTE &rpData, DWORD &rdwLen):boolean;stdcall;external 'HLSSplit.dll' name 'HLGetFingerM';
就中间那两个LPBYTE &rpData, DWORD &rdwLen不知道怎么转定义!!

解决方案 »

  1.   

    function HLGetFingerM (hHandle:HANDLE ; var rpData: pbyte, var rdwLen: dword):boolean;stdcall;external 'HLSSplit.dll' name 'HLGetFingerM';
      

  2.   

    LPBYTE &rpData, DWORD &rdwLen--type
      PBYTE = ^Byte;var rpData: PBYTE; var rdwLen DWORD;前面一个就是二级指针了。
      

  3.   

    一个示例:)// testdll.cpp : Defines the entry point for the DLL application.
    //#include "stdafx.h"BOOL APIENTRY DllMain( HANDLE hModule, 
                           DWORD  ul_reason_for_call, 
                           LPVOID lpReserved
     )
    {
        return TRUE;
    }extern "C" __declspec(dllexport) void foo(char* &s, int &i){
    s = "hello world!";
    i = 123;
    }program testdll;{$APPTYPE CONSOLE}uses
      SysUtils;procedure foo(var s: pchar; var i: integer); cdecl; external 'testdll.dll';var
      s: pchar;
      i: integer;
    begin
      foo(s, i);
      writeln(s, i);
      readln;
    end.