Bug #46224 [Opn->Fbk]: Cannot instantiate .Net object (ABCpdf 6.1 .Net)
| From: | cmb@php.net | Date: | Thu, 05 Aug 2021 12:22:35 +0000 |
| Subject: | Bug #46224 [Opn->Fbk]: Cannot instantiate .Net object (ABCpdf 6.1 .Net) | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-235612@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=46224&edit=1
ID: 46224
Updated by: cmb@php.net
Reported by: mark at koalit dot dk
Summary: Cannot instantiate .Net object (ABCpdf 6.1 .Net)
-Status: Open
+Status: Feedback
Type: Bug
Package: COM related
Operating System: Vista Business SP1 (da)
PHP Version: 5.2.6
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
Is this still an issue with any of the actively supported PHP
versions[1]? Note that as of PHP 8.0.0, you can (and likely have)
to set com.dotnet_version[2] for this to work. Prior to PHP 8.0.0,
you may be out of luck, and need to workaround.
[1] <https://www.php.net/supported-versions.php>
[2] <https://www.php.net/manual/en/com.configuration.php#ini.com.dotnet-version>
Previous Comments:
------------------------------------------------------------------------
[2009-07-08 12:09:04] p dot stankowski at transcomp dot pl
Just had to replace:
"TestLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c42df41937303b82'"
with:
"TestLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c42df41937303b82"
Sorry for spam, one sign "'" caused this error. Now the result is "Test
passed".
------------------------------------------------------------------------
[2009-07-08 11:53:20] p dot stankowski at transcomp dot pl
.Net framework 3.5 installed. PHP version 2.3.0.
I have created class library in C# called TestLibrary.dll.
It has only one class:
namespace TestLibrary
{
public class Test
{
public string GetString() { return "Test passed"; }
}
}
Then signed it and added it to GAC. In C:\Windows\assembly I have found all values needed:
Version: 1.0.0.0
Culture: Neutral
Public Key Token: c42df41937303b82
Script:
<?php
$test = new DOTNET("TestLibrary, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=c42df41937303b82'", "TestLibrary.Test");
print($test->GetString());
?>
Expected result:
Test passed
Actual result:
PHP Fatal error: Uncaught exception 'com_exception' with message 'Failed to
instantiate .Net object [CreateInstance] [0x80131047] ' in
C:\home\Projects\hi_1289_IT-ZEB-SERVER\trunk\src\PHPWithNETTest\index.php:10
Stack trace:
#0 C:\home\Projects\hi_1289_IT-ZEB-SERVER\trunk\src\PHPWithNETTest\index.php(10):
dotnet->dotnet('TestLibrary, Ve...', 'TestLibrary.Tes...')
#1 {main}
thrown in C:\home\Projects\hi_1289_IT-ZEB-SERVER\trunk\src\PHPWithNETTest\index.php on line 10
------------------------------------------------------------------------
[2008-10-24 10:39:56] bjori@php.net
reclassified.
------------------------------------------------------------------------
[2008-10-03 13:08:31] mark at koalit dot dk
Forgot to include PHP version (5.2.6)
------------------------------------------------------------------------
[2008-10-03 13:07:10] mark at koalit dot dk
Description:
------------
.Net framework version 3.5 (latest) is installed.
Installed a specific .Net component, but PHP fails to instantiate the object.
The script is runnning from command line.
The standard example:
$stack = new DOTNET("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Hello ");
echo $stack->Pop() . $stack->Pop();
Works fine - returns "Hello .Net"
Seems like lot's of users have problems using .Net objects from PHP - can you confirm this as a
bug or is a local problem ?
Reproduce code:
---------------
$pdf = new DOTNET("Assembly=ABCpdf, Version=6.1.1.5, Culture=neutral,
PublicKeyToken=a7a0b3f5184f2169", "Websupergoo.ABCpdf6.Doc");
(needs to install ABCpdf 6.1 .Net from www.websupergoo.com)
Expected result:
----------------
nothing
Actual result:
--------------
PHP Fatal error : Uncaught exception 'com_exception' with message 'Failed to
instantiate .Net object [CreateInstance] [0x80131047]' in D:\dotnet\dotnet.php
Stack trace:
#0 (snip) dotnet->dotnet('Assembly=ABCpdf...', 'Websupergoo.ABCpdf6.Doc')
#1 {main}
thrown in D:\dotnet\dotnet.php
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=46224&edit=1