Moj problem wyglada tak:
Chce pisac z kumplem program. Ja pod Delphi on pod C++ i tu dochodzi do pytania jak to polaczyc ? Wpadlem na pomysl, ze ja napisze Maina, a on DLL do tego. I teraz moje pytanie: Czy DLL pisane dla aplikacji pod Delphi musza byc pisane <ort>rownierz</ort> pod Delphi czy moge byc napisane w innym jezyku programowania ? [???]
DLLele i jezyki
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
Za starych, dobrych czasów, kiedy w naszej pamięci rysował się jeszcze obraz ZX Spectrum żądza wiedzy kazała pasjonatom-programistą, bardziej lub mniej zaawansowanym pisanie w takich sytuacjach krótkego maina i krótką bibliotekę .dll i testowali sobie do woli. Ehhh... ciemna strono forów dyskusyjnych. Możecie spokojnie pisać swoje deelelki.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Kraków
Śmiało można pisać lecz jeśli robicie to w różnych językach, to poczytaj o sposobie przekazywania parametrów na stos (stdcall, cd.(cośtam)., )
- Rejestracja: dni
- Ostatnio: dni
Mały szczegół: warto w bibliotekach DLL "przenośnych" nie używać typów danych specyficznych dla Delphi, oraz nie używać typu string. Zamiast niego lepiej jest stosować PChar.
- Rejestracja: dni
- Ostatnio: dni
No wiec ja sie przylacze do postu :P Wiem ze mozna w C++ pisac DLL pod Dlphi ale czy z pod Delphi da sie napisac DLL z ktorej korzystalby C++ ?? :>
- Rejestracja: dni
- Ostatnio: dni
{PIT} napisał(a)
(...)ale czy z pod Delphi da sie napisac DLL z ktorej korzystalby C++ ?? :>
A dlaczego nie miałoby się dać?
- Rejestracja: dni
- Ostatnio: dni
To jest mozliwe pod warunkiem ze z dll-a nie beda eksportowane klasy, a zadna z eksportowanych funkcji nie bedzie zwracac ani pobierac jako argumentu typu danych specyficznego dla Visual C++.
I odwrotnie, jezeli ktos by chcial uzywac w vc++ bibliotek napisanych w Delphi, to funkcje eksportowane nie moga zwracac ani pobierac jako argumentow zadnych typow danych specyficzynych dla Delphi.
Natomiast wewnatrz biblioteki mozna stosowac wszystkie typy danych i klasy, wazne jest tylko zeby ich nie eksportowac.
- Rejestracja: dni
- Ostatnio: dni
Powiadacie, żeby w dll'kach nie używać stringów.
Mam bibliotekę, która zawiera funkcję o takim wyglądzie:
Funkcja(Input: string): string;
Nie działa to i nie mogłem dojść dlaczego. Jeśli tą funkcję wklepałem do kodu głównego programu to wszystko jest ok. Tylko z biblioteki nie trawi.
Czy trzeba użyć PChar? Potrzebny będzie pointer?
- Rejestracja: dni
- Ostatnio: dni
zmieniasz na PChar te stringi, przeciez pisali wyraznie
- Rejestracja: dni
- Ostatnio: dni
Pociech napisał(a)
Czy trzeba użyć PChar? Potrzebny będzie pointer?
A string i PChar to co innego jak nie wskaźniki właśnie? Ew. na 1. miejscu listy uses biblioteki wrzuć ShareMem, ale wtedy do działania potrzebował będziesz pliku Borlndmm.dll.
- Rejestracja: dni
- Ostatnio: dni
Borlndmm.dll
Ten plik będzie potrzebny tylko przy kompilacji czy użytkownik na innym kompie musi też go mieć?
- Rejestracja: dni
- Ostatnio: dni
O ile pamiętam to niestety także zewnętrzny użytkownik musi go mieć.