积极答复者
C#写的Dll能编译成非托管代码吗?(主要是想在BCB中调用)

问题
-
小弟我头痛好久了,因为本来这不应该是个问题。
我习惯用C#或Java写程序(现在正在鼓捣.NET 4.0)。但我老爹一直以来都用Borland C++ Builder 。最近他老人家想让我帮忙写几个函数封装到dll让他调用,但我实在是很反感冗长又不智能的C……所以就想用C#给他写。
问题现在就冒出来了:在网上搜来搜去,似乎用C#写的dll最后是CLR托管代码。而找了半天,非托管代码调用托管代码的网上讲解大部分都集中在微软自己的VS各语言之间,调用的库、一些什么“帽子^而非星星*”这样的言论,在BCB中能使吗?这是C++标准还是MS的啊?
如果直接在BCB中用没问题……请有经验的前辈给个肯定答复。要不然有没有办法索性把C#写的东西直接编译成非托管的?(因为没用到什么高深的反射之类的,只是简单一些循环和多线程)。
有其他解决方案吗?(但肯定是BCB调用C#编译的dll的解决方案了)
PS:有说注册COM,然后云云。说实话我实在懒得去再学个borland C++了,而我爹似乎对com不是很熟悉的样子……so………………
纠结。。。。但还是希望能碰见指点人生大道的仙人级人物出现。
myQQ: 1850018
答案
-
你好!
使用Ngen.exe这个工具,这个工具可以把托管的Dll直接编译成传统的本机代码
如果你安装的是VS2008,这个工具在:
C:\Windows\Microsoft.NET\Framework\v2.0.50727
是命令行的工具,你可以通过VS命令提示工具来使用!
但是即使你把Dll直接编译成传统的本机代码,也无法和BCB交互,我建议你通过COM接口来暴露程序集,然后BCB通过COM接口来和你的Dll交互,具体可以参考:
http://msdn.microsoft.com/zh-cn/library/zsfww439%28VS.80%29.aspx
希望对你有帮助!
周雪峰- 已建议为答案 Raymond TangModerator 2010年5月2日 8:10
- 已标记为答案 Leemax 2010年5月5日 3:52
全部回复
-
你好!
使用Ngen.exe这个工具,这个工具可以把托管的Dll直接编译成传统的本机代码
如果你安装的是VS2008,这个工具在:
C:\Windows\Microsoft.NET\Framework\v2.0.50727
是命令行的工具,你可以通过VS命令提示工具来使用!
但是即使你把Dll直接编译成传统的本机代码,也无法和BCB交互,我建议你通过COM接口来暴露程序集,然后BCB通过COM接口来和你的Dll交互,具体可以参考:
http://msdn.microsoft.com/zh-cn/library/zsfww439%28VS.80%29.aspx
希望对你有帮助!
周雪峰- 已建议为答案 Raymond TangModerator 2010年5月2日 8:10
- 已标记为答案 Leemax 2010年5月5日 3:52