惡搞一下:如何將C++代碼和C#代碼一起編譯

來源:互聯網
上載者:User
  前次發了一個隨筆《你也使用託管C++嗎?》,結果來了一個提問:

  “我想問一下,在能將現有的C++代碼直接進行封裝,被C#進行調用,而不是去調用DLL,也就是不產生DLL,就在C#下能直接調用VC的工程源檔案不?”

  我想,提問的人是不是指,現有c++源碼,但不想費勁去轉換成C#源碼,但又想能與C#一起編譯。

  於是我就給了一個極其變態的方法,純屬惡搞。方法如下:
  1 先將C++源碼,改用CLR編譯選項,編譯成.NET的Assembly(DLL檔案)。
  2 然後用reflector等反編譯軟體,反編譯成C#代碼,並匯出(reflector有專門的匯出外掛程式)。
  3 將匯出的C#代碼,添加上新寫的C#代碼一起編譯。
  
  這種方法產生的程式碼很是恐怖,強烈建議不要把C++源碼就這麼丟了,否則後果自負。

  :reflector匯出外掛程式見 wssmax部落格園《用Reflector for .NET反編譯dll檔案(.net),把整個dll匯出個cs外掛程式》

  :此文雖然有一定的可行性,但純屬惡搞。如有相同的目的,可以參考:《讓C++代碼與C#代碼一起產生一個單一的Assembly》--不過只適合.NET2.0

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.