Вниз
Скачать: CL | DM;

PHP и COM   Найти похожие ветки 

← →
lokka ©   (2003-11-12 00:56) [0]

Не уверен с выбором рубрики. Необессудьте :)
Я испытываю серьезные затруднения при использовании COM, написанном мною в Delphi 7, в PHP. COM-библиотека содержит (пока) два объекта: Domain и Domains (коллекция). Когда я вызываю их следующим образом

$domains = new COM("MyLib.Domains");
$domain = $domains->Item(1);
echo $domain->Name;


вылетает стандартное окно ошибки (я на WindowsXP Pro), которое повествует о том, что произошел сбой и предлагает отправить отчет в Microsoft. Текста ошибки там нет.

Методом тыка обнаружилось, что ошибка происходит на строке echo $domain->Name; При аналогичном использовании в ASP все работает замечательно:

set Domains = Server.CreateObject("MyLib.Domains")
set Domain = Domains(1)
Response.Write Domain.Name


Если у объекта "Domain" переименовать свойство "Name" в, скажем, "DomainName", то неожиданно PHP начинает работать. Однако, недолго. Если добавлять новые методы и свойства - они опять не работают. В ASP все раобтает замечательно.

Если реализацию свойства "Name" изменить вот так

function TDomain.Get_Name: WideString;
begin
Debug("Property Works!");
Result := FDomain.DomainName;
end;

т.е., добавить процедуру "Debug", которая, скажем, пишет в лог строковый параметр, то "Debug" не работает. Такое ощущение, что PHP не может найти свойство Name.

Может кто-нибудь сталкивался с подобноыми проблемами? Может в Delphi надо включить/выключить какие-нибудь опции?

Заранее спасибо.


← →
Юрий Федоров ©   (2003-11-12 01:02) [1]

dual включен? Библиотека типов зарегистрирована корректно?
Если да да, то дело на на стороне Delphi, имхо
вообще конечно это не тот форум...


← →
lokka ©   (2003-11-12 01:11) [2]

Dual включен и зарегистрирована корректно - работате замечательно в ASP.


← →
nikkie ©   (2003-11-12 01:27) [3]

странный эффект... а может что-то не в порядке с коллекцией? попробуй сделать сам Domain creatable и проверить как у него работает Name.


← →
lokka ©   (2003-11-12 01:44) [4]

$domain = new COM("MyLib.Domain");
$domain->Name = "Boo";


не работает :(


← →
Юрий Федоров ©   (2003-11-12 01:48) [5]

>>lokka © (12.11.03 01:44) [4]
в ASP все работает. В PHP не работаает ни хрена. Вывод -
COM Server написан правильно. Значит, ошибки кроятся в PHP. А это не тот форум



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.015 c
14-79101
gestern
2003-11-02 16:23
2003.11.24
Это всё от бардака в стране


3-78820
pashaz
2003-11-04 16:32
2003.11.24
Поля в DBGrid не редактируются???


4-79214
frost63
2003-10-02 07:20
2003.11.24
ShellExecute


3-78753
Erden
2003-11-03 12:18
2003.11.24
Хранимая процедура


1-78934
Afonya
2003-11-07 09:54
2003.11.24
Создание компонента нестандартной таблицы




   Наверх