Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];

Вниз

Внешний COM-сервер   Найти похожие ветки 

 
Genry   (2003-12-04 17:23) [0]

Доброго времени суток.
Подскажите, как сделать внешний COM сервер, который не содержал бы ни одной формы ? Пытался просто не добавлять ни одну форму в проект, но при вызове возникает ошибка: The Object Universal Unique Identifier (UUID) was not found. Это как бы понятно, потому что без главной формы процесс COM-сервера создается и сразу завершается в памяти (думаю причина ошибки в этом). А как сделать чтоб процесс "висел" в памяти без всяких форм и мог функционировать как полноценный COM-сервер ?
Заранее спасибо.


 
Polevi   (2003-12-04 18:31) [1]

ActiveX Library для этих целей предназначена


 
Genry   (2003-12-04 19:00) [2]

Извиняюсь, я немного не до конца объяснил.
Нужен COM-сервер, который содержал бы в себе несколько объектов, поддерживающих разные интерфейсы. Все объекты - невизуальные и их методы предназначены для различных целей, в т.ч. записи в базу. Нужно чтоб сервер был именно внешний (EXE а не DLL), по определенным причинам.
Непонимаю, как ActiveX может помочь в данной ситуации ?
Сами объекты с интерфейсами я уже создал, и все работает как надо, остался открытым лишь вопрос как убрать главную форму из этого приложения (COM-сервера). Это нужно по нескольким причинам. Во-первых при любом Raise на заднем плане выскакивает эта форма, а во вторых она не нужна там по смыслу.


 
me   (2003-12-04 21:12) [3]

Ну так запретим показывать форму примерно так (или вообще присвоить False)
Application.ShowMainForm := ComServer.StartMode = smStandalone;


 
Nikolay M.   (2003-12-04 21:44) [4]

Удалить вообще эту форму из проекта?


 
Genry   (2003-12-04 21:54) [5]


> me (04.12.03 21:12) [3]

Спасибо, так и сделал.
Но я думал, что можно как-то вобще без этой формы обойтись, ведь она в проекте по сути дела не нужна.


> Nikolay M. © (04.12.03 21:44) [4]

Я уже говорил выше, что без формы ничего не работает, так как процесс COM-сервера запускается и сразу же завершается в памяти. Так же как и обычный EXE файл, если в нем не создаются никакие формы. Поэтому обращение к нему приводит к ошибке.

В любом случае, всем спасибо.


 
Юрий Федоров   (2003-12-04 21:57) [6]

>>Genry (04.12.03 21:54) [5]
Я тоже так делал, разбираться досконально времени не было, сделал как быстрее.
Думаю, в любом случае придется создавать какое-то окно (хотя бы AllocateHWND )и писать цикл обработки сообщений


 
Бином Ньютоныч   (2003-12-04 22:11) [7]

Напиши в файле проекта так:

uses
Forms,
Windows,
.....

{$R *.TLB}

{$R *.res}

var
Msg: TMsg;

begin
Application.Initialize;
while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end.


 
Ломброзо   (2003-12-04 22:27) [8]

Ньютоныч, что-то мне кажется, что попытка запустить этот код с ключом regserver окажется неудачной.


 
Бином Ньютоныч   (2003-12-04 22:53) [9]

>Ломброзо © (04.12.03 22:27) [8]

Да? А мне чет не кажется:) TComServer.Initialize вызывает Halt по этому поводу



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

Форум: "Основная";
Текущий архив: 2003.12.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
1-52165
Silver_
2003-12-02 17:22
2003.12.16
TFrame и OnCreate


8-52296
Ник
2003-08-20 12:15
2003.12.16
TImage-jpeg


8-52295
ANubis
2003-08-20 19:04
2003.12.16
Оссилоскоп


8-52288
Shur
2003-08-18 17:12
2003.12.16
Распознование текста


1-52212
pepper
2003-12-02 10:42
2003.12.16
копирование файлов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский