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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ole Object 
:(
    Опции темы
Temnozor
Дата 28.10.2002, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 27.6.2002
Где: Тюмень

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



Мне надо написать программу на Си, использующей драйвер одной железки, прицепленной к COM-порту. Но все примеры приведены для Delphi. Подскажите, какую фунцию мне использовать вместо Delphi'иской CreateOleObject(). Выдержки из примера:
Код

var
 AX: OleVariant;

...

 AX:= CreateOleObject('SamAll.SamAll3');

...

procedure TMainForm.ReportButtonClick(Sender: TObject);
var
 Err: integer;
begin
 DisableButtons;
 try
   Report.Lines.Clear;
   AX.ReportType:= ReportType.ItemIndex+9;
   AX.ShowProgress:= ShowProgress.Checked;
   Err:= AX.BeginReport;
   while Err=0 do
     begin
     Err:= AX.GetRecord;
     if Err=0 then
       Report.Lines.Add(AX.Caption);
     end;
   AX.EndReport;
 finally
   ErrorNumber.Text:= inttostr(AX.ResultCode);
   ErrorText.Text:= AX.ResultDescription;
   EnableButtons;
 end;
end;

--------------------
Take a ride on, ride on, on your rotting horse on that deadly ground Take a ride, ride on, on your rotting horse with a pounding sound.
PM   Вверх
podval
Дата 28.10.2002, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


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

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



Пиши в Билдере и используй ту же функцию
PM WWW ICQ   Вверх
Temnozor
Дата 28.10.2002, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 27.6.2002
Где: Тюмень

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



Я уже разобрался. CreateControl.
А вообще, в VC есть средство создания класса прямо из файла (в моем случае dll, но можно ocx и др.). Причем создается класс со всеми методами и свойствами объекта. Так что проблем не возникло.
Вот часть того, что сгенерил Wizard:
Код

class CSamAll3 : public CWnd
{
protected:
DECLARE_DYNCREATE(CSamAll3)
public:
CLSID const& GetClsid()
{
static CLSID const clsid
= { 0x2AE09006, 0x7261, 0x11D2, { 0x8D, 0x28, 0x0, 0x0, 0xE8, 0xDC, 0x54, 0xD2 } };
return clsid;
}
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
{
return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID);
}

...

void put_DeviceEnabled(BOOL newValue)
{
static BYTE parms[] = VTS_BOOL;
InvokeHelper(0x6, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue);
}
CString get_DeviceDescription()
{
CString result;
InvokeHelper(0x1b, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
return result;
}

...


long EndReport()
{
long result;
InvokeHelper(0x27, DISPATCH_METHOD, VT_I4, (void*)&result, NULL);
return result;
}
long SetCaption()
{
long result;
InvokeHelper(0x2c, DISPATCH_METHOD, VT_I4, (void*)&result, NULL);
return result;
}
long SetValue()
{
long result;
InvokeHelper(0x48, DISPATCH_METHOD, VT_I4, (void*)&result, NULL);
return result;
}
...
};

--------------------
Take a ride on, ride on, on your rotting horse on that deadly ground Take a ride, ride on, on your rotting horse with a pounding sound.
PM   Вверх
Fantasist
Дата 29.10.2002, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


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

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



Цитата(Temnozor @ 28.10.2002, 13:30)
А вообще, в VC есть средство создания класса прямо из файла (в моем случае dll, но можно ocx и др.).

Такое средство есть практически во всех средах разработки.  :)
Обобщенно называемое импортом библиотеки типов. Только это не то же самое, что CreateOleObject - с помощью этой функции ты можешь создать объект не имея его библиотеки типов.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.0423 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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