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

Вниз

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 вся ветка

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

Наверх




Память: 0.45 MB
Время: 0.016 c
1-78933
-=GaLaN=-
2003-11-12 20:22
2003.11.24
Колесико мышки


3-78825
VP
2003-11-04 17:23
2003.11.24
Quick Report Pro


8-79061
Andry
2003-07-28 00:19
2003.11.24
Скорость нажатия клавиш


7-79189
di.ma2002@mail.ru
2003-09-01 06:23
2003.11.24
Разговор через модем


14-79130
Knight
2003-10-31 20:52
2003.11.24
ИМХО...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский