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
  Alphaskin Componenti ile TeeChart kullanımında hata wiseman 5 113 16-04-2019, Saat: 13:24
Son Yorum: wiseman
  Delphi XE6'da oluşan XML XE'de farklı. WSDL Wizard hata yapar mı ? boreas 3 188 19-03-2019, Saat: 20:17
Son Yorum: maxpaynen
  Wmi kullanırken hata vermesi. seci20 17 612 20-02-2019, Saat: 18:33
Son Yorum: mrmarman
  Hata 'Variable declared but never used' OZCANK 6 420 09-02-2019, Saat: 19:43
Son Yorum: ssahinoglu
  QuickReport, Delphi 7, Windows 10 HATA ! [Çözüldü] SenayAkgun 13 606 26-01-2019, Saat: 02:45
Son Yorum: SenayAkgun



Konuyu Okuyanlar: 2 Ziyaretçi