Run ArcMap

0 голосов
спросил 02 Июнь, 11 от Dido_kz1 (11,020 баллов) в категории Программные продукты Esri
приветствую господа,
раньше без проблем под VB6 писал СОМ объекты и работали спокойно,
А сейчас пишу на  VS2010 C#, пытаюсь запустить из своего приложение
ArcMap, код след:
IDocument _doc = null;
IApplication _app = null;
_doc = new MxDocumentClass();                      
_app = _doc.Parent;                               
_app.Visible = true; 
 
при new MxDocumentClass ругается:

Сбой при получении производства объектов класса COM для компонента с CLSID {006B1AFE-C66C-11D0-B94C-080009EE4E51} в результате следующей ошибки: 80040111.
как правильно запустить, может это из за лицензий ?

18 Ответы

0 голосов
ответил 06 Июнь, 11 от TDenis (42,620 баллов)
вы попробуйте скачать и запустить это приложение
http://astanamap.kz/DesktopAutomationCS.rar

404 not found
0 голосов
ответил 07 Июнь, 11 от Dido_kz1 (11,020 баллов)
Up
0 голосов
ответил 07 Июнь, 11 от TDenis (42,620 баллов)
Предполагаю, что у тебя просто нет лицензии на Engine.
Если я прав, то поменяй в конструкторе формы
RuntimeManager.Bind(ProductCode.Engine);
на
RuntimeManager.Bind(ProductCode.EngineOrDesktop);
И проверь, что возвращается True.

Ну и в следующий раз выкладывай сразу исходники вместо exe-шника, а то неудобно смотреть.
0 голосов
ответил 08 Июнь, 11 от Dido_kz1 (11,020 баллов)

Если я прав,

да ты прав, респект тебе !!!
раньше на VB6 работал без этих кодов, получается это новинка ?
0 голосов
ответил 08 Июнь, 11 от TDenis (42,620 баллов)
получается это новинка ?

Да, класс RuntimeManager - новинка.
0 голосов
ответил 02 Ноя, 11 от Nashev (140 баллов)
Я пытаюсь начать использовать СOM-объекты ArcGIS 10 в программе на Delphi.
До этого успешно использовал объекты ArcGIS 9, всё работало нормально, если создать в приложении экземпляр LicenseControl, например положив его на главную форму.

А теперь даже если я положу на форму LicenseControl, в среде Delphi отображается всё корректно, а вот само приложение при загрузке формы падает с этой же самой ошибкой, CLASS_E_CLASSNOTAVAILABLE (она же 80040111, она же -2147221231).

На форуме forums.arcgis.com тоже ссылаются на RuntimeManager, но у меня нет библиотеки ESRI.ArcGISVersion.dll в папке program files\common files\ArcGIS\bin, которая должна быть, если верить странице про этот RuntimeManager, Правда, у меня там есть библиотека ArcGISVersion.dll, но в ней есть класс VersionManager и нет класса RuntimeManager! Вот этому java-описанию оно соответствует.

У меня и у моих пользователей установлен ArkGIS Desktop, у меня так же установлен VB SDK (ради файлов справки), а .net SDK у меня не ставится, потому что на компьютере нет никакой Visual Studio. И мне хотелось бы не заставлять моих пользователей ставить что-то в дополнение к ArkGIS Desktop...
0 голосов
ответил 02 Ноя, 11 от TDenis (42,620 баллов)
// Type: ESRI.ArcGIS.RuntimeManager
// Assembly: ESRI.ArcGIS.Version, Version=10.0.0.0, Culture=neutral, PublicKeyToken=8fc3cc631e44ad86
// Assembly location: C:\Program Files (x86)\ArcGIS\DeveloperKit10.0\DotNet\ESRI.ArcGIS.Version.dll

но у меня нет библиотеки ESRI.ArcGISVersion.dll в папке program files\common files\ArcGIS\bin, которая должна быть, если верить странице про этот RuntimeManager,

У меня её тоже там нет. В справке ошибка.

Правда, у меня там есть библиотека ArcGISVersion.dll, но в ней есть класс VersionManager и нет класса RuntimeManager!

Вот этот VersionManager и используйте.
http://help.arcgis.com/en/sdk/10.0/java_ao_adf/api/arcobjects/com/esri/arcgis/version/IArcGISVersion.html#loadVersion(int, java.lang.String)

http://forums.arcgis.com/threads/458-Beta-10-Migrating-a-C-Engine-application-and-runtime-binding?highlight=ESRI.ArcGIS.Version
0 голосов
ответил 02 Ноя, 11 от TDenis (42,620 баллов)
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...