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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2012, 10:29   #1
m9yt
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 108
По умолчанию COM - сервер и unmanaged(native) C++

Суть проблемы такова. В задании написано: создать COM - сервер с использованием unmanaged(native) C++.
Что это значит вообще, в чем суть этих понятий касательно com - сервера, и может есть какие - либо примеры?
m9yt вне форума Ответить с цитированием
Старый 22.06.2012, 11:36   #2
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Цитата:
COM - сервер с использованием unmanaged(native) C++
Написать СОМ сервер с использованием неуправляемого С++, т.е. самый что ни на есть обычный С++.

Цитата:
может есть какие - либо примеры?
Полно в сети.
1. Тебе нужно определиться, какие функции будет выполнять твой сервер.
2. Будет он однопоточный или многопоточный.
3. Переопределить интерфейс Unknown и его абстрактные методы QueryInterface, AddRef, Release.

Если ты ничего не сечешь в COM технологии, то для тебя это будет не тривиальная задача.
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 22.06.2012, 12:28   #3
m9yt
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 108
По умолчанию

Цитата:
Сообщение от Krok27 Посмотреть сообщение
Написать СОМ сервер с использованием неуправляемого С++, т.е. самый что ни на есть обычный С++.


Полно в сети.
1. Тебе нужно определиться, какие функции будет выполнять твой сервер.
2. Будет он однопоточный или многопоточный.
3. Переопределить интерфейс Unknown и его абстрактные методы QueryInterface, AddRef, Release.

Если ты ничего не сечешь в COM технологии, то для тебя это будет не тривиальная задача.
Да, не секу. Но я читаю книгу Роджерсона Основы COM, так же статейку
http://www.rsdn.ru/article/com/introcom.xml. Этого будет достаточно?
Ну у сервера должны быть функции работы с файловой системой, типа простейшего фйлового менеджера.
m9yt вне форума Ответить с цитированием
Старый 22.06.2012, 13:26   #4
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Цитата:
Но я читаю книгу Роджерсона Основы COM
Читай. Лучше книги не нашел. Все по полкам разложено.
Для старта вполне достаточно
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 22.06.2012, 13:49   #5
m9yt
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 108
По умолчанию

Вот у меня следующая проблема:
там такой вот клиент
Код:
int main()
{
	// Initialize COM Library
	CoInitialize(NULL) ;

	trace("Call CoCreateInstance to create") ;
	trace("  component and get interface IX.") ;
	IX* pIX = NULL ; 
	HRESULT hr = ::CoCreateInstance(CLSID_Component1,
	                                NULL, 
	                                CLSCTX_INPROC_SERVER,
	                                IID_IX, 
	                                (void**)&pIX) ;
	if (SUCCEEDED(hr))
	{
		trace("Succeeded getting IX.") ;
		pIX->Fx() ;          // Use interface IX.
		trace("Release IX interface.") ;
		pIX->Release() ;
	}
	else
	{
		cout << "Client: \t\tCould not create component. hr = "
		     << hex << hr << endl ;    
	}

	// Uninitialize COM Library
	CoUninitialize() ;

	return 0 ;
}
Вот как мне тоже самое в C# проекте провернуть?
Пробовал ссылку на dll указывать, так пишет, что она не является COM

Последний раз редактировалось m9yt; 22.06.2012 в 13:53.
m9yt вне форума Ответить с цитированием
Старый 22.06.2012, 14:18   #6
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

У тебя было:
Цитата:
В задании написано: создать COM - сервер с использованием unmanaged(native) C++
причем тут С#?
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 22.06.2012, 14:24   #7
m9yt
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 108
По умолчанию

Так это сервер. Мне еще надо написать графический клиент, который через сервер работает с файловой системой. Там нужно использовать treeView для обзора файловой системы, который, думаю, проще использовать в С#
m9yt вне форума Ответить с цитированием
Старый 22.06.2012, 14:27   #8
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

http://msdn.microsoft.com/en-us/libr...=vs.71%29.aspx

Цитата:
Пробовал ссылку на dll указывать
А tlb файл создал?
Знающий не говорит, говорящий не знает (С) Лао Цзы

Последний раз редактировалось Krok27; 22.06.2012 в 14:47.
Krok27 вне форума Ответить с цитированием
Старый 22.06.2012, 14:48   #9
m9yt
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 108
По умолчанию

Нет. Дошел в книге до 7 главы и ничего про такой файл не написано.
Пролистал книгу, дальше об этом файле есть упоминания.

Последний раз редактировалось m9yt; 22.06.2012 в 16:49.
m9yt вне форума Ответить с цитированием
Старый 23.06.2012, 10:33   #10
m9yt
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 108
По умолчанию

Цитата:
Сообщение от Krok27 Посмотреть сообщение
Написать СОМ сервер с использованием неуправляемого С++, т.е. самый что ни на есть обычный С++.
А библиотека MFC входит сюда?
m9yt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
native api Bat{CMD}_Men Win Api 7 07.04.2011 11:57
Native Windows Application BOBAH13 Общие вопросы по программированию, компьютерный форум 12 04.04.2011 08:51
.NET библиотеки и unmanaged-программы ds.Dante Общие вопросы .NET 2 02.11.2009 19:55
Native API Д'якон Win Api 3 24.11.2008 22:22
Native API student_63 Win Api 1 31.03.2008 19:45