某些程式庫會載入其他程式庫作為其功能的一部分。例如,Crystal Reports Object Factory 使用 CreateObject() 方法來建立 Crystal Design RunTime Application 的實例。如果您想使用在新載入的程式庫中定義的常數,則需要手動註冊該程式庫,即使 com.autoregister_typelib 設定為 true 也一樣。
<?php
echo 'com.autoregister_typelib = ', ini_get('com.autoregister_typelib'), PHP_EOL;
$o_CrObjectFactory = New COM('CrystalReports11.ObjectFactory.1');
$o_CrApplication = $o_CrObjectFactory->CreateObject("CrystalDesignRunTime.Application");
echo '尚未定義:', crOpenReportByDefault, PHP_EOL;
com_load_typelib('CrystalDesignRunTime.Application');
echo '現在已定義:', crOpenReportByDefault, PHP_EOL;
?>
輸出...
com.autoregister_typelib = 1
尚未定義
注意:使用了未定義的常數 crOpenReportByDefault - 假設為 'crOpenReportByDefault',位於 C:\refl.php 的第 8 行
crOpenReportByDefault
現在已定義:0