各位老大,小弟我没用过vc,现有vc的dll,想调用却无从下手.希望各老大给个E-MAIL,我把文件发给你,帮我看下.(我也不知道怎么说问题,好象不是一般的DLL格式)

解决方案 »

  1.   

    不好意思,有些乱csapiv5.dll文件------动态连接库
    scsapiv5.lib文件------静态连接库
    scsapi.h文件------API函数声明文件的集合
    v5sahara_defs.h、v5sahara.h、v5functionprv.h、v5function.h、v5define.h、v5datatype.h----(1)基本常量
    #define TRUE 1 // 真值定义
    #define FALSE 0 // 假值定义
    #define MAXPACKETSIZE_OUT 96 // 一次读最大96个字节
    #define MAXPACKETSIZE_IN 32 // 一次写最大32个字节(2) communication problems (mostly) or API rejects
    typedef short scs_status;
    #define _scs_timeout        -1  // no data received from scanner
    #define _scs_invalid_input  -2  // parameter error
    #define _scs_rs232_err      -3  // port initialization failure
    #define _scs_dup_ID         -7  // ID sent from scanner is a duplicate
    #define _scs_underflow      -8  // required number of bytes were not received from scanner
    #define _scs_bad_data_redundant    -9  // Bad Label data on Read after Write   
    #define _scs_write_error_redundant -10 // Label indicated error on Write       
    #define _scs_packet_error   -11  // checksum error on packet recieved (version 5)
    #define _scs_partial_packet -12 // partial packet recieved before timeout
    #define _scs_interr_nack    -13 // transmission failure or invalid byte string received by interrogator
    #define _scs_interr_busy    -14 // interrogator busy processing previous command
    #define _scs_rx_aborted -15 // receive packet aborted by caller
    #define _scs_baud_returndefault -16 // baud rate returned to default value (2400 Baud).
    #define _scs_buffer_overflow -17 // buffer overflow, for List-ID mostly
    #define _scs_ascii_mode_error -18 // scanner was in ASCII return packet mode, packet lost and scanner reset
    #define _scs_scanner_not_found -19 // scanner wasn't found by quick-return (check-for-scanner) function(3) Universal Return Values for API calls:  apiStatus return codes
    #define _scs_OK             0x0000  // Operation was successful
    #define _scs_label_responds 0x0000  // Label responding to Isolate
    #define _scs_no_label       0x0082  // No Label detected
    #define _scs_label_stopped  0x0083  // Label stopped responding
    #define _scs_many_labels    0x0084  // More than one Label responding
    #define _scs_read_parity    0x0085  // Read parity error from Label
    #define _scs_bad_data       0x0086  // Bad Label data on Read after Write
    #define _scs_write_prot     0x0087  // Word already write protected
    #define _scs_write_error    0x0088  // Label indicated error on Write
    #define _scs_crc_error      0x0089  // CRC error reading label
    #define _scs_wp_failed      0x008a  // write protect command returned NOT WP
    #define _scs_cant_write     0x0090  // Can't write a '0' to an antifuse '1'
    #define _scs_erase_error    0x0092  // Label indicated failure on erase
    #define _scs_non_zero_mem   0x0099  // virgin memory is non-zero (production)
    #define _scs_end_of_tag     0x009a  // end of tag was reached for orthogonal read
    #define _scs_err            0x000f  // Command Error
    #define _scs_i2_timeout     0x00fa  // conveyor read timeout
    #define _scs_conv_timeout   0x00fb  // conveyor read timeout
    #define _scs_no_firmware    0x00fc  // Flash ROM not loaded or corrupt
    #define _scs_flash_wrt_fail 0x00fd  // flash failed to program
    #define _scs_command_error  0x00fe  // command error (bad packet type or parameter)所有API执行后都返回一个类型为apiStatus的值,由此值可判断函数执行是否成功,如果失败,可以根据对应的值查出失败原因等信息。七、 函数定义说明
    (1) Communication Functions for C
    apiStatus SaharaOpen (HANDLE hCom, char com_port[]);
    Parameters
    hCom - Scanner Handle
    com_port - Com Port Designation
    Return Value
    _scs_OK - Sucessful.
    _scs_rs232_error - Could not find or open COM port.
    Description
    Opens a sahara scanner on a COM port.
      

  2.   

    apiStatus是什么东东,怎么会有h文件,怎么引用?
    apiStatus SaharaOpen (HANDLE hCom, char com_port[]);
    在delphi中上面这个函数怎么写
      

  3.   

    #define _scs_packet_error   -11  
    ->
    const _scs_packet_error =  -11  這樣轉換即可看不出有什麼復雜的呀。。apiStatus SaharaOpen (HANDLE hCom, char com_port[]);apiStatus;
    apiStatus:應該什一個 enum之類的。。function SaharaOpen(hCom: THandle; com_port: PChar):
      

  4.   

    type apiStatus = (_scs_OK , _scs_rs232_error);
    or 直接返回一個 Integer;...因為返回的錯誤代碼可能很多 直接返回就是