PHP调用DLL(COM)注意事项: 1、函数的参数中,最后一个参数函数是返回值,须是retval类型的。 2、向接口传字符串类型的参数时,不要用BSTR*类型的,而用BSTR,因为BSTR本身已经是指针了。 3、PHP中的数字0并不对应C/C++中的0或NULL,而是另有其值。 4、PHP中
php调用dll(com)注意事项:
1、函数的参数中,最后一个参数函数是返回值,须是retval类型的。
2、向接口传字符串类型的参数时,不要用bstr*类型的,而用bstr,因为bstr本身已经是指针了。
3、php中的数字0并不对应c/c++中的0或null,而是另有其值。
4、php中的空字符串""并不对应c/c++中的null,最好用计算其长度是否为0来判断是否为空串。
5、向外输出的接口如果能放在一个类中,最好都放在一个类中。曾经在输出的接口函数中用了不是用来导出函数的类(但在atl工程中),出现不可用的情况,不清楚是否和接口是否和不在同一个类中有关。
6、为字符串分配空间用::sysallocstring(),并用::sysfreestring(mem)释放。这一条不是必须的,只是看到网上好多例子都是用这对函数来分配和释放空间的。
本人刚接触PHP和COM,以上所说如若有不对之处,欢迎留言讨论。
至于如何制作可供PHP调用的DLL,网上有很多资源。下面一个连接:
PinPHP是一套基于LAMP技术架构(Linux+Apache/Nginx+MySQL+PHP)的、免费的、开源的社会化分享系统!同时PinPHP分享系统V3.0正式版在V2.2正式版的基础上,对“网站架构”、“负载性能”等几大方面,进行了全面升级。注意事项:1、V3.0采用全新的代码结构与数据库结构,不可以进行版本
立即学习“PHP免费学习笔记(深入)”;
http://www.360doc.com/content/10/0512/14/722458_27221569.shtml










