PHP调用C#写的dll组件,提示Failed to create COM object

PHP调用C#写的dll组件,已注册已加载,但是在PHP上仍然是提示
Failed to create COM object `CodeData.GetData'

求解啊,谢谢了。

C#dll生成,设置修改了以下步骤:

1、在生成(Build)属性里选中“为 COM interop 注册”

2、在签名(signing)属性选中“为程序集签名”;

3、新建一个签名,起个名字;

4、取消勾选使用密码保护密钥文件;

5、修改工程属性文件(AssemblyInfo.cs),确认 [assembly: ComVisible(true)] 。

并且使用Visual Stdio的命令提示符里进行手动注册:

gacutil /i CodeData.dll

regasm CodeData.dll

均提示成功。

PHP环境配置是正常的,

<?php
echo "OK";
try{
$com = new Com("CodeData.GetData");
$result = $com->GetData();
echo $result;
}
catch(Exception $e){
print_r($e->getMessage());
}
$com = null;
?>

这么一段代码,可以输出OK,还有Failed to create COM object `CodeData.GetData'

OKFailed to create COM object `CodeData.GetData': ��Ч���﷨

5个回答

如果注册了,那就要看一下创建对象时为什么失败了。添加一些错误返回信息等

oyljerry
oyljerry 回复洋哥爱猫猫: 你自己写个程序加载一下试试
接近 5 年之前 回复
yushuo19901110
洋哥爱猫猫 或者说,您能给一个能正常运行创建COM object的例子么?我这里最简单的COM object都不能正常使用呢。
接近 5 年之前 回复
yushuo19901110
洋哥爱猫猫 我对php不是太熟,地址栏输入localhost,网页输出就是这些:OKFailed to create COM object `CodeData.GetData': ��Ч���﷨,,,还包括这么些乱码,您说的错误返回信息哪里还能获得么?
接近 5 年之前 回复

如果已经注册了,创建对象时却失败了, 那应该是引用dll出错了

之前写过,成功过。我后来的例子也不知道为什么和楼主一样。

可以确定是,dll组件写的有问题。

如果注册了,那就要看一下创建对象时为什么失败了。添加一些错误返回信息等

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问