[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как в PHP указать тип данных LONG
Страницы: 1, 2, 3
Эли4ка
Смотрю, но все равно не понимаю,можете сказать?
killer8080
Цитата (Danil_lll @ 5.09.2018 - 12:34)
Функция в COM-библиотеке:


STDMETHODIMP HybridCOM::GetTimeFromStart(BSTR inData, INT flags, INT sigId, DATE* outDateTime)

четвёртый параметр - это указатель, т.е. адрес начального байта переменной в ОЗУ, сам тип указывается чтобы C++ знал размерность переменной в байтах. Используется он для возврата значения, но из php ты не можешь туда воткнуть переменную, потому что передача по ссылке в PHP, и указатели в C, это совершенно разные вещи. PHP не позволяет работать с памятью напрямую, переменные хранятся в zval-ах и ты не сможешь передать указатель на значение переменной. Результат отработки должен быть в возврате функции.

PS вместо echo для начала лучше сделать var_dump, возможно там будет объект.



Спустя 11 минут, 6 секунд killer8080 написал(а):
подобный вопрос
https://stackoverflow.com/questions/3328050...function-in-php
twin
Вот почему я использую свою IDE вместо ваших бестолковых штормов и нетбинсов. Они работают только с классами. А ООП, это объекты. А если без ООП, ну тоеeсь нормальное программирование, то оно и подавно не надо.

Хотя о чем я... Никто не пишет на ООП? только притворяются. Могу поспорить. Потому что все IDE заточены на transaction script. А именно на процедурку.

Жаль слились с форума Santechnic и Ron,было бы о чем поговорить.)))

Давайте позиционировать форум для новичкоф. Будет хоть мелкий толк.



_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Danil_lll
Цитата (killer8080 @ 6.09.2018 - 23:30)
$datetime =  $PHP_LIB->TSAGetTimeFromSig($inData, 0, 0);
echo $datetime;

Неа... PHP хочет все 4 параметра...
Вот что пишет:
Uncaught exception 'com_exception' with message 'Error [0x8002000e] Недопустимое число параметров.
Эли4ка
killer8080,ого. Спасибо за подробность. Я просто никогда не работала еще с PHP и С одновременно. Не было задач. Поэтому и не обратила внимание на то,что там указатель.
Цитата
Вот почему я использую свою IDE вместо ваших бестолковых штормов и нетбинсов. Они работают только с классами. А ООП, это объекты. А если без ООП, ну тоеeсь нормальное программирование, то оно и подавно не надо.

Хотя о чем я... Никто не пишет на ООП? только притворяются. Могу поспорить. Потому что все IDE заточены на transaction script. А именно на процедурку.

twin, не совсем поняла о чем вы wink.gif
Цитата
Давайте позиционировать форум для новичкоф. Будет хоть мелкий толк.

Если смотреть последние темы-то увы так и есть.
Цитата
Неа... PHP хочет все 4 параметра...
Вот что пишет:
Uncaught exception 'com_exception' with message 'Error [0x8002000e] Недопустимое число параметров.

Danil_lll,exception С или PHP принадлежит?
Danil_lll
Цитата (Эли4ка @ 7.09.2018 - 08:19)
exception С или PHP принадлежит?

Даже не знаю...
По сути это исключение в самой библиотеке... Получается исключение в С
killer8080
Цитата (Danil_lll @ 7.09.2018 - 06:21)
Неа... PHP хочет все 4 параметра...
Вот что пишет:
Uncaught exception 'com_exception' with message 'Error [0x8002000e] Недопустимое число параметров.

Значит я не прав user posted image
а вариант без амперсанда пробовал?
$datetime = 0; 
$PHP_LIB->TSAGetTimeFromStart($inData, 0, 0, $datetime);
Эли4ка
Цитата
По сути это исключение в самой библиотеке... Получается исключение в С

Вы разобрались почему именно оно выбрасывается или нет?
Danil_lll
Цитата (killer8080 @ 7.09.2018 - 18:49)
а вариант без амперсанда пробовал?

Пробовал. Говорит то же самое, что и без него:
Uncaught exception 'com_exception' with message 'Parameter 0: Несовпадение типов.
Danil_lll
Цитата (Эли4ка @ 7.09.2018 - 20:50)
Вы разобрались почему именно оно выбрасывается или нет?

Нет...
И не знаю даже как
Эли4ка
Вы автор сей чудной(долбанной) библиотеки?
Danil_lll
Цитата (Эли4ка @ 10.09.2018 - 08:27)
Вы автор сей чудной(долбанной) библиотеки?

Еееееесли б... Я новый сотрудник организации.... Проходит мой второй стажировочный месяц... А писал эту библиотеку бывший сотрудник)
killer8080
Цитата (Danil_lll @ 10.09.2018 - 06:13)
Пробовал. Говорит то же самое, что и без него:
Uncaught exception 'com_exception' with message 'Parameter 0: Несовпадение типов.

даже не знаю что посоветовать, можно попробовать Variant

$datetime = new Variant(0, VT_I4 | VT_BYREF); 
$PHP_LIB->TSAGetTimeFromStart($inData, 0, 0, $datetime);

С флагами поэкспериментируй.
killer8080
Цитата (Danil_lll @ 10.09.2018 - 15:14)
Еееееесли б... Я новый сотрудник организации.... Проходит мой второй стажировочный месяц... А писал эту библиотеку бывший сотрудник)

а зачем на php это переделываете, раз на C# всё работает?
Danil_lll
Цитата (killer8080 @ 10.09.2018 - 16:25)
а зачем на php это переделываете, раз на C# всё работает?

Различные организации требуют этот интерфейс на PHP.
Да и пришел новенький, видимо решили: пусть помучается)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.