Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Bu kodu çevirirken nerede hata yapıyorum ?
#11
(10-02-2019, Saat: 20:18)ssahinoglu Adlı Kullanıcıdan Alıntı: AdbInterfaceInfo* next_interface = (AdbInterfaceInfo*)(&entry_buffer[0]);

karşılığı doğru mu?

evet hocam. Şu linkten aldım bakabilirsiniz.

https://github.com/lidongqiang/FWFactory...reModifier
Cevapla
#12
unit Unit1;

interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Procedure LoadMyLibrary(FileName: String);
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

 type

ADBAPIHANDLE = Pointer;
type
AdbInterfaceInfo =  packed record
  class_id: TGUID;
  flags : LongWord;
  device_name: Pwidechar;
end;
type
PAdbInterfaceInfo=^AdbInterfaceInfo ;
var
Form1: TForm1;
AdbLoad: THandle;
enum_handle: ADBAPIHANDLE;

AdbEnumInterfaces:  function(class_id: TGUID; exclude_not_present: Boolean;
                                               exclude_removed:     Boolean;
                                               active_only:         Boolean): ADBAPIHANDLE; cdecl;

AdbNextInterface:  function(adb_handle:ADBAPIHANDLE;Info :  PAdbInterfaceInfo;Size : PLongWord): Bool; cdecl;
implementation

{$R *.dfm}

Procedure TForm1.LoadMyLibrary(FileName: String);
begin
  AdbLoad := LoadLibrary(PWideChar(FileName));
    if AdbLoad = 0 then begin
        MessageBox(0,'Hata1',0,0);
        exit;
    end;
  AdbEnumInterfaces := GetProcAddress(Adbload, 'AdbEnumInterfaces');
  AdbNextInterface  := GetProcAddress(AdbLoad, 'AdbNextInterface');
  //AdbCloseHandle    := GetProcAddress(AdbLoad, 'AdbCloseHandle');
    if @AdbEnumInterfaces = nil then
    begin
       MessageBox(0,'Hata2',0,0);
       exit;
    end;

         if @AdbNextInterface = nil then
         begin
       MessageBox(0,'Hata3',0,0);
       exit;
    end;



end;


procedure TForm1.Button1Click(Sender: TObject);

const
  ANDROID_USB_CLASS_ID: TGUID = '{F72FE0D4-CBCB-407d-8814-9ED673D0DD6B}';
  var
  Checkinfo : PAdbInterfaceInfo;
  Size : LongWord;
  entry_buffer: array [0..2047] of byte;
begin
 Checkinfo:=PAdbInterfaceInfo(@entry_buffer[0]);
size:=Sizeof(entry_buffer);
enum_handle := AdbEnumInterfaces(ANDROID_USB_CLASS_ID, True, True, True);
if enum_handle=nil  then
begin
            ShowMessage('ScanAdbDevice-->AdbEnumInterfaces failed');
exit;
end;

if AdbNextInterface(enum_handle,Checkinfo,@size) then
 ShowMessage('başarılı')
 else
 ShowMessage('hata var');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 LoadMyLibrary('AdbWinApi.dll');

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FreeLibrary(Adbload);

end;

end.


Kodda bir çok hata vardı ,ben yeniden düzenledim, cihaz bağlıyken  başarılı sonucu döndürdü.Ayrıca pointerler'la işiniz bitince silmeyi unutmayın.Kolay gelsin.
Herhangi bir basit problem, hakkında yeterince toplantı yapılarak, çözümsüz hale getirilebilir.

Cevapla
#13
(10-02-2019, Saat: 22:09)savasabd Adlı Kullanıcıdan Alıntı:
unit Unit1;

interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Procedure LoadMyLibrary(FileName: String);
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

 type

ADBAPIHANDLE = Pointer;
type
AdbInterfaceInfo =  packed record
  class_id: TGUID;
  flags : LongWord;
  device_name: Pwidechar;
end;
type
PAdbInterfaceInfo=^AdbInterfaceInfo ;
var
Form1: TForm1;
AdbLoad: THandle;
enum_handle: ADBAPIHANDLE;

AdbEnumInterfaces:  function(class_id: TGUID; exclude_not_present: Boolean;
                                               exclude_removed:     Boolean;
                                               active_only:         Boolean): ADBAPIHANDLE; cdecl;

AdbNextInterface:  function(adb_handle:ADBAPIHANDLE;Info :  PAdbInterfaceInfo;Size : PLongWord): Bool; cdecl;
implementation

{$R *.dfm}

Procedure TForm1.LoadMyLibrary(FileName: String);
begin
  AdbLoad := LoadLibrary(PWideChar(FileName));
    if AdbLoad = 0 then begin
        MessageBox(0,'Hata1',0,0);
        exit;
    end;
  AdbEnumInterfaces := GetProcAddress(Adbload, 'AdbEnumInterfaces');
  AdbNextInterface  := GetProcAddress(AdbLoad, 'AdbNextInterface');
  //AdbCloseHandle    := GetProcAddress(AdbLoad, 'AdbCloseHandle');
    if @AdbEnumInterfaces = nil then
    begin
       MessageBox(0,'Hata2',0,0);
       exit;
    end;

         if @AdbNextInterface = nil then
         begin
       MessageBox(0,'Hata3',0,0);
       exit;
    end;



end;


procedure TForm1.Button1Click(Sender: TObject);

