C++中定义的动态库函数,并在delphi中已调用。
int GenMac(unsigned char* bMacKey, const char* buffers, int iBuffLen, char* Mac)    
{       
        ...... unsigned char block[100];  ...... memcpy(Mac, block, 8) ;

sprintf(Mac,"%8x",Mac); /
return 0;
}
请问:1、在Delphi中调用此函数,相关的变量应如何定义,以获取返回的Mac值(Mac值应为8位)。
      2、若希望获取的Mac值能显示为 2ff221f0, 那么在Delphi中应做怎样的处理。
谢谢!

解决方案 »

  1.   

    char* Mac)  
    他这里是个指针,你把参数传进去,调用完 *Mac 的值就是你要的结果,
    显示用inttohex
      

  2.   

    function GenMac(bMacKey: PChar; const buffers: PChar, iBuffLen: integer, Mac: PChar): integer; stdcall;   
      

  3.   

    更正:
    function GenMac(bMacKey: PChar; const buffers: PChar; iBuffLen: integer; Mac: PChar): integer; stdcall;  
      

  4.   

    function GenMac(bMacKey: PChar; const buffers: PChar; iBuffLen: integer; Mac: PChar): integer; cdecl;他那段C++代码,用的是C++默认调用方式
      

  5.   

    楼上几位说的基本正确了。
    等楼主自己测试在说了。
    对于2:
    Format('X2')