DLL -> PAS cevirici

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikut

DLL -> PAS cevirici

Mesaj gönderen ikut »

Merhaba

Bu işi yapan headconv ve h2pas dışında bir program biliyormusunuz.

Saygılar
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Bu işin tam otomatik bir yolu yok. Biraz uğraşmak zorunda kalacaksın.
ikut

Mesaj gönderen ikut »

fduman yazdı:Bu işin tam otomatik bir yolu yok. Biraz uğraşmak zorunda kalacaksın.
merhaba

abi bir çok olayı çözdüm parametresiz fonksiyonlarda bir sorun yok. char kullanan fonksiyonlarda sorun var. şöyleki char array kullansamda bilgi gelmiyor, pchar kullasamda bilgi alamıyorum.

bunun cevrimi nasıl olur bir bilsem..

saygılar
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Nasıl birşey yolla, bakalım.
ikut

Colar aşağıda

Mesaj gönderen ikut »

fduman yazdı:Nasıl birşey yolla, bakalım.
Merhaba

abi ilgili kodlar aşağıda;

bu header dosyası

Kod: Tümünü seç

/*******************************************************************************
*                      
*  Filename:      K:\keyfob\tony\winfob\Csp2.h
*
*  Copyright(c) Symbol Technologies Inc., 2001
*  
*  Description:     This file provides the user API interface
*                   function prototypes for Symbol's CS1504 Consumer Scanning 
*                   Products as Dynamic Link Library. When 
*                   compiled into a DLL, the user can access 
*                   all of the functions available for the 
*                   Symbol CS1504.
*
*  Author:          Tony Russo
*
*  Creation Date:   4/04/2001
*
*  Derived From:    New File
*
*  Edit History:
*   $Log:   U:/keyfob/archives/winfob/examples/borlandc/CSP2.H_V  $
 * 
 *    Rev 1.0   Jan 29 2002 14:02:52   pangr
 * Initial revision.
* 
*    Rev 1.0   05 Apr 2001 09:24:16   RUSSOA
* Initial revision.
*
*
*	Added Polling headers and helper functions 4/6/01 CWB
*******************************************************************************/
                    
/*******************************************************************************
* Include Files
*******************************************************************************/

/*******************************************************************************
* Defines
*******************************************************************************/ 
#ifdef DLL_IMPORT_EXPORT
    #undef DLL_IMPORT_EXPORT
#endif

#ifdef DLL_SOURCE_CODE
    #define DLL_IMPORT_EXPORT __declspec(dllexport) __stdcall
#else
    #define DLL_IMPORT_EXPORT __declspec(dllimport) __stdcall
#endif

#ifdef __cplusplus
    #define NoMangle extern "C"
#else
    #define NoMangle
#endif

// Returned status values...
#define STATUS_OK                   ((long) 0)
#define COMMUNICATIONS_ERROR        ((long)-1)  
#define BAD_PARAM                   ((long)-2)
#define SETUP_ERROR                 ((long)-3)
#define INVALID_COMMAND_NUMBER      ((long)-4)  
#define COMMAND_LRC_ERROR           ((long)-7)  
#define RECEIVED_CHARACTER_ERROR    ((long)-8)  
#define GENERAL_ERROR               ((long)-9)  
#define FILE_NOT_FOUND              ((long) 2)
#define ACCESS_DENIED               ((long) 5)

// Parameter values...
#define PARAM_OFF                   ((long) 0) 
#define PARAM_ON                    ((long) 1) 

#define DETERMINE_SIZE              ((long) 0)

/*******************************************************************
 *              Communications setup section...                    *
 *******************************************************************/

#ifndef COM1
    #define COM1                    ((long) 0)
    #define COM2                    ((long) 1)
    #define COM3                    ((long) 2)
    #define COM4                    ((long) 3)
    #define COM5                    ((long) 4)
    #define COM6                    ((long) 5)
    #define COM7                    ((long) 6)
    #define COM8                    ((long) 7)
    #define COM9                    ((long) 8)
    #define COM10                   ((long) 9)
    #define COM11                   ((long)10)
    #define COM12                   ((long)11)
    #define COM13                   ((long)12)
    #define COM14                   ((long)13)
    #define COM15                   ((long)14)
    #define COM16                   ((long)15)
