ID: 26632
Updated by: [EMAIL PROTECTED]
Reported By: Regis dot Derimay at iQvolution dot com
-Status: Open
+Status: Assigned
Bug Type: COM related
Operating System: Windows XP Professional
PHP Version: 5CVS
New Comment:
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.
Previous Comments:
------------------------------------------------------------------------
[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 " Scan {$i}: {$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
------------------------------------------------------------------------
[2004-02-21 18:17:24] [EMAIL PROTECTED]
Sorry, this report slipped through the cracks.
I did however add automatic support for byref
parameters, so the code below *should* work
(no need to explicitly create variant objects
for $x, $y, $z).
Please let me know how you get on; try a recent PHP 5
snapshot (code was added a little while ago; beta 4
should work).
iQlib = new COM("iQvolution.iQLibIf");
$iQlib->load("c:\\A.iQmod");
$numScans = $iQlib->getNumScans();
for($i = 0; $i < $numScans; $i++) {
$objIf = $iQlib->getScanObject($i);
$scanIf = $objIf->getScanObjSpecificIf();
$scanIf->getPosition($x, $y, $z, false);
}
------------------------------------------------------------------------
[2004-02-21 03:33:16] Regis dot Derimay at iQvolution dot com
Is someone working on this very anoying bug? Did not here anything
since a while!
Thanks
------------------------------------------------------------------------
[2003-12-22 06:50:17] Regis dot Derimay at iQvolution dot com
Here the easiest script I got:
DLLs and needed instrcutions were sent by email the 16th dec. at 11:58
European time. (Subject DLLs for Bug #26632)
Hope this help. Would be nice to see this bug solved!
<?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 " Scan {$i}:&nsp;{$scanName}<BR>\r\n";
$x = VARIANT(0.0, VT_R8 | VT_BYREF);
$y = VARIANT(0.0, VT_R8 | VT_BYREF);
$z = VARIANT(0.0, VT_R8 | VT_BYREF);
$scanIf = $objIf->getScanObjSpecificIf();
$scanIf->getPosition($x, $y, $z, false);
}
// $iQlib->Release();
$iQlib = null;
}
catch (exception $e)
{
echo "<PRE>";
print_r($e);
echo "</PRE>";
}
?>
------------------------------------------------------------------------
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