Компиляция нативной клиентской заглушки COM в клиенте с использованием VS2010

Я новичок в программировании COM и создаю базовую пару сервер/клиент COM из Visual Studio 2010. И клиентский, и серверный проекты живут в одном и том же решении. Я хотел бы знать, как лучше всего включить сгенерированный клиентский файл-заглушку и заголовочный файл в клиентский проект. Я создал MIDL в своем серверном проекте, и когда я компилирую проект, файлы _h.h, _i.c и _p.c генерируются в исходном каталоге моего проекта.

  • Нужно ли компилировать оба файла.c в моем клиентском проекте?
  • Является ли лучший способ скомпилировать их в клиентском проекте, добавив их в качестве связанных файлов в клиентский проект из исходного каталога серверного проекта?
  • Есть ли способ для Visual Studio узнать, что файлы _hh, _ic и _pc устарели, когда я изменяю MIDL, или мне нужно не забыть перекомпилировать сервер проекта каждый раз, когда я касаюсь MIDL?
  • Куда лучше всего поместить файл.h? -Может ли он находиться в файле stdafx.h в серверном проекте? Если да, то правильно ли добавлять исходный каталог серверного проекта в заголовочные каталоги клиентского проекта?
  • Должен ли клиентский проект иметь «ссылку» (в смысле ссылки Visual Studio)на серверный проект?

Дополнительно -Я хотел бы сделать эту регистрацию бесплатной. Есть ли что-то еще, что мне нужно сделать в этом случае, помимо наличия манифестов для моего клиента и сервера?

..

редактировать

Глядя на статью MSDN здесь:http://msdn.microsoft.com/en-us/library/windows/desktop/aa366830(v=vs.85).aspx , кажется, что из сгенерированных файлов, если я хочу поддерживать только в -proc reg-бесплатная активация,Мне нужно только скомпилировать _i.c и включить файлы _h.h в свою клиентскую программу.

dlldata.c и _p.c используются для создания прокси-библиотеки DLL, которая поддерживает регистрацию на удаленном компьютере (для активации удаленным компьютером? или тоже локальный комп, вне прока? Если он нужен для локального компа, вне проца, то зачем он нужен, если dll COM-сервера прописана? DLL-библиотека COM-сервера отличается от DLL-прокси, да?)

Большое спасибо,

--Мэтт

6
задан Matt 17 April 2012 в 06:38
поделиться