ID:               26632
 User updated by:  Regis dot Derimay at iQvolution dot com
 Reported By:      Regis dot Derimay at iQvolution dot com
-Status:           Assigned
+Status:           Closed
 Bug Type:         COM related
 Operating System: Windows XP Professional
 PHP Version:      5CVS
 Assigned To:      wez
 New Comment:

Hi,



we found a bug in our COM-IF, which wrongly referenced one object. So
in the most cases, unref was called on this object to early.

Sorry for that. You can close the case.



JFY, the following code does not work:

$scanIf->getPosition($x, $y, $z, false);



You have to define your vars before:

$x = 0.0;

$y = 0.0;

$z = 0.0;

$scanIf->getPosition($x, $y, $z, false);


Previous Comments:
------------------------------------------------------------------------

[2004-02-24 20:02:54] alain at samoun dot com

<?PHP



        $Vsheets1 = new VARIANT("", VT_BSTR); #No byRef - works

        $Vsheets2 = new VARIANT("", VT_BSTR|VT_BYREF); #Doesn't work

        

        

?>

------------------------------------------------------------------------

[2004-02-22 05:34:13] Regis dot Derimay at iQvolution dot com

Ok for the subst.

For the rest of a problem, that is of course a bad news for me that you
you do not have time now because I presume that it could then be not
solved in PHP 5 release version. :-( 

Is there anything I can do to help you save time??

------------------------------------------------------------------------

[2004-02-22 05:20:36] [EMAIL PROTECTED]

I'll look into it, but don't have time to get stuck in

for a couple of weeks :/



Note: the subst thing is due to security privilieges that

your web server is using at runtime.

------------------------------------------------------------------------

[2004-02-22 04:53:17] Regis dot Derimay at iQvolution dot com

Ok. Here the previous problem:

I registered the iQopen.dll (COM) using regsvr32 on a path defined with
a subst. The dos "subst" command allows to define a virtual harddrive
under windows. Interesting enough, if you register your COM using a
path based on a subst, PHP is not able to find the module (error of the
previous message). But other tools like Excel are able to do it.

So maybe you want to take a look on this.



Now I am able to load the initial script under PHP 5 beta 4. I am doing
the following:

<?php 

try {

        $iQlib = new COM("iQvolution.iQLibIf");



        $iQlib->load("c:\\A.iQmod");



        $numScans = $iQlib->getNumScans();

        echo "Nb of scans:{$numScans}<BR>\r\n";



        for($i = 0; $i < $numScans; $i++)

        {

                $objIf = $iQlib->getScanObject($i);

                $scanName = $objIf->getName();

                echo "&nbsp;&nbsp;Scan {$i}:&nbsp;{$scanName}<BR>\r\n";



                $scanIf = $objIf->getScanObjSpecificIf();

                $scanIf->getPosition($x, $y, $z, false);

                echo "$x";

        }



//    $iQlib->Release();

    $iQlib = null;

}

catch (exception $e)

{

        echo "<PRE>";

        print_r($e);

        echo "</PRE>";

}

?>



It crashing with a "memory could not be written" message. It displays

-------

Nb of scans:3

  Scan 0: 

-------



So basically the same as beta 3. How can we solve the problem ??

------------------------------------------------------------------------

[2004-02-22 04:17:15] Regis dot Derimay at iQvolution dot com

Hi! Thanks for the answer.

Now I am using PHP 5 beta 4. I use the php-cgi.exe version.



I'm doing the following:

<?php 

        echo "Start";



try {

        $iQlib = new COM("iQvolution.iQLibIf");

}

catch (exception $e)

{

        echo "<PRE>";

        print_r($e);

        echo "</PRE>";

}



echo "End";

?>



It crashs echoing the following:

Start

com_exception Object

(

    [message:protected] => Failed to create COM object
`iQvolution.iQLibIf': The specified module could not be found.



    [string:private] => 

    [code:protected] => -2147024770

    [file:protected] => C:\Documents and Settings\rd\My
Documents\iQvolution\Develop\iQworks
HTML\Debug\iQworks\ProjectManagement\COM.php

    [line:protected] => 5

    [trace:private] => Array

        (

        )



)



End





Of course, it seems as the iQworks COM Obj is not registered, but this
is not true as for example Excel with a visual basic script is working
correctly.



Do you want me to send you the dlls? Or do something that could help to
debug the problem?



Thanks!



Régis

------------------------------------------------------------------------

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
    http://bugs.php.net/26632

-- 
Edit this bug report at http://bugs.php.net/?id=26632&edit=1

Reply via email to