Toster Napisano Styczeń 22, 2009 Zgłoś Share Napisano Styczeń 22, 2009 Ok troche kodu, mamy takie deklaracje funkcji: function TransferToMemory(const value: byte; const Memory: TMemMgr; const address: integer):integer;overload; function TransferToMemory(const value: word; const Memory: TMemMgr; const address: integer):integer;overload; function TransferToMemory(const value: DWord; const Memory: TMemMgr; const address: integer):integer;overload; +Z)(vsi^ś-+ĘfzgĄFłjwŁłz7^bpp66Rv&6ŚR`vG4'FS6Bće&W7VD6VćŁd66RG&6fW%FV''FRfVRćB6dV'&rvG5v&C6Bće&W7VD6VćŁd66RG&6fW%FV'v&BfVRćB6dV'&rvG4Ev&C6Bće&W7VD6VćŁd66RG&6fW%FV'Ev&BfVRćB6dV'&rVćC i teraz, zakladamy ze WorkSize = wdsDWord, kto zgadnie do ktorej metody skonczy nasz kochany Delphi ? 1) TransferToMemory(byte, ...) 2) TransferToMemory(Word, ...) 3) TransferToMemory(DWord, ...) Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Styczeń 22, 2009 Zgłoś Share Napisano Styczeń 22, 2009 a jakie jest value i mask? Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Styczeń 22, 2009 Autor Zgłoś Share Napisano Styczeń 22, 2009 Value, mask: cardinal; Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
TSr Napisano Styczeń 22, 2009 Zgłoś Share Napisano Styczeń 22, 2009 Pewnie w zależności od wyniku (value and mask) do różnych Jeśli przekroczy 255 to już nie do ransferToMemory(byte, ...) Ubuntu.pl user #10593 Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Styczeń 22, 2009 Zgłoś Share Napisano Styczeń 22, 2009 Wydaje mi się, że kompilator nie powinien pozwolić na przeładowanie takich metod właśnie dlatego, bo przecież w czasie kompilacji powinien już ustalić jaką metodą wywołać więc albo nie pozwoli albo pozwoli na to z DWordem bo w czasie wykonania nie będzie badał ile wynosi wartość Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Styczeń 22, 2009 Autor Zgłoś Share Napisano Styczeń 22, 2009 no wlasnie sam nie rozumiem dzialania Otoz wywola Transfrer(Byte) co jest alogiczne bo skoro mam WorkSize = wdsDWord to powinien wejsc do lini: wdsDWord: cmd.fResultChunk := fCache.TransferToMemory( DWord(value and mask), fMemory, arg); a tam wymuszam rzutowanie na DWord, czyli z punku widzenia kompilatora mam wywoalnie typu TransferToMemory( [Dword], [..], ) czyli powinien siegnac wlasnie po przeladowanie z DWordem, a siega po Byte i zwatpilem :| Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
HNB Napisano Styczeń 22, 2009 Zgłoś Share Napisano Styczeń 22, 2009 @Force: czasami w chwili kompilacji nic nie wiadomo, oby ten kod się kompilował po wsze czasy @Toster: jeśli jest tak jak piszesz to znalazłeś błąd w kompilatorze i spokojnie można go zgłosić do QC, bo takie działanie na pewno nie jest poprawne... Chyba, że wcześniej gdzieś zrobiłeś błąd :| . PS. Której wersji Delphi używasz? soon Delphi will be only for veterans and finally we all will die at the end… delphi.dathox.com - nowinki z świata Delphi/Pascala only programmers and drug dealers call their customers "users" Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą. Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Styczeń 22, 2009 Autor Zgłoś Share Napisano Styczeń 22, 2009 TurboDelphi, zanim zglosilbym blad musialbym dokladnie sprawe zbadac, a szkoda mi czasu, na 95% tak sie zachowywal, nie badalem kodu asma. Moze komus sie bedzie kiedys nudzic i to sprawdzi a moze ktos bedzie mial podobny problem ? dlatego wrzucilem na forum Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.