Wpis z mikrobloga

#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ą?
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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#)
  • Odpowiedz
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
  • Odpowiedz