Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I use both C# and C++/CLI in a single assembly?

Can I put together both C# and C++/CLI source files in a single project, and then compile them to obtain a single .DLL assembly?

like image 822
Meh Avatar asked May 18 '10 20:05

Meh


1 Answers

You can obtain single DLL from code both in c++/cli and c# using command line tools. Let's assume you have two files: A.cc with C++/CLI code and B.cs with C# code. It should look something like this:

  • First compile c++ code into .obj file cl.exe /MD /c /clr A.cc
  • Compile c# code into "module" adding previously created .obj with /addmodule switch: csc.exe /target:module /addmodule:A.obj B.cs
  • Then link the module into single DLL: link.exe /DLL /LTCG /NOENTRY /CLRIMAGETYPE:IJW A.obj B.netmodule

I haven't tested it but it should work.

like image 138
piotrsz Avatar answered Sep 25 '22 02:09

piotrsz