Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.23;
Скачать: CL | DM;

Вниз

Не хочет работать COM DLL   Найти похожие ветки 

 
MV-GROB ©   (2003-01-13 12:10) [0]

Сделал COM DLL . В клиенте написаном на Д6 - работает, а в другом (1с СоздатьОбъект(имя_dll.имя_класса)) - не хочет Посоветуйте плиз чего небудь.


 
neXt ©   (2003-01-13 12:17) [1]

COM объект в библиотеку добавлен как "COM Object" или как "Automation Object"?
Просто если 1С использует "позднее связывание" (я просто не в курсе, как он взаимодействует с COM), то нужно б "Automation Object".


 
MV-GROB ©   (2003-01-13 12:26) [2]

neXt
Если чесно я не знаю, но например Прподключение ADO происходит так:
СоздатьОбъект(ADODB.Command)

Excel :
СоздатьОбъект(Excel.Application)
Я первый раз COM DLL использую



 
neXt ©   (2003-01-13 12:28) [3]

тогда по пробуйте добавить COM-объект в библиотеку как "Automation Object", хуже не будет


 
Петров Денис ©   (2003-01-13 12:41) [4]

Если используешь функцию "СоздатьОбъект", то создаваемый объект должен быть:
а) типа OLE Automation, т. е. должен быть унаследован от IDispatch;
б) твой OLE-сервер должен быть зарегистрирован в системе до вызова "СоздатьОбъект".

Таким способом "1С" может работать, например, с Windows Media Player.

Есть другой способ работы в "1С" с COM-серверами. Они могут оформляться как внешние компоненты "1С", тогда "1С" работает с ними несколько иначе (через специфические только для "1С" интерфейсы). Эти объекты в первой части ProgID всегда имеют строку "addin" (в справке "1С" посмотри функцию ЗагрузитьВнешнююКомпоненту).


 
MV-GROB ©   (2003-01-13 14:37) [5]

У меня 1с 75. В ней отсутствует "ЗагрузитьВнешнююКомпоненту", если можно поподробней


 
Romkin ©   (2003-01-13 15:06) [6]

Тебе пытаются сказать, что в wizarde надо было указать Automation object, а не com object


 
MV-GROB ©   (2003-01-13 15:17) [7]

Сделал, работает СПАСИБО.
Но Automation object почему - то хочет тип HRESULT.


 
neXt ©   (2003-01-13 15:20) [8]

мы все его хочем


 
MV-GROB ©   (2003-01-13 15:22) [9]

type
TCoSam = class(TAutoObject, ICoSam)
protected
procedure LenSam(Param1: Integer); safecall;
Function FLSsam(Param1: Integer)HRESULT; safecall;
{ Protected declarations }
end;

implementation

uses ComServ;

procedure TCoSam.LenSam(Param1: Integer);
begin
Param1:=Param1*Param1;
end;

Function TCoSam.FLSsam(Param1: Integer)HRESULT;
begin
result:=HRESULT(Param1*Param1);
end;


 
Romkin ©   (2003-01-13 15:23) [10]

Всегда. Если хочешь, чтобы была функция, установи еще один параметр и дай ему опцию [out,retval] - в паскале safecall отобразит как функцию, вызов из 1С - такой же


 
Петров Денис ©   (2003-01-13 15:37) [11]

MV-GROB>> В "1С" версии 7.5 ЕСТЬ функция "ЗагрузитьВнешнююКомпоненту"! Я больше чем уверен в этом.

Но, все-таки, работать в "1С" с COM-серверами лучше через формат ейных внешних компонент, а не просто через OLE Automation.
Например, если работаешь через внешнюю компоненту, то, как миинимум, сразу видно два преимущества:
1. Работает метод ЗагрузитьВнешнююКомпоненту. У него есть одна приятная фича: даже если COM-сервер не зарегистрирован, то она его зарегит перед подключением.
2. Становится доступна работа со страницей свойств COM-сервера. То есть, появляется возможность настройки компоненты пользователем.

В рамках этого форума сложно описть технологию создания внешних компонент для "1С", но, вообще-то есть доки на это.


 
MV-GROB ©   (2003-01-13 16:23) [12]

Петров Денис
А ссылочки на енти доки Е?


 
Петров Денис ©   (2003-01-13 16:44) [13]

Ну, разве что прислать по e-mail...


 
MV-GROB ©   (2003-01-13 17:01) [14]

michel@group-hitek.ru
и
hitek@redline.ru
Буду очень признателен



Страницы: 1 вся ветка

Текущий архив: 2003.01.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-72363
WCM
2003-01-12 13:27
2003.01.23
Length function


1-72266
MorfeyCOOL
2003-01-10 09:33
2003.01.23
Помогите вставить картинку в БД Access 2000


7-72573
mate
2002-11-11 12:39
2003.01.23
Windows


1-72397
Dmitriy2003
2003-01-13 16:15
2003.01.23
Совместимость C++ , Delphi


1-72239
4X4
2003-01-14 16:52
2003.01.23
onChange событие в Combobox?