const
  ANDROID_USB_CLASS_ID: TGUID = '{F72FE0D4-CBCB-407d-8814-9ED673D0DD6B}';
  var
  Checkinfo : PAdbInterfaceInfo;
  Size : LongWord;
  entry_buffer: array [0..2047] of byte;
begin
 Checkinfo:=PAdbInterfaceInfo(@entry_buffer[0]);
size:=Sizeof(entry_buffer);
enum_handle := AdbEnumInterfaces(ANDROID_USB_CLASS_ID, True, True, True);
if enum_handle=nil  then
begin
            ShowMessage('ScanAdbDevice-->AdbEnumInterfaces failed');
exit;
end;

if AdbNextInterface(enum_handle,Checkinfo,@size) then
 ShowMessage('başarılı')
 else
 ShowMessage('hata var');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 LoadMyLibrary('AdbWinApi.dll');

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FreeLibrary(Adbload);

end;

end.


Kodda bir çok hata vardı ,ben yeniden düzenledim, cihaz bağlıyken  başarılı sonucu döndürdü.Ayrıca pointerler'la işiniz bitince silmeyi unutmayın.Kolay gelsin.

hocam çok çok teşekkür ederim. yardımcı olduğunuz için.
Cevapla
#14
(11-02-2019, Saat: 13:29)seci20 Adlı Kullanıcıdan Alıntı:
(10-02-2019, Saat: 22:09)savasabd Adlı Kullanıcıdan Alıntı:
unit Unit1;

interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Procedure LoadMyLibrary(FileName: String);
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

 type

ADBAPIHANDLE = Pointer;
type
AdbInterfaceInfo =  packed record
  class_id: TGUID;
  flags : LongWord;
  device_name: Pwidechar;
end;
type
PAdbInterfaceInfo=^AdbInterfaceInfo ;
var
Form1: TForm1;
AdbLoad: THandle;
enum_handle: ADBAPIHANDLE;

AdbEnumInterfaces:  function(class_id: TGUID; exclude_not_present: Boolean;
                                               exclude_removed:     Boolean;
                                               active_only:         Boolean): ADBAPIHANDLE; cdecl;

AdbNextInterface:  function(adb_handle:ADBAPIHANDLE;Info :  PAdbInterfaceInfo;Size : PLongWord): Bool; cdecl;
implementation

{$R *.dfm}

Procedure TForm1.LoadMyLibrary(FileName: String);
begin
  AdbLoad := LoadLibrary(PWideChar(FileName));
    if AdbLoad = 0 then begin
        MessageBox(0,'Hata1',0,0);
        exit;
    end;
  AdbEnumInterfaces := GetProcAddress(Adbload, 'AdbEnumInterfaces');
  AdbNextInterface  := GetProcAddress(AdbLoad, 'AdbNextInterface');
  //AdbCloseHandle    := GetProcAddress(AdbLoad, 'AdbCloseHandle');
    if @AdbEnumInterfaces = nil then
    begin
       MessageBox(0,'Hata2',0,0);
       exit;
    end;

         if @AdbNextInterface = nil then
         begin
       MessageBox(0,'Hata3',0,0);
       exit;
    end;



end;


procedure TForm1.Button1Click(Sender: TObject);

const
  ANDROID_USB_CLASS_ID: TGUID = '{F72FE0D4-CBCB-407d-8814-9ED673D0DD6B}';
  var
  Checkinfo : PAdbInterfaceInfo;
  Size : LongWord;
  entry_buffer: array [0..2047] of byte;
begin
 Checkinfo:=PAdbInterfaceInfo(@entry_buffer[0]);
size:=Sizeof(entry_buffer);
enum_handle := AdbEnumInterfaces(ANDROID_USB_CLASS_ID, True, True, True);
if enum_handle=nil  then
begin
            ShowMessage('ScanAdbDevice-->AdbEnumInterfaces failed');
exit;
end;

if AdbNextInterface(enum_handle,Checkinfo,@size) then
 ShowMessage('başarılı')
 else
 ShowMessage('hata var');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 LoadMyLibrary('AdbWinApi.dll');

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  FreeLibrary(Adbload);

end;

end.


Kodda bir çok hata vardı ,ben yeniden düzenledim, cihaz bağlıyken  başarılı sonucu döndürdü.Ayrıca pointerler'la işiniz bitince silmeyi unutmayın.Kolay gelsin.

hocam çok çok teşekkür ederim. yardımcı olduğunuz için.

Rica ederim, kolay gelsin.
Herhangi bir basit problem, hakkında yeterince toplantı yapılarak, çözümsüz hale getirilebilir.

Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Wmi kullanırken hata vermesi. seci20 17 305 20-02-2019, Saat: 18:33
Son Yorum: mrmarman
  Hata 'Variable declared but never used' OZCANK 6 233 09-02-2019, Saat: 19:43
Son Yorum: ssahinoglu
  QuickReport, Delphi 7, Windows 10 HATA ! [Çözüldü] SenayAkgun 13 357 26-01-2019, Saat: 02:45
Son Yorum: SenayAkgun
  FireDac Hata: DriverName or add DriverID ahmetb 6 221 12-01-2019, Saat: 04:08
Son Yorum: ahmetb
  Power Onguard ile makine kodu alma cinarbil 4 331 12-10-2018, Saat: 16:22
Son Yorum: cinarbil



Konuyu Okuyanlar: 1 Ziyaretçi