import .NET dll w Delphi

0

jak zaimportować gotowe dll które są standardowo w katalogu c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0?
np. System.dll
Wszystkie tematy tego typu polegają na odpowiednim przygotowaniu dll. Ja tego nie mogę. Jam mam je odczytać w Delphi.
wiem że nie jest to takie łatwe, ale ja nawet nie wiem jak zacząć.

  1. Jak odczytać listę funkcji z dll? podobno program dotPeek potrafi, ale chyba nie wiem jak go użyć. Ja chcę na początek zwykły MessageBox uruchomić.
3

Identifying Functions in DLLs — wszędzie sugerują to narzędzie.

0
furious programming napisał(a):

Identifying Functions in DLLs — wszędzie sugerują to narzędzie.

Też to sprawdziłem, ale to mi zwraca tylko tyle dla każdej dll

Dump of file c:\Test\dotNet_dll_test\System.dll

File Type: DLL

  Summary

        2000 .reloc
        6000 .rsrc
       DA000 .text
1

ale co Ty chcesz zrobić??? Po co importujesz systemowe DLL NETa do delphi? Przecież to nie będzie działać.

To jest jakiś problem XY - napisz co masz zrobić (jakie dostałeś zadanie) a nie co wymyśliłeś, że zrobisz.

1

Dlle .Netowe raczej nie zadzialaja, to nie sa zwykle dlle.

0

W delphi jest taki importer do .net:

screenshot-20220504211434.png

0

ten importer działa tylko dla dll w postaci obiektów COM
widzę że tylko absurdalnie drogie komponenty potrafią to połączyć.

0
My Razem napisał(a):

jak zaimportować gotowe dll które są standardowo w katalogu c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0?
np. System.dll

Wszystkie tematy tego typu polegają na odpowiednim przygotowaniu dll. Ja tego nie mogę. Jam mam je odczytać w Delphi.

Pytanie po co. Ale jeśli na jakiejś funkcjonalności z .NET ci bardzo bardzo zależy, można w C++/CLI napisać DLLkę typu mixed-mode która wewnętrznie może używać .NETa, a na zewnątrz wyeksportuje funkcje do których Delphi może się odwołać tak jak to się robi z każdą zwykłą DLL-ką.

0

I tu jest właśnie problem, że ja od zewnętrznego klienta dostaję gotowe dll pisane .NET i nie mam możliwości ich zmiany.
Na tych gotowych plikach ja robię testy.

2

to napisz sobie wrapera COM na to co te dllki oferują i zaimportuj go w delphi https://aakinshin.net/posts/wrap-cs-in-com/ Nie musisz owijać wszystkich metod a jedynie te, których potrzebujesz

3
My Razem napisał(a):

I tu jest właśnie problem, że ja od zewnętrznego klienta dostaję gotowe dll pisane .NET i nie mam możliwości ich zmiany.
Na tych gotowych plikach ja robię testy.

Pisałeś że chodzi o "gotowe dll które są standardowo w katalogu c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0".
Zmieniasz zeznania.

Prawidłowo to te testy powinny być raczej też pod .NETem, w domyśle w C#.
No ale da się to zrobić tak jak napisałem. Nie jestem przekonany czy to ma sens. Szukaj pod "C++/CLI bridge DLL" albo podobnie.

0
My Razem napisał(a):

I tu jest właśnie problem, że ja od zewnętrznego klienta dostaję gotowe dll pisane .NET i nie mam możliwości ich zmiany.
Na tych gotowych plikach ja robię testy.

Kiedyś było coś takiego jak delphi prism i z tego co pamiętam to oni właśnie zrobili taką delphiową wersję nakładki na .NET jednak sam projekt (prism) był dużym niewypałem ale pamiętam, że tam dll .netowe obsługiwało się jak normalne dll choć bawiłem się tym dość krótko

1 użytkowników online, w tym zalogowanych: 0, gości: 1