Bug #72922 [Csd]: COM called from PHP does not return out parameters
Edit report at https://bugs.php.net/bug.php?id=72922&edit=1
ID: 72922
Updated by: ab@php.net
Reported by: mistr111 at yahoo dot com
Summary: COM called from PHP does not return out parameters
Status: Closed
Type: Bug
Package: COM related
Operating System: Windows Server 2008 R2 Standard
PHP Version: 7.0.10
-Assigned To:
+Assigned To: ab
Block user comment: N
Private report: N
New Comment:
@a at kornienko dot ru, please check the latest snapshots. If you still experience the issue, please
create a separate ticket and include the reproduce code.
Thanks.
Previous Comments:
------------------------------------------------------------------------
[2016-09-22 21:26:19] a at kornienko dot ru
I searched the line with the error. That's the line began to give an error on 7.0.11:
$pass=$vfp->Eval("rtri(pass)");
This method should return a value.
------------------------------------------------------------------------
[2016-09-21 21:29:22] a at kornienko dot ru
In 7.0.11 has stopped working COM, which worked well in 7.0.10. The 500 error.
------------------------------------------------------------------------
[2016-08-25 10:15:25] ab@php.net
Automatic comment on behalf of ab
Revision: http://git.php.net/?p=php-src.git;a=commit;h=392c5ea472145a8f15b78376d0ab155b16bbab43
Log: Fixed bug #72922 COM called from PHP does not return out parameters
------------------------------------------------------------------------
[2016-08-23 07:23:03] mistr111 at yahoo dot com
Hello, thanks for responding so quickly.
COM registration:
regsvr32 comTest.dll
comTest.dll is created in Embarcadero® Delphi 10 Seattle Version 23.0.21418.4207
(I have used COM objects created even in older versions of Delphi for almost a decade and it worked
fine).
comTest.dll was created just for testing purposes. I tested this exact version today with php 5.6 on
the same server and it worked OK.
Then with proper VC14 Win32 version of Apache and VC14 x86 PHP 7.0.10 and it returns correct result,
but in/out parameters keep input values instead of values provided inside COM.
I will send you an e-mail with the Delphi project (contains dlls - both Wind32 and Win64 versions)
and description of both php and apache setups(I do not know how to enclose it here).
The php test script and outputs for both versions will be enclosed. Both setups use 32-bit versions
but results for 64-bit versions are the same.
Method in COM object:
function TcomTestIF.test(const Param1: WideString; var Param2, Param3: WideString): WideString;
var res : string;
begin
res := 'Param1=' + Param1 + '; Param2=' + Param2 + '; Param3=' +
Param3;
Param2 := 'Output text Param2';
Param3 := 'Output text Param3';
Result := res;
end;
------------------------------------------------------------------------
[2016-08-22 17:04:21] ab@php.net
Thanks for the report. Please post the test class, or better a test project, along with the way you
register the class and other setup. Also need the current/expected output to compare.
Thanks.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=72922
--
Edit this bug report at https://bugs.php.net/bug.php?id=72922&edit=1
Thread (7 messages)