これが事実であり、私は顧客のためにphp拡張機能を開発しようとしています。SWIGを使用してラッパーコードを生成し、メインコードはc++です。拡張機能を正常に作成したら、それを/ extにロードし、テストのためにWebサーバーを再起動します。拡張機能がAPI20090626でビルドされているというエラーが発生しましたが、PHPサーバー(私の場合はXAMPP)APIは20100525です。エラーを完全に理解しているので、phpソースでZend_modules.hヘッダーファイルを開きます。 API番号を20090626から20100525に変更してから、更新されたzend_modules.hヘッダーファイルを使用して拡張機能をビルドしましたが、問題はありません。
問題は、私の顧客は確かに異なるAPIを備えた異なるphpサーバーを使用していることです。私は、苦労せずに簡単にロードできるdll(私の拡張機能)を顧客に提供することを計画しました。しかし、ここで、メインコード(dll)が動的にロードされたVS2010ソリューションを提供する必要があります。つまり、各ユーザーは最初に自分のサーバーからPHP APIをチェックし、Zend_modules.hヘッダーファイルを変更し、ソリューションをビルドしてから、拡張機能を使用する必要があります。拡張機能をそのAPI番号から完全に独立させるソリューションが必要です。
私は本当にどんな考えにも感謝します。