Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2013, 10:28   #1
inmyacid
Пользователь
 
Аватар для inmyacid
 
Регистрация: 17.04.2012
Сообщений: 42
Восклицание Взаимодействией управляемых и неуправляемых библиотек

Добрый день!
Есть некая программа написанная для компании с использованием неуправляемых библиотек. В последующем судя по всему стали использовать .net т.к. в папке так же лежат .NET обёртки для этих библиотек с использованием virtual extern функций. Программа имеет клиент серверную архитектуру с использованием DCOM технологии. ТАк же есть API, но оно не предоставляет требуемый функционал.
С помощью декомпилятора я обнаружил .NET обёртку которая содержит весь функционал. Класс примерно выглядит следующим образом(это часть кода):

Код:
[ClassInterface(0), Guid("5EAEB715-911F-11D3-B5C2-00600870E8C4"), TypeLibType(2)]
	[ComImport]
	public class ServiceClass : IService, Service, IncidentHandling
	{
		[MethodImpl(MethodImplOptions.InternalCall)]
		public extern ServiceClass();
		[DispId(100)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		public virtual extern void StartService();
		[DispId(101)]
		[MethodImpl(MethodImplOptions.InternalCall)]
		public virtual extern void StopService();
		[DispId(102)]
}
В документации на msdn говорится что extern чаще всего используется с DLLImport, но обёртка об этом не пишет. Прямое подключение и использование обёртки не дало результатов, ругается что класс не зарегестрирован и пишет его GUID. Сама библа через regsvr32 не регистрируется в системе.
Как по вашему возможно ли вообще использовать недокументированные функции ПО и как можно всё таки узнать из какой внешней библиотеки используются виртуальные extern методы?
inmyacid вне форума Ответить с цитированием
Старый 10.10.2013, 11:50   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
через regsvr32
a regasm ?
eval вне форума Ответить с цитированием
Старый 10.10.2013, 16:29   #3
inmyacid
Пользователь
 
Аватар для inmyacid
 
Регистрация: 17.04.2012
Сообщений: 42
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
a regasm ?
regasm зарегал типы, и при создании объекта класса возникает COM Ошибка:
Цитата:
Не удалось получить фабрику класса COM для компонента с CLSID ... Клаcc не зарегестрирован
С COM плохо дружу.Означает ли это что в системе д.б. установлен некий COM Обьект, предоставляющий интерфейсы для работы с данным классом?
inmyacid вне форума Ответить с цитированием
Старый 10.10.2013, 16:47   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

под какую платформу скомпилирована длл и каким regasm регали?

и прога под какую скомпилирована?
eval вне форума Ответить с цитированием
Старый 10.10.2013, 17:10   #5
inmyacid
Пользователь
 
Аватар для inmyacid
 
Регистрация: 17.04.2012
Сообщений: 42
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
под какую платформу скомпилирована длл и каким regasm регали?

и прога под какую скомпилирована?
// Architecture: AnyCPU (64-bit preferred)
// Runtime: .NET 2.0

программа для x32. regasm 4 framework
inmyacid вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массивы в управляемых классах. Проблема. daNtz Visual C++ 0 06.04.2013 17:07
Концепция управляемых данными приложений. the_deer_one Свободное общение 6 25.10.2012 19:17
Конфликт библиотек Кудаив Помощь студентам 2 27.08.2012 10:39
Программирование циклов, управляемых условием. VB .NET Alex0161 Помощь студентам 2 17.01.2011 18:28
Описание библиотек в Си papochka Общие вопросы C/C++ 1 28.10.2009 10:51