NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Ladislav Niderle:7.8.2017 7:24

Ahoj, potřeboval bych poradit jak mám správně vytvořit DLL knihovnu v c#, aby byla použitelná i v jiném vývojovém prostředí. V tomto případě myslím, aby se dala využít v Delphi.

Děkuji

 
Odpovědět
7.8.2017 7:24
Avatar
zelvicek
Člen
Avatar
zelvicek:7.8.2017 7:50

Nemám odzkoušené, ale co tohle: https://stackoverflow.com/…-from-delphi ?
BTW: byl to první odkaz googlu.

 
Nahoru Odpovědět
7.8.2017 7:50
Avatar
Odpovídá na zelvicek
Ladislav Niderle:7.8.2017 8:07

Zkusím, snad se to povede. Něco podobného jsem taky našel, ale nějak jsem si myslel, že to bude o něco složitější, jelikož se všichni tvářily tak nějak divně, když jsem to chtěl.

 
Nahoru Odpovědět
7.8.2017 8:07
Avatar
Odpovídá na zelvicek
Ladislav Niderle:7.8.2017 10:18

Tak bohužel ani toto nepomohlo.

 
Nahoru Odpovědět
7.8.2017 10:18
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Ladislav Niderle
Martin Dráb:7.8.2017 12:00

A v čem přesně je problém?

Na 32bitových platformách je poměrně často potřeba v Delphi specifikovat při importování funkce její přesné jméno external <název_knihovny> name <přesné_jméno_fun­kce>**. To zjistíš tak, že se podíváš do seznamu exportů dané knihovny (je to jméno funkce, plus její signatura). Obvykle ale stačí si výskyt jména funkce najít v binárce té knihovny.

Mám jen zkušenosti z C, kde třeba funkce

int __stdcall F(int x);

dostává jméno (na 32bitových platformách)

F@4

takže v Delphi je třeba uvést

Function F(X:Integer):Integer; StdCall; external 'mojeknihovna.dll' name 'F@4'
{/code]
U C++ je signature obvykle mhohem ošklivější, u C# bych počítal s něčím podobným.
Nahoru Odpovědět
7.8.2017 12:00
2 + 2 = 5 for extremely large values of 2
Avatar
Ladislav Niderle:7.8.2017 12:21

No já to píšu v c# a s tím moc zkušeností s přenosnou DLL knihovnou nemám. Ale v delphi, i když se provede import, tak stejně nejsou vidět funkce ani procedůry. A i když jsem hledal (možná špatně), tak jsem nenašel nějaký příklad s využitím stdcall v c#.

 
Nahoru Odpovědět
7.8.2017 12:21
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.