QT调用C#开发的ArcEngine的.net组件(1)

来源:互联网 发布:在盘古网络上班稳定吗 编辑:程序博客网 时间:2024/06/06 06:40

QT调用C#开发的.net组件,首先我来讲一下我们项目的背景:最初想开发一套跨平台的gis系统,原来一直使用mapobject20和qt,现在自然而然的要使用arcengine和qt进行,最初的实现没有遇见太大问题,开发到最后系统的效率、稳定性、代码实现难度都出现了问题,很多异常不能处理,导致系统直接崩溃,现在只能寻找一个替代方案,最后采用了使用C#对arcengine的接口进行封装,然后qt采用activex的形式对封装后的com接口进行访问。

简要过程如下:

1. 使用C#封装ArcEngine的相关业务接口,接口参数只能是标准类型(int、double、string等)

2. 调用RegAsm /codebase MyService.dll 

   注意:codebase是指设置注册表中的基本代码,也就是记录下dll的路径,供ccwCom客户端在任何位置都可以找到该dll,如果没有/codebase属性,则ccw默认为dllCom客户端执行程序的当前目录下面

3. 通过 dumpcpp 的方式生成 QT 对 COM 接口的 C++ 包装类

   代码:dumpcpp -o HGisLiarary {00062FFF-0000-0000-C000-000000000046}

   注意:qt的pro中需要设置CONFIG += qaxcontainer

 

未解决问题:

1. 接口内如何实现非标准类型,如何把IMapcontrol的接口作为参数传进去?

2.

原创粉丝点击