扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
许多朋友原来用C++开发AutoCAD,或对C++很熟悉,但是没有发现Revit SDK 提供C++的例子工程,因此很想了解是否可以用C++来开发Revit。特写此文来回答大家的疑问。Revit提供的应用程序开发接口(API)是.NET 类型的,只要支持.NET Framework 的语言都是可以的。 显然C#, VB.NET 是支持的,托管C++ 是支持.NET framework, 所以也是可以用来开发Revit。在Revit API的帮助文档中,对每一个接口方法或属性,都会列出托管C++的签名。如下所示:Syntax C# public static ViewSchedule CreateKeySchedule( Document document, ElementId categoryId ) Visual Basic Public Shared Function CreateKeySchedule ( _ document As Document, _ categoryId As ElementId _ ) As ViewSchedule Visual C++ public: static ViewSchedule^ CreateKeySchedule( Document^ document, ElementId^ categoryId ) 一个托管C++开发的代码片段:下面是头文件中的Revit命令类的声明 // public ref class Command : public Revit::IExternalCommand { public: virtual Revit::IExternalCommand::Result Execute(Revit::ExternalCommandData^ commandData, String^% message, Revit::ElementSet^ elementSet); }; 下面是该类实现代码 #include "stdafx.h" #include "DistribApp2.h" Revit::IExternalCommand::Result DistribApp2::Command::Execute(Revit::ExternalCommandData^ commandData, String^% message, Revit::ElementSet^ elementSet) { // 栠傝抣 Revit::IExternalCommand::Result retCommand = Revit::IExternalCommand::Result::Succeeded; // CompA DistribApp2::CompA^ objCompA = gcnew DistribApp2::CompA(); objCompA-ShowMsg(); return retCommand; } 但是纯C++的模式没有,也就是没有提供头文件(*.h)和库文件(*.lib) 这种方式来开发Revit。 所以看看托管C++ 的一些资料后,就可以继续利用你的C++语言的长处来开发Revit。不同语言所具有的Revit二次开发能力是一样的,没有区别。C#是一种用起来非常方便的语言,掌握C++的程序员很快可以掌握。
创新互联服务项目包括蚌埠网站建设、蚌埠网站制作、蚌埠网页制作以及蚌埠网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,蚌埠网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到蚌埠省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
关于“未将对象引用设置到对象的实例”这个错误的解决步骤如下:
1、首先,所设置的变量为空值或没有取到值,一般出现在传递参数的时候出现这个问题,也会在使用DataGrid或gridview或datalist等数据控件时出现。
2、设置控件名称与codebehind里面的没有对应。
3、设置未用new初始化对象或者在程序中所引用的控件不存在。
4、然后使用try..catch...finally捕捉错误,或直接用response.write()输出所取的变量值。
5、查看代码中是否存在未初始化的变量,即可解决未将对象引用设置到对象的实例”的问题。
加壳:
1.压缩可执行文件的大小,但是需要更多的内存空间。
2.保护自己的软件,较没有加壳的软件更难反编译。
回答完毕。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流