BF Summer sales
Pouze tento týden sleva až 80 % na HTML & CSS a JavaScript
80 % bodů zdarma na online výuku díky naší Letní akci!

Diskuze: vytvoření dll knihovny pro c#

Aktivity (2)
Avatar
Ondra Toman
Člen
Avatar
Ondra Toman:29. července 13:02

Na internetu jsem našel projekt napsaný v c++ (kód má asi 3500 řádků), ale potřeboval bych ho využít v c# aplikaci. Takže bych potřeboval vytvořit dll knihovnu. Problém je v tom, že moje znalosti c++ jsou na úrovni hello world. Jak pracné je vytvořit dll knihovnu projektu o této velikosti? Případně, pokud by to bylo jen pár řádků kódu... byl by někdo zkušenější ochotný to udělat?

 
Odpovědět
29. července 13:02
Avatar
JerryM
Člen
Avatar
JerryM:31. července 10:49

Knihovna z nativeC++ do C# se dělá v MS VS 2019 C++/CLI a říká se tomu vytvořit řízený wrapper v systému CLI (Common Language Interface). Musel by ses naučit C++/CLI což není zrovna jednoduchá záležitost a trvá to dlouho. Další možností je odkazovat se na funkce knihovny v C++ přímo přes tzv. DLL import.

https://stackoverflow.com/…limport-in-c

nebo

http://www.functionx.com/…llimport.htm

a programovat v C# v režimu neřízeného kodu. Což tvuj algoritmus výrazně zpomalí.
Ale fungovat to bude.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
31. července 10:49
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Ondra Toman
Martin Dráb:31. července 11:18

C++/CLI nedoporučuji, pokud nepotřebuješ volání do C++ od C# nějak výrazně odstínit (např. zpracovávat parametry a tak). Což si myslím, že nechceš.

Pokud sem hodíš projekt, který bys potřeboval převést na DLL knihovnu, můžu se na to podívat. Jak bylo řečeno výše, funkce budeš importovat přímo do C#. Co vím, jejich volání by při Release překladu nemělo být výrazně penalizováno (ač je samozřejmě lepší provádět část náročnou na výkon čistě v C++, pokud taková existuje).

Nahoru Odpovědět
31. července 11:18
2 + 2 = 5 for extremely large values of 2
Avatar
Ondra Toman
Člen
Avatar
Odpovídá na JerryM
Ondra Toman:31. července 19:26

Už jsem našel alternativu pro c#. Kažopádně díky za přiblížení problematiky určitě se mi to jednou bude hodit.

 
Nahoru Odpovědět
31. července 19:26
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 4 zpráv z 4.