Khaine
#csharp #cpp #programowanie

Mirki, jak to jest w mixed code w przypadku tych dwóch języków? Bo o ile przypadek używania C++ wewnątrz C# wydaje się być dosyć logiczny, bo C++ to native i odpalenie dllki z managed code nie powinno być problematyczne nawet na chłopski rozum. Ale co się dzieje w sytuacji odwrotnej? Bo widziałem wczoraj u nas w firmie takie rozwiązanie. Na jakimś prastarym C++ z 97 roku normalnie były odpalane dllki kompilowane w C# i kierownik projektu sam nie do końca wiedział, co tam we flakach siedzi, bo to robił jakiś poprzednik. Generalnie ten kod C# chyba był przekonwertowany na unmanaged code jakimś pluginem (teraz nie pamiętam nazwy) i odpalany z wewnątrz C++ za pomocą wskaźników na funkcje. Dałoby się tak zrobić bez konwersji na kod niezarządzany? A jeśli kod jest niezarządzany i przekonwertowany jakimś gunwem, to czy on czasem nie grozi wyciekową makabrą?
  • Najlepsze
  • Wszystkie komentarze
fortySeven
fortySeven
  • adult
3
Treść przeznaczona dla osób powyżej 18 roku życia...
LeopoldStuff
@Khaine: Można przekonwertować C++ na C++/CLI kompilując kod C++ przy pomocy Visual studio z użyciem flagi /clr (ale tu nie jestem pewny czy kod nie wymaga drobnych przeróbek przed taką kompilacją). Wtedy można wywołać dowolną .netowa dllke w C++ (tak samo jak C++/cli w c#)
Khaine
Khaine Autor
0
@LeopoldStuff: My mówimy o sytuacji, że ktoś konwertuje C# na unmanaged ( ͡º ͜ʖ͡º)
LeopoldStuff
nie ma znaczenia czy dll'ka csharpowa jest używana w zarządzanym czy niezarządzanym kodzie. Ty po prostu z niej korzystasz i tyle - .net już o to zadbał że ta dllka ma się zachowywać jak trzeba.
To wszystko pod warunkiem jednak że używasz tego wszystkiego w c++/cli - czyli w visual studio. W twoim wypadku kod jest z 97r więc zakładam, że nie przenosiliście go do visual studio.
Ja pisałem, że istnieje taka
LeopoldStuff
@Khaine: sry, trochę się zapędziłem - w takim wypadku trzeba pisać wrapery jednak ( ͡° ͜ʖ ͡°)
Tu jest taki prościutki przykład ale pokazuje ideę. http://www.codeproject.com/Tips/695387/Calling-Csharp-NET-methods-from-unmanaged-C-Cplusp
Khaine
Khaine Autor
0
@LeopoldStuff: Tak, tam były takie wrappery zdaje się. Specjalne klasy.