| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		andreichernov
 
 
  Зарегистрирован: 14.02.2005 Сообщения: 209 Откуда: Самара
  | 
		
			
				 Добавлено: Ср 16 Ноя 2005 15:48    Заголовок сообщения: подсоединение из .NET к Ингео | 
				     | 
			 
			
				
  | 
			 
			
				Здравствуйте!
 
Никто не делал подсоединение к Ингео из .NET приложения (например на C#) ?
 
Чо-то там не хочет делать new, так как вроде нельзя "создать"
 
объект Ингео, можно только взять активный объект (GetActiveObject), а мы не очень хорошо знаем .NET и не можем найти, как это сделать.  
 
С уважением, Андрей Чернов | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Азаматов Азамат Хадисович
 
 
  Зарегистрирован: 17.02.2005 Сообщения: 100 Откуда: г. Учалы, Респ. Башкортостан
  | 
		
			
				 Добавлено: Пн 21 Ноя 2005 14:10    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				| В NET вроде бы все еще проще чем обычно. Но для упрощения стыковки хорошо бы чтобы Интегро выложило на сайт специальную сборку для стыковки с ней  NET программ. Надо полагать она у них уже есть. Они же делают какие то большие комплексы на базе Ингео. | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		Володченко Станислав
 
 
  Зарегистрирован: 01.12.2005 Сообщения: 18 Откуда: Питер
  | 
		
			
				 Добавлено: Чт 01 Дек 2005 17:01    Заголовок сообщения:  | 
				     | 
			 
			
				
  | 
			 
			
				В кратце делатся так (С#)
 
новый проект в нем
 
реализация АХ контрола
 
 
 
using System;
 
using System.Reflection;
 
using System.Windows.Forms;
 
using Ingeo;   
 
//обязательно должен быть уникальный ключ сборки иначе труба
 
[assembly: AssemblyTitle("IngeoApp")]
 
[assembly: AssemblyDescription("TestAssembly")]
 
[assembly: AssemblyKeyFile("c:\\ingeo.key")]
 
[assembly: AssemblyVersion("1.0.0.6")]	
 
namespace ingeocom
 
{	
 
	//интерфейс
 
         public interface IComClass
 
	{
 
		void Start(object initApp);
 
		void Stop();
 
		void About();
 
	}
 
	/// <summary>
 
	/// Summary description for Class1.
 
	/// </summary>
 
	public class ComClass : IComClass 
 
	{
 
		private frmDummy _frmDummy;
 
		public ComClass() 
 
		{
 
			//
 
			// TODO: Add constructor logic here
 
			//
 
			//инициализация формы
 
                           //любая юзер-форма
 
			_frmDummy = new frmDummy();
 
		}
 
		//старт и передача ссылки на объект
 
                  public void Start(object initApp)
 
		{
 
			if (initApp != null)
 
			{
 
				_frmDummy.SetPanelText("GIS init OKKKK!");
 
				IngeoApp.ingeoApp = (IIngeoApplication)initApp;
 
			}
 
			_frmDummy.Show();
 
		}
 
		//глушим..............
 
                  public void Stop()
 
		{
 
			_frmDummy.Close();
 
		}
 
		public void About()
 
		{
 
			string textAbout = "Пример работы ГИС Ингео и NET v 1.0.0.5";
 
			MessageBox.Show(textAbout,"Ingeo NET testing..."); 
 
		}
 
	}
 
}
 
дальше три главных момента 
 
тк у НЕТа на прямую нет работы с СОМ-объектами
 
реализована заглушка-враппер для совместимости со старыми технологиями =))) (отдельный респект Микрософту) 
 
то все СОМы работаю чр Interop - объекты (не знаю как по русски сказать типа оснастки чтоль) короче при вызове инпроц сервера, фреймворк вначале грузит mcorr.dll, которая отвечает за работу с Вашей ДЛЛ, mcorr видит тока те ДЛЛ сборки которых зарегистрированы в Глобальном Кэше Сборок (GAC)
 
шаги
 
1. при помощи sn.exe создаем файл ключей(в опциях проекта не забудьте указать путь к ключам)
 
2. компилим
 
3. регистрируем в ГАКе (gacutil.exe)
 
проверим появиласть ли сборка в ГАКе и заодно в реестре
 
так работало
 
какие возникли проблемы......
 
1. Почемуто в процессах при вызове светяться 2 ДЛЛ
 
2. Гис не хочет выгружать при вызове Стоп ДЛЛ
 
3. При отладке в VS (в первой версии) ГИС безболезнено не удвется отвязать от процесса, те deatach не работает
 
извините за краткость и скомканость руки не доходят до написани поноценной статьи, исправлюсь
 
если все ок | 
			 
		  | 
	
	
		| Вернуться к началу | 
		 | 
	
	
		  | 
	
	
		 |