Mam interfejs zdefiniowany w pliku IDL, który chciałbym użyć w języku C#. Czy istnieje sposób przekonwertować IDL na coś użytecznego w C#?Konwertuj plik IDL interfejsu na C#
Odpowiedz
Jednym ze sposobów jest uruchomienie MIDL
na IDL w celu utworzenia biblioteki typów (.tlb). Wymaga to bloku library
w IDL. Gdy już posiadasz .tlb, możesz uruchomić na nim tlbimp.exe
, aby uzyskać definicję C#/Interop DLL.
, a następnie można użyć [JetBrains dotPeek] (https://www.jetbrains.com/decompiler/), aby wyświetlić definicję C# z wygenerowanej biblioteki Interop DLL. –
Jakie typy danych/struktury są używane w IDL? Najpierw należy zdefiniować typy danych w języku C#, jeśli nie ma już typu inbuild.
Możesz użyć następującego narzędzia do konwersji struktur, ale musisz ręcznie zweryfikować ouput.
Narzędzie to jest opisane w Accessing Windows API Constants and Structs for P/Invoke.
Oryginalny artykuł z stycznia 2008 r. Jest teraz dostępny tylko jako .CHM help file download, połączony u dołu https://msdn.microsoft.com/magazine/msdn-magazine-issues. Na razie kod źródłowy można znaleźć pod adresem http://clrinterop.codeplex.com/.
Gdzie znajduje się dokumentacja>? –
@ ChrisEskay Ponieważ link do artykułu MSDN nie był już poprawny, skorzystałem z możliwości aktualizacji informacji o tym narzędziu. –
Na przykład ostatnio użyłem interfejsu API drukowania XPS i potrzebowałem interfejsów xpsobjectmodel.h. Windows SDK na szczęście ma xpsobjectmodel.idl.
Najpierw wygenerowałem plik TLB z MIDL i użyłem TLBIMP do wygenerowania odpowiedniego zestawu DLL gotowego do dodania w sekcji "References ..." w moim projekcie C#.
Należy używać narzędzi o poprawnej wersji dla swojego projektu. np. jeśli twoja struktura projektu opiera się na 3.5, użycie tlbimp z zestawu narzędzi 4.0 nie będzie działać.
- 1. Konwertuj BytesIO na Plik
- 2. Konwertuj C# na PHP
- 3. Konwertuj plik JSON na .plist
- 4. Co to jest IDL?
- 5. C++: Konwertuj wchar_t * na BSTR?
- 6. Konwertuj tablicę na ciąg? C#
- 7. C Konwertuj char na char *
- 8. Konwertuj typ MIME na plik Rozszerzenie PHP
- 9. Konwertuj plik uri na zawartość uri
- 10. Konwertuj tablicę bajtów na plik WAV
- 11. Konwertuj ciąg znaków Base64 na plik obrazu?
- 12. Konwertuj istniejący plik html.erb na Haml
- 13. C# wystawienie na COM - interfejsu spadku
- 14. Konwertuj plik .AIB (plik indeksowania multimediów) na czytelny format (String)
- 15. Konwertuj binarny plik w skali szarości na JPEG
- 16. Konwertuj datagram graficzny interfejsu API Facebooka na UNIX
- 17. Konwertuj plik IFIL do pliku
- 18. Konwertuj Go [] bajt na C * char
- 19. Konwertuj krótki [2] na Int32 w C#
- 20. Konwertuj int na tablicę bajtów w C?
- 21. Konwertuj z binarnego na char w C
- 22. Konwertuj obiekt XmlDocument na obiekt XmlNode - C#?
- 23. .NET/C# - Konwertuj char [] na ciąg
- 24. C# Konwertuj Char na Bajt (reprezentacja heksadecymalna)
- 25. Konwertuj ciąg na camelCase z TitleCase C#
- 26. Konwertuj z unsigned short na string C++
- 27. Konwertuj ciąg na int-celny c
- 28. Konwertuj C# DateTime na format MongoDB
- 29. C# Konwertuj formaty obrazów na jpg
- 30. Konwertuj krótką tablicę na ciąg C#
Co to jest "coś do wykorzystania"? – Achim
Coś użyteczne w języku C#. Coś, co się skompiluje. –