Yorumları: 149
Konuları: 48
Kayıt Tarihi: 24-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 85 Başlangıç
Merhaba. Bu kodda nerede hata yapıyorum ? Dll cihaza hatasız komut veriyor ama sanırsam geri döndürmede hata ile karşılaşıyorum. pispc değişkenini var ve outta yaptığım halde hata alıyorum.
Dll açıklamasında bu şekilde çağırmamız gerektiğini söylüyor.
QLIB_API unsigned char QLIB_DIAG_SPC_F(
HANDLE hResourceContext, unsigned char iSPC[6], unsigned char* piSPC_Result );
Ben delphi olarak şu şekilde çağırıyorum.
QLIB_DIAG_SPC_F = function(hResourceContext: Thandle; iSPC: array of Byte;
piSPC_Result: array of Byte): ByteBool; stdcall;
Değişkenler bu şekilde.
iSPC: array [0 .. $05] of Byte;
RSPC: array [0 .. $05] of Byte;
Çağırma işleminide şu şekilde yapıyorum.
ZeroMemory(@iSPC, SizeOf(iSPC));
ZeroMemory(@RSpc, SizeOf(RSpc));
iSPC[0] := (StrToInt(SpcNumber.Text[1]));
iSPC[1] := (StrToInt(SpcNumber.Text[2]));
iSPC[2] := (StrToInt(SpcNumber.Text[3]));
iSPC[3] := (StrToInt(SpcNumber.Text[4]));
iSPC[4] := (StrToInt(SpcNumber.Text[5]));
iSPC[5] := (StrToInt(SpcNumber.Text[6]));
DIAG_SPC_F(m_hPhone, iSPC, RSpc);
Ama şu şekilde hata alıyorum.
Yorumları: 357
Konuları: 30
Kayıt Tarihi: 10-07-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.3
- Lazarus / FPC
Rep Puanı: 4.211 Uzman
Son parametreyi PByte olarak verip çağırırken de DIAG_SPC_F(m_hPhone, iSPC, @RSpc[0]); bu şekilde çağırarak dener misiniz?
Yorumları: 149
Konuları: 48
Kayıt Tarihi: 24-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 85 Başlangıç
(06-03-2020, Saat: 14:14)savasabd Adlı Kullanıcıdan Alıntı: Son parametreyi PByte olarak verip çağırırken de DIAG_SPC_F(m_hPhone, iSPC, @RSpc[0]); bu şekilde çağırarak dener misiniz?
Aynı hata hocam. Foksiyon için şu şekilde yazmışlar. Byte olarak yaptım gene aynı hata.
Alıntı:\param hResourceContext = Resource context that was returned from the call to QLIB_ConnectServer()
\param iSPC = array of 6 bytes, which hold the service programming code
6 bytes of security code, in ASCII format (digits 0..9 only)
\param piSPC_Result = Result of the SPC
\code
1 = code was correct and Service Programming (SP) is unlocked
0 = code was incorrect and SP is still locked
\endcode
\return true if successful, false if fail.
\warning if the code was incorrect, the phone will time out for 10 sec
before responding to any more requests through the serial interface.
Yorumları: 357
Konuları: 30
Kayıt Tarihi: 10-07-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.3
- Lazarus / FPC
Rep Puanı: 4.211 Uzman
(06-03-2020, Saat: 14:23)seci20 Adlı Kullanıcıdan Alıntı: (06-03-2020, Saat: 14:14)savasabd Adlı Kullanıcıdan Alıntı: Son parametreyi PByte olarak verip çağırırken de DIAG_SPC_F(m_hPhone, iSPC, @RSpc[0]); bu şekilde çağırarak dener misiniz?
Aynı hata hocam. Foksiyon için şu şekilde yazmışlar. Byte olarak yaptım gene aynı hata.
Alıntı:\param hResourceContext = Resource context that was returned from the call to QLIB_ConnectServer()
\param iSPC = array of 6 bytes, which hold the service programming code
6 bytes of security code, in ASCII format (digits 0..9 only)
\param piSPC_Result = Result of the SPC
\code
1 = code was correct and Service Programming (SP) is unlocked
0 = code was incorrect and SP is still locked
\endcode
\return true if successful, false if fail.
\warning if the code was incorrect, the phone will time out for 10 sec
before responding to any more requests through the serial interface.
Linki atar mısınız eğer varsa?
Yorumları: 149
Konuları: 48
Kayıt Tarihi: 24-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 85 Başlangıç
(06-03-2020, Saat: 14:26)savasabd Adlı Kullanıcıdan Alıntı: (06-03-2020, Saat: 14:23)seci20 Adlı Kullanıcıdan Alıntı: Aynı hata hocam. Foksiyon için şu şekilde yazmışlar. Byte olarak yaptım gene aynı hata.
Linki atar mısınız eğer varsa?
Buyrun hocam.
https://github.com/firstcst/W-R-Tools/bl...MSL_Diag.h
Yorumları: 357
Konuları: 30
Kayıt Tarihi: 10-07-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.3
- Lazarus / FPC
Rep Puanı: 4.211 Uzman
Çağırma biçimini stdcall değil de cdecl yapar mısın hocam?
Yorumları: 149
Konuları: 48
Kayıt Tarihi: 24-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 85 Başlangıç
(06-03-2020, Saat: 15:33)savasabd Adlı Kullanıcıdan Alıntı: Çağırma biçimini stdcall değil de cdecl yapar mısın hocam?
Yaptım hocam aynı hata. İletişimde sıkıntı yaşamamak adına.
QLIB_DIAG_SPC_F = function(hResourceContext: Thandle; iSPC: array of Byte;
piSPC_Result: PByte): ByteBool; cdecl;
RSPC: PByte;
ZeroMemory(@iSPC, SizeOf(iSPC));
ZeroMemory(@RSpc, SizeOf(RSpc));
iSPC[0] := (StrToInt(SpcNumber.Text[1]));
iSPC[1] := (StrToInt(SpcNumber.Text[2]));
iSPC[2] := (StrToInt(SpcNumber.Text[3]));
iSPC[3] := (StrToInt(SpcNumber.Text[4]));
iSPC[4] := (StrToInt(SpcNumber.Text[5]));
iSPC[5] := (StrToInt(SpcNumber.Text[6]));
DIAG_SPC_F(m_hPhone, iSPC[0], @RSpc[0]);
Yorumları: 357
Konuları: 30
Kayıt Tarihi: 10-07-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.3
- Lazarus / FPC
Rep Puanı: 4.211 Uzman
06-03-2020, Saat: 15:46
(Son Düzenleme: 06-03-2020, Saat: 15:47, Düzenleyen: savasabd.)
(06-03-2020, Saat: 15:38)seci20 Adlı Kullanıcıdan Alıntı: (06-03-2020, Saat: 15:33)savasabd Adlı Kullanıcıdan Alıntı: Çağırma biçimini stdcall değil de cdecl yapar mısın hocam?
Yaptım hocam aynı hata. İletişimde sıkıntı yaşamamak adına.
QLIB_DIAG_SPC_F = function(hResourceContext: Thandle; iSPC: array of Byte;
piSPC_Result: PByte): ByteBool; cdecl;
RSPC: PByte;
ZeroMemory(@iSPC, SizeOf(iSPC));
ZeroMemory(@RSpc, SizeOf(RSpc));
iSPC[0] := (StrToInt(SpcNumber.Text[1]));
iSPC[1] := (StrToInt(SpcNumber.Text[2]));
iSPC[2] := (StrToInt(SpcNumber.Text[3]));
iSPC[3] := (StrToInt(SpcNumber.Text[4]));
iSPC[4] := (StrToInt(SpcNumber.Text[5]));
iSPC[5] := (StrToInt(SpcNumber.Text[6]));
DIAG_SPC_F(m_hPhone, iSPC[0], @RSpc[0]);
function MYQLIB_DIAG_SPC_F(hResourceContext: HWND; iSPC: array of Byte;
piSPC_Result: array of Byte): ByteBool; cdecl; external'QMSL_MSVC10R.dll' name 'QLIB_DIAG_SPC_F';
var
Form8: TForm8;
iSPC: array [0 .. 5] of Byte;
RSPC: array [0 .. 5] of Byte;
implementation
{$R *.dfm}
procedure TForm8.Button1Click(Sender: TObject);
begin
ZeroMemory(@iSPC, SizeOf(iSPC));
ZeroMemory(@RSpc, SizeOf(RSpc));
iSPC[0] := (8);//sayıları rastgele attım
iSPC[1] := (2);
iSPC[2] := (2);
iSPC[3] := (6);
iSPC[4] := (4);
iSPC[5] := (5);
MYQLIB_DIAG_SPC_F(self.Handle, iSPC, RSpc);//herhangi bir handle değeri olsun diye verdim self parametresini
end;
ben bu şekilde çağırdım,hata almadım.
Yorumları: 149
Konuları: 48
Kayıt Tarihi: 24-10-2017
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 85 Başlangıç
(06-03-2020, Saat: 15:46)savasabd Adlı Kullanıcıdan Alıntı: (06-03-2020, Saat: 15:38)seci20 Adlı Kullanıcıdan Alıntı: Yaptım hocam aynı hata. İletişimde sıkıntı yaşamamak adına.
QLIB_DIAG_SPC_F = function(hResourceContext: Thandle; iSPC: array of Byte;
piSPC_Result: PByte): ByteBool; cdecl;
RSPC: PByte;
ZeroMemory(@iSPC, SizeOf(iSPC));
ZeroMemory(@RSpc, SizeOf(RSpc));
iSPC[0] := (StrToInt(SpcNumber.Text[1]));
iSPC[1] := (StrToInt(SpcNumber.Text[2]));
iSPC[2] := (StrToInt(SpcNumber.Text[3]));
iSPC[3] := (StrToInt(SpcNumber.Text[4]));
iSPC[4] := (StrToInt(SpcNumber.Text[5]));
iSPC[5] := (StrToInt(SpcNumber.Text[6]));
DIAG_SPC_F(m_hPhone, iSPC[0], @RSpc[0]);
function MYQLIB_DIAG_SPC_F(hResourceContext: HWND; iSPC: array of Byte;
piSPC_Result: array of Byte): ByteBool; cdecl; external'QMSL_MSVC10R.dll' name 'QLIB_DIAG_SPC_F';
var
Form8: TForm8;
iSPC: array [0 .. 5] of Byte;
RSPC: array [0 .. 5] of Byte;
implementation
{$R *.dfm}
procedure TForm8.Button1Click(Sender: TObject);
begin
ZeroMemory(@iSPC, SizeOf(iSPC));
ZeroMemory(@RSpc, SizeOf(RSpc));
iSPC[0] := (8);//sayıları rastgele attım
iSPC[1] := (2);
iSPC[2] := (2);
iSPC[3] := (6);
iSPC[4] := (4);
iSPC[5] := (5);
MYQLIB_DIAG_SPC_F(self.Handle, iSPC, RSpc);//herhangi bir handle değeri olsun diye verdim self parametresini
end;
ben bu şekilde çağırdım,hata almadım.
Hocam bende anlamadım nerede hata oluyor... Benzer foksiyon sorunsuz çalışırken bu foksiyonda hata veriyor.
Yorumları: 357
Konuları: 30
Kayıt Tarihi: 10-07-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 10.3
- Lazarus / FPC
Rep Puanı: 4.211 Uzman
En son benim yazdığım şekilde denediniz mi?
|