Diskuze: c# DLL
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 6 zpráv z 6.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Nemám odzkoušené, ale co tohle: https://stackoverflow.com/…-from-delphi ?
BTW: byl to první odkaz googlu.
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.
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_funkce>**. 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.
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#.
Zobrazeno 6 zpráv z 6.