我看别人有这么写的:
<? 
global $id,$Number,$Title; 
$rfq=new COM("test1.Info"); 
$ret=$rfq->Get($id,$Number,$Title); 
echo $ret; 
echo $id.$Number.$Title."<br>"; ?> 
我不知道$rfq=new COM("test1.Info"); 到底是什么意思。那个test1是什么?那个Info又是什么?请教啊请教

解决方案 »

  1.   

    上面这句是实例化一个组件的意思,test1.Info是OLE 程序标识。
    获得正确的对象标识名不是一件容易的事。你可以查找一下windows的注册表,在 HKEY_CLASSES_ROOT 中寻找一下你注册的price.dll,在你的机器上有效的对象标识放在 CLSID 子文件夹下。 
      

  2.   

    我去查注册表了。在{98087D89-5801-4C53-B26B-DEB5443EA3B9}这块有我的Price.dll,里面的一个ProgID中的键值是Price.TracePrice,我就用这个作为标识。如下:
    global $code; 
    $code="117411";
    $rfq=new COM("Price.TracePrice");
    $ret=$rfq->getprice($code); 
    echo $ret."<br>"; 
    但是运行结果显示Warning: Unable to obtain IDispatch interface for CLSID {98087D89-5801-4C53-B26B-DEB5443EA3B9}: 不支持此接口 in c:\apache\htdocs\ver.php on line 8Fatal error: Call to a member function on a non-object in c:\apache\htdocs\ver.php on line 9
    这是什么问题?
      

  3.   

    What does 'Unable to obtain IDispatch interface for CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}' mean ? 
     
     This error can have multiple reasons:  1、the CLSID is wrong 
     2、the requested DLL is missing 
     3、the requested component doesn't implement the IDispatch interface 你再找找看,可能不是Price.TracePrice 
      

  4.   

    我找不到别的跟这个类似的值了啊。你提到的三点,只有第一点有可能发生。但是怎么可能呐?CLSID我是搜索注册表找到的啊