在PHP 4.2.0 至 4.2.3中,可以使用w32api_register_function 函数调用外部的DLL,前提是需要在php.ini中打开扩展的php_w32api.dll。
如果使用的是PHP 5,调用DLL只有使用PHP的COM类了。
基本方法为:$obj = new COM("server.object")
下面介绍如何用PHP调用COM组件,采用的是msvs.net2005环境下的C#建立COM组件。
1. 用C#创建COM对象
COM对象是ClassLibrary类,它生成DLL文件。要在VS开发环境中创建一个简单的COM对象,我们可以依次选择“文件”->“新建”->“项目”->“Visual C#”->“类库”,然后创建一个名字为Comtest的工程。
需要注意的是:在COM中调用VC#对象需要下面的条件:
·类必须是public性质。
·特性、方法和事件必须是public性质的。
·特性和方法必须在类接口中定义。
·事件必须在事件接口中定义。
不是在这些接口中定义的public性质的类成员不能被COM访问,但它们可以被其他的.NET Framework对象访问。要让COM能够访问特性和方法,我们必须在类接口中定义它们,使它们具有DispId属性,并在类中实现这些特性和方法。这些成员定义时的顺序也就是它们在COM中顺序。要让COM访问类中的事件,必须在事件接口中定义这些事件,并赋予它们DispId属性。
在接口名字之前,每个接口需要一个GUID特性。要生成唯一的Guid,需要运行guidgen.exe工具软件,并选择“registry f