插件编写教程可以参考这里。但是通过直接修改编写的插件是需要使用cmake进行管理的,而由于cloudcompare源码并不算多,如果我们不想用cmake来管理工程,想直接用vs来管理。那么,插件也需要进行转移,其中需要注意和修改的地方包括:
- 在总的解决方案里面添加一个新建项目,类型为
Qt Empty Application
,命名与原插件名称保持一致(这样可以减少一些命名方面的更改,更不易出错),如下图所示。直接将插件源码移动到总工程文件夹下是不太可行的,因为自己管理的插件类是Qt类型的。
- 将原插件相关文件复制到新建项目文件夹下,并将其添加进vs中。包括所有的
.h
,.cpp
,以及.qrc
资源文件,json
文件,images文件夹(不用加进vs里)。由于我们不再需要cmake来管理工程了,所以不需要添加CMakeLists.txt
文件。添加后如下图所示,其中h文件在Header Files文件夹下,cpp文件在Source Files文件夹下,qrc文件在Resource Files文件夹下,json文件直接放置在外面。
- 修改json文件路径。有两个地方,一个是qrc资源文件里面的prefix值(这里
../
表示当前目录的上一级文件夹):
另一个是插件类的cpp文件,在这里是cBuildingExtraction.cpp:
注意到这里两者路径是不完全一样的,cpp里多了一个:/
。 - 修改中间目录和输出目录。右键项目,进入属性页面,将这两个目录修改到插件目录下,如下图所示。这样,后面运行vs就可以直接在界面加载插件了,而不需要自己手动去移插件的dll文件。
- 修改项目配置类型。插件的生成类型应该是dll,所以应该将配置类型修改为动态库dll。
- 添加依赖库的包含目录和库目录,如下图所示:
- 在链接器中添加附加依赖项,也就是依赖的lib文件。
- 添加附加包含目录(如果有的话)。
- 在ALL_BUILD里添加新增的插件项目的引用。展开ALL_BUILD,右键引用,选择添加引用,把新增插件项目前面的方框勾上就可以了。
- 同理,在新建项目下的引用中勾上该插件依赖的工程中的其他项目,比如这里涉及到QCC_DB_LIB(具体选啥依据实际情况确定,没勾时候运行会报错,可以依据错误来确认需要引用哪个项目)。