Wywołanie biblioteki C++ w języku C#


23

Mam wiele bibliotek napisanych w C++. Chcę wywoływać te biblioteki z C#, jednak napotkałem wiele problemów. Chcę wiedzieć, czy istnieje książka lub wytyczne, które powiedzą mi, jak to zrobić.

  0

Zobacz http://stackoverflow.com/questions/569603/using-c-class-dll- w aplikacji c 22 lut. 092009-02-22 12:37:13

4

Niedawno miałem owinąć trochę kodu C++ .NET. Chociaż kod C++ został spakowany jako biblioteka dll, interfejs był zbyt nieprzyjazny dla P/Invoke, więc postanowiłem napisać go w zarządzanym C++ lub C++/CLI, ponieważ jest on obecnie znany.

Znalazłem this tutorial bardzo przydatne w składni. To nie jest łatwe dla oka, ale treść wydawała się całkiem dobra.


6

Jeśli używasz google "C++ C# interop", znajdziesz mnóstwo informacji na ten temat.

Kilka linków:

http://msdn.microsoft.com/en-us/magazine/cc301501.aspx
http://msdn.microsoft.com/en-us/library/ms235281(VS.80).aspx


3

Jestem wielkim fanem książki C++/CLI in Action który ma kilka przydatnych przykładowych rozdziałów online pod tym adresem.

Ten intro on CodeProject jest dobrym punktem wyjścia.

Autor C++/CLI w akcji ma wiele artykułów o CodeProject, przewiń w dół do sekcji C++/CLI na his index.

Wikipedia article on P/Invoke ma wiele powodów, dlaczego nie chcą korzystać z tego podejścia, z którymi się zgadzam:

  • utratę poparcia wpisując przez kompilator
  • ewentualne problemy typu danych lub strojenia, jak ty mają do mapowania typów ręcznie
  • potrzebę pin śmieci zgromadzone obiekty

najlepszym punktem wyjścia na MSDN jest summary article.