C++调用ArcEngine(C#)动态链接库

1、C#调用ArcEngine生成dll:
新建C#项目,新建ClassLibrary(类库)项目,基于ArcEngine的项目,选择新建ClassLibrary(Engine)。


然后添加需要的引用,新建项目完成后,建议重命名class,可以把需要的变量、方法等定义在类里面。也可以新建其他的类或结构体;namespace名称就是项目名称;注意变量和方法的访问权限,private包装成dll之后,在之后就不能直接调用private的变量和方法。 在ArcGIS
Engine10.0中,许可方式发生了一定的变化,ArcGIS10有一个新的要求—runtime绑定。就是在任何ArcObjects代码(包括许可初始化代码)被执行前,指定相称的ArcGIS产品—ArcGIS Desktop或者ArcGIS Engine应用程序。建立runtime绑定的APIs位于程序集ESRI.ArcGIS.Version的类ESRI.ArcGIS.RuntimeManager中,该程序集随着任何ArcGIS10 runtime一起安装于全局程序集缓存(Global Assembly
Cache(GAC))中。安装了ArcObjects.NETSDK,默认的程序集ESRI.ArcGIS.Version位于C:/Program Files/ArcGIS/DeveloperKit10.0/DotNet文件夹下。可以在VisualStudio IDE中将该程序集添加为项目引用。因此需要引用ESRI.ArcGIS.Version类;

ArcEngine项目开发的时候需要响应的Runtime权限,在Class类中的构造函数里面,或者函数的入口处,写上如下代码:
public Class1()
{
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine);
}
代码编写完成后,点击“生成”-“生成解决方案”,然后到对应的debug目录下调用对应的dll文件;
2、C++调用dll:
首先是添加引用,添加引用必须打开clr,然后添加引用,浏览选择需要添加的dll。
引用完成后,使用命名空间,然后使用gcnew方法,gc便能为对象分配内存空间,然后便可调用dll中的变量与方法。

只是添加引用 .dll文件 就可以啦,不用全引用debug文件夹下面的全部文件;



转载自:https://mtr-1.oss-cn-beijing.aliyuncs.com/qyblog/2019/04/61194582.jpg

You may also like...