Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Необходимо вызвать из DLL функцию вызова Excell [D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]


ganda ©   (2005-08-09 08:37:00) 

Добрый день!

Необходимо вызвать из DLL функцию вызова Excel и передачи данных в ячейку, если можно будет предоставить не большой модуль реализации данной проблемы.

Благодарю за Внимание!


isasa   (2005-08-09 20:57:00) [1]

>Если можно будет более полный модуль Пожалуйста

так вроде все, остальное пишешь сам, там где ...

exports
....


evvcom   (2005-08-09 17:25:00) [2]


> ganda ©   (09.08.05 13:49) [17]

Если ты хочешь получить совет как написать то или это в Delphi, то так и спрашивай, а не мути с какими-то еще непонятными средами, неизвестными никому или подавляющему большинству. Если для тебя не составляет труда прицепить dll, то реализуй в dll пример из [1] и не морочь никому голову.


Alexander Panov   (2005-08-09 14:09:00) [3]

ganda ©   (09.08.05 12:48) [15]
если знаем язык BSSript,


Не проще одратиться в БанкСофтСистемс по поводу языка скриптов?

В постинге [12] тебе написали, как вызвать Coinitialize.


ganda   (2005-08-09 13:49:00) [4]

Да не работает в этой среде СОМ объекты, одни только DLL что в них напишеш то и будет работать.


alex_***   (2005-08-09 13:38:00) [5]

Если эта среда умеет работать с COM объектами, то вперед. Если нет, то цепляй DLL


ganda   (2005-08-09 12:48:00) [6]

в какой среде все это дело вызывается все равно главное что бы модуль был сделан в динамической билиотеки, если знаем язык BSSript, то буду не против узнать как можно из неё вызвать Excel  и занести в её ячейку данные.


TUser   (2005-08-09 12:37:00) [7]

Среда - FreePascal?


ganda   (2005-08-09 12:09:00) [8]

Если можно будет более полный модуль Пожалуйста


isasa   (2005-08-09 11:38:00) [9]

Если CoInitialize(..) ( single-thread apartment(STA) ), то можно попробовать так:

library mylib;

procedure DLLEntryPoint(Reason: Word);
begin
 case Reason of
   DLL_PROCESS_ATTACH: CoInitialize(nil);
   DLL_PROCESS_DETACH: CoUninitialize;
 end;
end;

exports
....

begin
 DLLProc:=@DLLEntryPoint;
 DLLEntryPoint(DLL_PROCESS_ATTACH);
end.


ganda   (2005-08-09 11:22:00) [10]

Блин ламерский вопрос, где это все дело прописывать
в DLL если да то будь добр под скажи.
DLL создается в Delphi, но её реализация выглядит как вызов процедуры/функция.


Amoeba   (2005-08-09 11:00:00) [11]


> ganda ©   (09.08.05 10:45) [8]
> Возникла следущая проблема, выдается следущая ошибка 'Не
> был произведен вызов COINITIALIZA'

Ну так пропиши в начале CoInitialize, а по завершении CoUninitialize


ganda   (2005-08-09 10:56:00) [12]

нет среда не работает с интерфейсами,
поэтому все что связано с внешними приложения экспорта и импорта в форматы WORD,EXCEL,DB  и т.д.
(кроме текстового формата, СИСТЕМА Называется "ДБО -BS Client ") приходится писать в DLL.


ganda   (2005-08-09 10:45:00) [13]

Возникла следущая проблема, выдается следущая ошибка 'Не был произведен вызов COINITIALIZA'


Думкин   (2005-08-09 10:39:00) [14]

> Ситуация следущия в среде программирование в которой работаю
> нет поддержки языка OBJECT PASCAL хотя он схож с ним,

А эта среда работает с интерфейсами?


evvcom   (2005-08-09 10:39:00) [15]


> Необходимо создать функцию именно в новой DLL которая бы
> все это дело делала.

Ну так создай. Я что должен угадать в какой среде ты собираешься писать свою dll?

> Создать Excel

Это уже за тебя создали программисты Microsoft.


isasa   (2005-08-09 10:30:00) [16]

А в чем проблема.
Создаем интерфейс

var appExc: OleVariant;
...........
appExc := CreateOleObject('Excel.Application');
........
и далее как обычно, только делаем в библиотеке.

Если предполагается вызов функций из Excel то тоже,
как обычно, только не забыть stdcall и то, что, integer в Excel VB - 16bit.


ganda   (2005-08-09 09:59:00) [17]

1. Создать Excel.
2. Передача данных в ячейки созданого объекта
Эти 2 задачи необходимо делать непосредственно в DLL


Думкин   (2005-08-09 09:54:00) [18]

> ganda ©   (09.08.05 09:51) [2]

А можно по русски и медленнее? В чем именно задача - по шагам.


ganda   (2005-08-09 09:51:00) [19]

Спасибо за совет,  но это не то что я хотел. Из Delphi все без проблем. Необходимо создать функцию именно в новой DLL которая бы все это дело делала. Ситуация следущия в среде программирование в которой работаю нет поддержки языка OBJECT PASCAL хотя он схож с ним, поэтому нужно экспортировать из DLL


evvcom   (2005-08-09 09:03:00) [20]

А другие ветки по форуму влом посмотреть? Например, это http://www.delphimaster.ru/cgi-bin/forum.pl?n=1&id=1123057899&p=2


Наверх

Титульная страница Поиск, карта сайта Написать письмо