Chociaż mniej lub bardziej rozumiem, czym jest wiązanie języka, staram się zrozumieć, jak działają. Czy ktoś mógłby wyjaśnić, na przykład, jak utworzyć powiązanie Java dla WinAPI?Jak utworzyć powiązanie językowe?
Odpowiedz
Znacznie lepsze wyniki uzyskasz, szukając funkcji obcego interfejsu lub FFI. Funkcja FFI umożliwia wywoływanie funkcji napisanych w innym języku, tj. Obcym. Różne języki i środowiska uruchomieniowe mają bardzo różne FFI i będziesz musiał uczyć się każdego z nich indywidualnie. Uczenie się FFI zmusza cię również do poznania wewnętrznych cech twojego języka i jego środowiska wykonawczego, do których jesteś normalnie przyzwyczajony. Niektóre FFI powodują, że piszesz kod w języku docelowym, np. Haskell (gdzie kod FFI musi być napisany w Haskell), a inne powodują, że piszesz kod w języku źródłowym, takim jak Python (gdzie kod FFI musi być napisany w C).
Niektóre języki nie używają terminu FFI (choć byłoby miło, gdyby tak było). W przypadku języka Java nazywa się to Java Native Interface, lub JNI.
Języki (zazwyczaj) mają zdefiniowaną składnię do wywoływania "natywnego" kodu. Więc jeśli masz bibliotekę, która eksportuje metodę foo()
, wykonanie binding oznaczałoby, że utworzysz, na przykład, klasę Javy z metodą foo()
. W ten sposób możesz wywołać MyBinding.foo()
z reszty kodu, nie ma znaczenia, czy była to czysta metoda Java, czy skompilowany kod C.
Znowu dla Javy, prawdopodobnie chcesz przejrzeć dokumentację na temat JNI. Inne języki mają podobne mechanizmy. Istnieją narzędzia takie jak SIP, które zajmą kilka plików nagłówkowych C (++) i stworzą dla niego powiązania Python. Sądzę, że inne języki również mogą mieć podobne narzędzia.
- 1. Jak utworzyć powiązanie właściwości w Qt/C++?
- 2. Excel VBA trudności językowe
- 3. tłumaczenie językowe w php
- 4. Chińskie kody językowe
- 5. Laravel Vue Tłumaczenie językowe
- 6. Jak utworzyć niestandardowe powiązanie danych w systemie Android? (Android studio)
- 7. Jak zmienić ustawienia językowe w R
- 8. Jak włączyć rozszerzenia językowe z poziomu GHCi?
- 9. Unicode językowe w edytorze VBA
- 10. Konfliktowe ustawienia językowe WPF richtextbox
- 11. Kendo UI Globalizacja/pakiety językowe
- 12. Czy można "ukryć" rozszerzenia językowe?
- 13. extjs 5: utworzyć powiązanie danych dla niestandardowej właściwości komponentu
- 14. stałe językowe Dodaj do komponentu Joomla javascript
- 15. Powiązanie LPWSTR ciągów
- 16. Jak działa powiązanie z kolekcjami?
- 17. C Standardowe kolekcje językowe Gdzie są?
- 18. Wyjście wszystkie łańcuchy językowe w Revel?
- 19. Jak ustawić powiązanie konwertera w kodzie C#?
- 20. Jak dodać popularne fragmenty językowe w kodzie Visual Studio?
- 21. Jak wyłączyć osadzanie językowe w adresach URL w Sitecore?
- 22. Jak zachować różne wersje językowe tego samego języka w Django?
- 23. Jak programowo utworzyć powiązanie plików, które działa w XP, Vista i Windows 7
- 24. Jak utworzyć niestandardowe powiązanie, korzystając z zabezpieczeń WSHttpBinding i kompresji GZip?
- 25. Wyczyść powiązanie w Silverlight (usuń powiązanie danych z SetBinding)
- 26. Co oznacza w Haskell, czy powiązanie "zacienia istniejące powiązanie"?
- 27. Czym dokładnie jest powiązanie?
- 28. Powiązanie WPF StringFormat Składnia
- 29. Reagowanie i powiązanie danych
- 30. piwny powiązanie z ImageMagick
Dziękuję. W rzeczywistości wiedziałem o JNI. Ale nie wiedziałem, gdzie powinienem szukać więcej informacji. – qeek