求助!在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常

时间:2022-01-21 23:20:26
基于C#的ArcGIS Engine开发!
源码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Display;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.MapControl;
using ESRI.ArcGIS.Output;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS.TOCControl;


namespace lesson2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            loadMapDocument();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            loadMapDocument2();
        }
        //加载地图文档
        private void loadMapDocument()
        {
            System.Windows.Forms.OpenFileDialog openFileDialog;
            openFileDialog = new OpenFileDialog();
            openFileDialog.Title = "打开地图文档";
            openFileDialog.Filter = "map documents(*.mxd)|*.mxd";
            openFileDialog.ShowDialog();
            string filePath = openFileDialog.FileName;
            if (axMapControl1.CheckMxFile(filePath))
            {
                axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerHourglass;
                axMapControl1.LoadMxFile(filePath, 0, Type.Missing);
                axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;

            }
            else
            { 
                MessageBox .Show(filePath +"不是有效的地图文档" );           
            }
        }
        //加载地图文档中的特定地图
        private void loadMapDocument2()
        { 
            System.Windows.Forms.OpenFileDialog openFileDialog;
            openFileDialog = new OpenFileDialog();
            openFileDialog.Title = "打开地图文档";
            openFileDialog.Filter = "map documents(*.mxd)|*.mxd";
            openFileDialog.ShowDialog();
            string filePath = openFileDialog.FileName;
            if (axMapControl1.CheckMxFile(filePath))
            {
                IArray arrayMap = axMapControl1.ReadMxMaps(filePath, Type.Missing);
                int i;
                IMap map;
                for (i = 0; i < arrayMap.Count; i++)
                {
                    map = arrayMap.get_Element(i) as IMap;
                    if (map.Name == "Layers")
                    {
                        axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerHourglass;
                        axMapControl1.LoadMxFile(filePath, 0, Type.Missing);
                        axMapControl1.MousePointer = ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;
                        break;
                    }
                }
            }
            else
            {
                MessageBox.Show(filePath + "不是有效的地图文档");
            }
        }
    }
}

————————————————————————————————————————
————————————————————————————————————————————————
program



using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace lesson2
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}


即时窗口提示:::
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.Runtime.InteropServices.COMException 中第一次偶然出现的“mscorlib.dll”类型的异常
在 System.AccessViolationException 中第一次偶然出现的“System.Windows.Forms.dll”类型的异常




本人最近才开始学~~
希望高手指点!!!
QQ280501801
liwei0086@163.com

5 个解决方案

#1


重新引用COM库。

选择低版本的 .NET Framework,比如 VS2003

#2


帮不上忙,帮顶。。。

#3


该回复于2010-08-23 16:43:44被版主删除

#4


一般的, 那个窗口内出现的此类提示可以忽略

#5


你这个问题好像是缺少license

#1


重新引用COM库。

选择低版本的 .NET Framework,比如 VS2003

#2


帮不上忙,帮顶。。。

#3


该回复于2010-08-23 16:43:44被版主删除

#4


一般的, 那个窗口内出现的此类提示可以忽略

#5


你这个问题好像是缺少license