Çok Yakında Yeni Bir Arayüzle karşınızdayız! http://yeni.delphican.com/

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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.AdbInterfaceInfo* next_interface = (AdbInterfaceInfo*)(&entry_buffer[0]);

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

evet hocam. Şu linkten aldım bakabilirsiniz.

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(10-02-2019, Saat: 22:09)savasabd Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
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
#15
Selamlar; Bu kod üzerinden SeriNumarası gibi bilgileri nasıl okuyabiliriz? ayrıca adb komutlarını adb.exe yi kullanmadan bu dll üzerinden yapabilirmiyiz?
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Aign:=alLeft kullanımındaki hata 41linea41 4 228 13-09-2019, Saat: 22:38
Son Yorum: 41linea41
  [ÇÖZÜLDÜ]Server İşletim Sisteminde Çalışan Windows Servis te is not a valid date Hata theSinan 9 418 28-08-2019, Saat: 10:05
Son Yorum: adelphiforumz
  ÇÖZÜLDÜ-daha önce çalışan kod hata veriyor firebird sadikacar60 5 296 25-08-2019, Saat: 21:07
Son Yorum: mcuyan
  Soket bağlantı hata penceresi ... Gürcan 0 193 19-07-2019, Saat: 18:00
Son Yorum: Gürcan
  Çözüldü-sql kodu dengesiz çalışıyor sadikacar60 4 538 11-07-2019, Saat: 14:28
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi