恶搞一下:如何将C++代码和C#代码一起编译

  前次发了一个随笔《你也使用托管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
posted @ 2006-04-12 11:36  沐枫  阅读(2968)  评论(2编辑  收藏  举报