2010-05-18 7 views
10

Tôi có thể kết hợp cả hai tệp nguồn C# và C++/CLI trong một dự án riêng lẻ, và sau đó biên dịch chúng để có được một assembly .DLL đơn lẻ?Tôi có thể sử dụng cả C# và C++/CLI trong một assembly không?

+0

Về lý thuyết, cả hai đều được chuyển đổi thành MSIL, nên * có thể * nhưng tôi không chắc chắn về cách bạn thực hiện. – Aren

Trả lời

6

Bạn có thể lấy đơn DLL từ mã cả trong C++/cli và C# bằng cách sử dụng các công cụ dòng lệnh. Giả sử bạn có hai tệp: A.cc với mã C++/CLI và B.cs với mã C#. Nó sẽ giống như thế này:

  • biên dịch đầu tiên C++ mã vào .obj tập tin cl.exe /MD /c /clr A.cc
  • Compile C# mã vào "mô-đun" Thêm trước đây tạo ra obj với/AddModule switch: csc.exe /target:module /addmodule:A.obj B.cs
  • Sau đó liên kết các mô-đun vào một DLL duy nhất: link.exe /DLL /LTCG /NOENTRY /CLRIMAGETYPE:IJW A.obj B.netmodule

Tôi chưa thử nghiệm nhưng nó sẽ hoạt động.