Mamy projekt pełen komponentów niestandardowych, który dziś działa w Lazarus i Delphi.Jakie są różnice między implementacją interfejsów w Delphi i Lazarus (FPC)?
Mam na myśli interfejsy kodu, ale nie znam ich zbyt dobrze. Co chciałbym wiedzieć, to: Jakie są niuanse implementacyjne z interfejsów Delphi i Lazarus? Jest coś, co powinienem być szczególnie świadomy? Czy będę musiał kodować naprawdę różne rzeczy?
Wyjaśnienie: Myślę, że komponenty mogą korzystać z interfejsów, a przynajmniej więcej się z nich dowiem. Na przykład jeden z komponentów umożliwia komunikację z wieloma różnymi wersjami sprzętu za pomocą portu szeregowego. Ale użytkownik powinien używać tylko naszego komponentu do tworzenia aplikacji. Mamy zatem komponent i jedną klasę dla każdego z tych urządzeń potomnych z klasy bazowej. W czasie wykonywania tworzymy konkretną klasę wewnątrz komponentu.
Nie jestem pewien, czy to ostatnie wyjaśnienie było potrzebne, ale mogę napisać więcej, jeśli ktoś z was tego potrzebuje.
Oto "podstawowe czytanie" (http://www.freepascal.org/docs-html/ref/refch7.html#x84-940007) na temat interfejsów w FreePascal. Jako bardzo szybką konkluzję powiedziałbym, że jeśli celujesz w platformę Windows i będziesz używał architektury Windows COM (interfejsów pochodzących od IUnknown), nie będzie różnicy w kodzie z Delphi, ale odpowiedź na twoje pytanie powinna być bardziej wyrafinowany. – TLama
Co masz na myśli przez "niuanse implementacyjne"? To nie brzmi tak, jakby to miało dla ciebie znaczenie. Istotne byłoby, czy można napisać kod, który * oznacza * to samo dla obu kompilatorów, niezależnie od tego, jak każdy kompilator faktycznie implementuje interfejsy. –
@DavidHeffernan Mam na myśli "małe różnice w implementacji". Może nie mogę napisać kodu, który oznacza to samo dla obu, ale być może, nie musiałbym pisać wszystkich rzeczy dla każdego kompilatora. Pytałem tylko o przyczynę, której oczekiwałem, ale nie wiem, czy w tym przypadku istnieją jakiekolwiek różnice w obu kompilatorach. Czy teraz jest to jaśniejsze? – EMBarbosa