#endif

/*******************************************************************************
* Public Variables
*******************************************************************************/ 

/*******************************************************************************
* Local Variables
*******************************************************************************/ 

/*******************************************************************************
* Public Function Prototypes 
*******************************************************************************/ 
// Communications
NoMangle long DLL_IMPORT_EXPORT csp2Init(long nComPort);
NoMangle long DLL_IMPORT_EXPORT csp2Restore(void);
NoMangle long DLL_IMPORT_EXPORT csp2WakeUp(void);
NoMangle long DLL_IMPORT_EXPORT csp2DataAvailable(void);

// Basic Functions
NoMangle long DLL_IMPORT_EXPORT csp2ReadData(void);
NoMangle long DLL_IMPORT_EXPORT csp2ClearData(void);
NoMangle long DLL_IMPORT_EXPORT csp2PowerDown(void);
NoMangle long DLL_IMPORT_EXPORT csp2GetTime(unsigned char aTimeBuf[]);
NoMangle long DLL_IMPORT_EXPORT csp2SetTime(unsigned char aTimeBuf[]);
NoMangle long DLL_IMPORT_EXPORT csp2SetDefaults(void);

// CSP Data Get
NoMangle long DLL_IMPORT_EXPORT csp2GetPacket(char szBarData[], long nBarcodeNumber, long nMaxLength);
NoMangle long DLL_IMPORT_EXPORT csp2GetDeviceId(char szDeviceId[8], long nMaxLength);
NoMangle long DLL_IMPORT_EXPORT csp2GetProtocol(void);
NoMangle long DLL_IMPORT_EXPORT csp2GetSystemStatus(void);
NoMangle long DLL_IMPORT_EXPORT csp2GetSwVersion(char szSwVersion[9], long nMaxLength);
NoMangle long DLL_IMPORT_EXPORT csp2GetASCIIMode(void);
NoMangle long DLL_IMPORT_EXPORT csp2GetRTCMode(void);

// DLL Configuration
NoMangle long DLL_IMPORT_EXPORT csp2SetRetryCount(long nRetryCount);
NoMangle long DLL_IMPORT_EXPORT csp2GetRetryCount(void);

// Miscellaneous
NoMangle long DLL_IMPORT_EXPORT csp2GetDllVersion(char szDllVersion[], long nMaxLength);
NoMangle long DLL_IMPORT_EXPORT csp2TimeStamp2Str(unsigned char *Stamp, char *value, long nMaxLength);
NoMangle long DLL_IMPORT_EXPORT csp2GetCodeType(unsigned long CodeID, char *CodeType, long nMaxLength);

// Advanced functions
NoMangle long DLL_IMPORT_EXPORT csp2ReadRawData(char aBuffer[], long nMaxLength);
NoMangle long DLL_IMPORT_EXPORT csp2SetParam(long nParam, char szString[], long nMaxLength);
NoMangle long DLL_IMPORT_EXPORT csp2GetParam(long nParam, char szString[], long nMaxLength);
NoMangle long DLL_IMPORT_EXPORT csp2Interrogate(void);
NoMangle long DLL_IMPORT_EXPORT csp2GetCTS(void);
NoMangle long DLL_IMPORT_EXPORT csp2SetDTR(long nOnOff);
NoMangle long DLL_IMPORT_EXPORT csp2SetDebugMode(long nOnOff);
NoMangle long DLL_IMPORT_EXPORT csp2StartPolling(FARPROC csp2CallBack);
NoMangle long DLL_IMPORT_EXPORT csp2StopPolling(void);

/*******************************************************************************
* Local Functions Prototypes
*******************************************************************************/ 

/*******************************************************************
 *                       End of file                               *
 *******************************************************************/
