|

楼主 |
发表于 2008-8-23 08:16:08
|
显示全部楼层
来自: 中国山东烟台
看到一些这样的论述,供大家参考:! X" ~# Q' B- k, [0 {1 z5 t& e! q
VC++现在分为VC++(标准的MFC/ATL/WTL/STL...)和VC++.net,也就是非托管和托管。
1 }3 q( {' i8 s' a# B: L" d7 v通常意义的VC++编的程序运行当然比C#的快得多,而VC++.NET还是比C#编的程序快一些,不过可以忽略,详见MSDN。
/ w3 N. P" _: A% l3 |0 U" m对比一下AutoCAD2005/6与AutoCAD2004及以前版本的层命令(对比启动ACAD后第一次运行该命令)就知道了,速度是明显不同的。当然也是有办法让.NET(无论C#还是VC++.NET)做的程序(前述托管程序)快起来,这里不赘述。
* L) w9 {( Z' l: S! E' `" t5 m |说到开发效率,C#远快于VC++,至于VC++.NET也是比VC++快得多,只可惜VC++.NET的语法很难受(即使VS2005的所谓CLI),做.NET程序不是很合适,不过VC++.net通过P/invoke可以与VC++混编程序,解决加密和调用原来使用VC++做的程序,效果很好。
4 C* S4 v# d2 e& [; x) h我的建议是如果做ACAD2006及此后版本的开发,能使用.NET的使用.NET(开发.NET最佳语言:C#),没办法使用的才使用VC++,比如自定义对象。
) L- m5 o, N6 ~8 @具体方法可以是:
9 B; x+ ?+ }, {/ I( y5 J% O& S1、VC++做自定义对象,然后用VC++.net去封装供.NET/c#调用& p+ k) X$ v* s* C* Z2 c& X& E: v! m8 n
2、一些.NET API还没有提供的函数,而ObjectARX中有,可以用VC++.NET包装,供.NET/c#调用 |
|