Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интерфейсный модуль 
:(
    Опции темы
Ham
Дата 30.7.2003, 18:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Доброго вам времени суток!
У меня есть интерфейсный модуль к ком серверу ( dll ) написанный на delphi:
Код
unit IntUnit;

interface
type IFPrinter = Interface  
    ['{B426E9E1-E5EC-11D6-816E-DDD993618123}']
 function PortInit(com: byte): boolean;
 function InitpKKM:byte;
 function Position(name:string;price,quantity,sum:real;section:byte):byte;
 function Income(sum:real):byte;
 function Outlay(sum:real):byte;
 function Receipt(sum,by_cheque,on_credit:real):byte;
 function Return(sum:real):byte;
 function Print(line:string):byte;
 procedure Close;
end;

const
 Class_FPrinter: TGUID = '{B426E9E1-E5EC-11D6-816E-DDD993618123}';

implementation

end.


помогите переделать под С, CBilder
  Вверх
Ham
Дата 30.7.2003, 19:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Просто, срочно необходимо!
  Вверх
TaTaP
Дата 31.7.2003, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 15.10.2002

Репутация: 1
Всего: 1



В С++ интерфейс - это абстрактный класс, у которого все функции - чисто виртуальные. Для того, чтобы связать интерфейс с GUID, то надо использовать IDL...
PM MAIL   Вверх
Vyacheslav
Дата 31.7.2003, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



На C++Builder 6 это будет выглядеть примерно так
Код

__interface INTERFACE_UUID("{B426E9E1-E5EC-11D6-816E-DDD993618123}") IFPrinter  :

   public IInterface
{
public:
  virtual bool __stdcal PortInit(unsigned char  ) = 0;
  virtual unsigned char __stdcal   InitpKKM(void)=0;
  virtual unsigned char  __stdcal   Position(ShortString name, double price, double  quantity, double sum:real,unsigned char   section) =0;
 virtual unsigned char  __stdcal   Income(double sum)=0;
virtual unsigned char  __stdcal    Outlay(double sum)=0;
virtual unsigned char  __stdcal    Receipt(double sum, double by_cheque, double on_credit)=0:
virtual unsigned char  __stdcal    Return(double sum)=0;
virtual unsigned char  __stdcal    Print(ShortString line)= 0;
 virtual void  __stdcal  Close(void)=0;
};





--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Ham
Дата 31.7.2003, 08:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(TaTaP @ 31.7.2003, 02:03)
В С++ интерфейс - это абстрактный класс, у которого все функции - чисто виртуальные. Для того, чтобы связать интерфейс с GUID, то надо использовать IDL...

Поясните пожалуйста, как это понимать!
  Вверх
DENNN
Дата 31.7.2003, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



IDL- Interface Definition Language (Язык описания интерфейсов). Создан специально, чтоб описывать интерфейсы COM на переносимом языке, обычно описание структуру и GUID интерфейсов храниться в этом файле.
PM ICQ   Вверх
Zigurds
Дата 31.7.2003, 14:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ti mozjes zaimportirtovatj etot dll v C++ Builder, on sgjenjerirujet praviljnoje opsianjie interfeisov v header failje.

пользуйтесь транслитом

Ти мозэс заимпортиртоватж етот длл в Ц++ Буилдер, он сгэнэрируэт правилжноэ опсианжие интерфеисов в хеадер фаилэ.
  Вверх
Ham
Дата 1.8.2003, 00:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А кто скажет как на VC переделать?
  Вверх
Ham
Дата 1.8.2003, 00:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Прошу прощения! Я имел ввиду где можно взять инфу по IDL и пример какой нибудь к ниму!
  Вверх
TaTaP
Дата 1.8.2003, 01:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 15.10.2002

Репутация: 1
Всего: 1



Вверху форума есть специальный раздел по литературе. Заходишь, выбираешь сайт, ищешь книги по COM/ActiveX и читаешь ВСЮ книгу (желательно 2-3 раза, т.к. с первого раза много непонятно). Потом приходишь на этот форум и уже сам отвечаешь на подобные вопросы...
PM MAIL   Вверх
Ham
Дата 1.8.2003, 11:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(TaTaP @ 1.8.2003, 01:44)
Вверху форума есть специальный раздел по литературе. Заходишь, выбираешь сайт, ищешь книги по COM/ActiveX и читаешь ВСЮ книгу (желательно 2-3 раза, т.к. с первого раза много непонятно). Потом приходишь на этот форум и уже сам отвечаешь на подобные вопросы...

Хм. mad.gif Примерно такие же ответы я могу давать в каждом топике всем подряд! Типа наберитесь опыта, прочитайте кучу литературы, а потом вы станете спецами и вам не понадобится спрашивать на форуме!
Я наверное буду очень крутым!
Я перекопал кучу инфы по ком объектам! Но нигде ни слова не сказано про VC или IDL!
  Вверх
DENNN
Дата 1.8.2003, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Не там копал. Про VC особо и искать не нужно: заходишь на сайт с компьютерной тематикой - почти все что там сказано по C++ относится и к VC.
С IDL сложнее. Во первых, потому что Нормальных оучающих примеров по COM/ATL в сети просто нет, а все только на бумаге (это мое сугубо личное мнение). Во 2-ых, потому что тема эта на порядок сложнее и требует большей кропотливости и труда (сравнительно с темой "C++ за 20 дней" smile.gif ).
Как тебе уже сказали, если ты не гений, то вероятно книгу по ATL тебе придтся прочитать не один раз sad.gif И это хорошо, потому что все же идеология построения платформонезависимых объектов своеобразна.

Если же ты планируешь за 1-2 дня переписать дельфийный код на сишный ком-объект, но делать это на си не умеешь, то лучше сейчас этим не занимайся - даже если какой-то код появиться, то отлаживать его тоже надо уметь. sad.gif
PM ICQ   Вверх
Ham
Дата 1.8.2003, 12:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Просто проект горит!
Клиенты написанные на билдеровских средах работают без проблем! Но вот беда надо ещё и на VC,VB,1C чтоб заработало sad.gif
Я уже незнаю что делать!
  Вверх
DENNN
Дата 1.8.2003, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Если тебе просто в VC надо использовать COM-объекты, которые написанны на другом языке, то нет проблем - для этого COM-технология и была создана.
Тебе же сказали, что необходимо иметь заголовочный файл, где объявлены все GUID твоего объекта и задекларированны его интерфейсы.
PM ICQ   Вверх
Ham
Дата 1.8.2003, 13:11 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(DENNN @ 1.8.2003, 13:07)
Если тебе просто в VC надо использовать COM-объекты, которые написанны на другом языке, то нет проблем - для этого COM-технология и была создана.
Тебе же сказали, что необходимо иметь заголовочный файл, где объявлены все GUID твоего объекта и задекларированны его интерфейсы.

Ну так!
Что я и прошу с самого начала!
Для BC такой модуль написали, спасибо! А вот для VC и VB никак.
Если кто может, помогите!

PS Может и для 1C.
ЗЫЖ Я наверное повешусь!
  Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0863 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.