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


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Soket bağlantı hata penceresi ... Gürcan 0 48 19-07-2019, Saat: 18:00
Son Yorum: Gürcan
  Çözüldü-sql kodu dengesiz çalışıyor sadikacar60 4 240 11-07-2019, Saat: 14:28
Son Yorum: mcuyan
  Yavru formda sifre turetirken hata alıyorum. burak 12 686 06-05-2019, Saat: 02:14
Son Yorum: OBK
  Delphi XE6'da oluşan XML XE'de farklı. WSDL Wizard hata yapar mı ? boreas 7 492 22-04-2019, Saat: 12:55
Son Yorum: boreas
  Alphaskin Componenti ile TeeChart kullanımında hata wiseman 5 321 16-04-2019, Saat: 13:24
Son Yorum: wiseman



Konuyu Okuyanlar: 1 Ziyaretçi