bu benim çevirdiğim unit
unit uBarcodeReader;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrlsEh, ComCtrls;


const
STATUS_OK : Integer= 0;
COMMUNICATIONS_ERROR : Integer= -1;
BAD_PARAM : Integer= -2;
SETUP_ERROR : Integer=-3;
INVALID_COMMAND_NUMBER : Integer=-4;
COMMAND_LRC_ERROR : Integer=-7;
RECEIVED_CHARACTER_ERROR : Integer=-8;
GENERAL_ERROR : Integer=-9;
FILE_NOT_FOUND : Integer= 2;
ACCESS_DENIED : Integer= 5;

{/// Parameter values... }
PARAM_OFF : Integer=0;
PARAM_ON : Integer=1;
DETERMINE_SIZE : Integer=0;
{+//****************************************************************** }
{-* Communications setup section...* }
{=****************************************************************** }
{$IFNDEF COM1}
const
COM1 :Integer= 0;
COM2 :Integer= 1;
COM3 :Integer= 2;
COM4 :Integer= 3;
COM5 :Integer= 4;
COM6 :Integer= 5;
COM7 :Integer= 6;
COM8 :Integer= 7;
COM9 :Integer= 8;
COM10 :Integer= 9;
COM11 :Integer=10;
COM12 :Integer=11;
COM13 :Integer=12;
COM14 :Integer=13;
COM15 :Integer=14;
COM16 :Integer=15;
{$ENDIF}


type
TFrmBarcodeReader = class(TForm)
grp1: TGroupBox;
txtLabel2: TStaticText;
cbPortId: TDBComboBoxEh;
btn1: TButton;
statSbar: TStatusBar;
mmoLog: TMemo;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

Function csp2Init(nComPort: LongInt): Longint; stdcall; External 'csp2.dll';
Function csp2WakeUp :Longint; stdcall; External 'csp2.dll';
Function csp2Restore :Longint; stdcall; External 'csp2.dll';
Function csp2DataAvailable :Longint; stdcall; External 'csp2.dll';
{/// Basic Functions }
Function csp2ReadData : Longint; stdcall; External 'csp2.dll';
Function csp2ClearData : Longint; stdcall; External 'csp2.dll';
Function csp2PowerDown : Longint; stdcall; External 'csp2.dll';
Function csp2GetTime(aTimeBuf:PChar) : Longint; stdcall; External 'csp2.dll';
Function csp2SetTime(aTimeBuf:PChar) : Longint; stdcall; External 'csp2.dll';
Function csp2SetDefaults : Longint; stdcall; External 'csp2.dll';
{/// CSP Data Get }
Function csp2GetPacket(szBarData:Pchar; nBarcodeNumber: LongInt; nMaxLength: LongInt): Longint; stdcall; External 'csp2.dll';
Function csp2GetDeviceId(szDeviceId:Pchar; nMaxLength: LongInt) : Longint; stdcall; External 'csp2.dll';
Function csp2GetProtocol : Longint; stdcall; External 'csp2.dll';
Function csp2GetSystemStatus : Longint; stdcall; External 'csp2.dll';
Function csp2GetSwVersion(szSwVersion: PChar; nMaxLength: LongInt): Longint; stdcall; External 'csp2.dll';
Function csp2GetASCIIMode : Longint; stdcall; External 'csp2.dll';
Function csp2GetRTCMode : Longint; stdcall; External 'csp2.dll';
{/// DLL Configuration }
Function csp2SetRetryCount(nRetryCount: LongInt): Longint; stdcall; External 'csp2.dll';
Function csp2GetRetryCount : Longint; stdcall; External 'csp2.dll';
{/// Miscellaneous }
Function csp2GetDllVersion(szDllVersion: PChar;nMaxLength: LongInt): Longint; stdcall; External 'csp2.dll';
Function csp2TimeStamp2Str(var Stamp: Byte;value: PChar;nMaxLength: LongInt): Longint; stdcall; External 'csp2.dll';
Function csp2GetCodeType (CodeID: LongInt;CodeType: PChar;nMaxLength: LongInt): Longint; stdcall; External 'csp2.dll';
{/// Advanced functions }
Function csp2ReadRawData (aBuffer: PChar;nMaxLength: LongInt): Longint; stdcall; External 'csp2.dll';
Function csp2SetParam(nParam: LongInt;szString: PChar;nMaxLength: LongInt): Longint; stdcall; External 'csp2.dll';
Function csp2GetParam(nParam: LongInt;szString: PChar;nMaxLength: LongInt): Longint; stdcall; External 'csp2.dll';
Function csp2Interrogate: Longint; stdcall; External 'csp2.dll';
Function csp2GetCTS: Longint; stdcall; External 'csp2.dll';
Function csp2SetDTR (nOnOff: LongInt): Longint; stdcall; External 'csp2.dll';
Function csp2SetDebugMode (nOnOff: LongInt): Longint; stdcall; External 'csp2.dll';
// Function csp2StartPolling (csp2CallBack: Pointer): Longint; stdcall; External 'csp2.dll';
Function csp2StopPolling: Longint; stdcall; External 'csp2.dll';


var
FrmBarcodeReader: TFrmBarcodeReader;

ComStarted : Boolean;
Ret : Longint;
Port : Integer;
implementation

{$R *.dfm}

procedure TFrmBarcodeReader.btn1Click(Sender: TObject);
var
// s1,s2 :array[0..39] of Char;
i,j,l,k:Integer;
nlen:Integer;
bcode:PChar;
Mode:Integer;
barcode:PChar;
t1 :PChar;
t2 :PChar;
t3 :PChar;
t4 :PChar;
tb :Pchar;
timeStamp:PChar;
codetype:Char;
dllver :Array[0..19] of Char;
t2s :string;
begin

bcode:=''; barcode:=''; timeStamp:=''; codetype:='1';
t1 :=''; t2 :=''; t3 :=''; t4 :=''; tb:=nil;
t2s :='';
// FillChar(dllver,SizeOf(dllver),0);

mmoLog.Lines.Clear;
// cbPortID.ItemIndex:=0;
// Ret:=CspReader.csp2WakeUp;
// FillChar(dllver,SizeOf(dllver),0);
// csp2GetDllVersion(dllver,SizeOf(dllver));
// ShowMessage(dllver);

Port:=COM2;
Ret:=csp2Init(Port);
if (ret=STATUS_OK) Then
begin
ShowMessage('Cihaz açıldı');
ComStarted:=true;
end;
Ret:=csp2DataAvailable();
ShowMessage(IntToStr(ret)+' demek hafızada barkod var');
Ret:=csp2GetASCIIMode() ;
If Ret=PARAM_ON then ShowMessage('asccii modda');
ret:=csp2ReadData();
// borkod yoksa çıkılacak;
ShowMessage(IntToStr(ret)+' barkod var');
// tb:=Nil;
If ret >0 then
begin
nlen:=csp2GetDeviceId(tb, 9);
ShowMessage('device id '+tb);
nlen:=csp2GetPacket(tb,0,500);
ShowMessage('device id '+tb);
end;
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Re: Colar aşağıda

Mesaj gönderen fduman »

Yanlış birşey göremedim. İyi çevirmişsin.
ikut yazdı:

Kod: Tümünü seç

..
NoMangle long DLL_IMPORT_EXPORT csp2GetDeviceId(char szDeviceId[8], long nMaxLength);
Bunu düzgün çevirmemişsin. Çok önemli değil, ama:

Kod: Tümünü seç

       nlen:=csp2GetDeviceId(tb, 9);
       ShowMessage('device id '+tb);
       nlen:=csp2GetPacket(tb,0,500);
       ShowMessage('device id '+tb);
      end;
Burada tb'ye bellek tahsisi yapmamışsın. GetMem ile belirli miktarda bellek ayırıp daha sonra freemem ile geri vermelisin.
Cevapla