C コードで PHP 拡張機能を作成することに感銘を受けました。私はすでにリンクを参照し、それらが提供する手順に従いました。
http://netindonesia.net/blogs/risman/archive/2008/06/15/part-2-writing-php-extension
http://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend/
それでも、拡張機能を作成する際に問題が発生しました。
Windows 7 で PHP バージョン 5.4.16 の XAMPP と Visual Studio 2010 Professional を使用して、C++ コードを作成およびコンパイルしています。
次の C++ コードを使用しています。
#include "stdio.h"
#include "stdafx.h"
/* declaration of functions to be exported */
ZEND_FUNCTION(DoubleUp);
/* compiled function list so Zend knows what's in this module */
zend_function_entry FirstPHPExtModule_functions[] = {
ZEND_FE(DoubleUp, NULL)
{NULL, NULL, NULL}
};
/* compiled module information */
zend_module_entry FirstPHPExtModule_module_entry = {
STANDARD_MODULE_HEADER,
"FirstPHPExt Module",
FirstPHPExtModule_functions,
NULL, NULL, NULL, NULL, NULL,
NO_VERSION_YET, STANDARD_MODULE_PROPERTIES
};
/* implement standard "stub" routine to introduce ourselves to Zend */
ZEND_GET_MODULE(FirstPHPExtModule)
/* DoubleUp function */
/* This method takes 1 parameter, a long value, returns the value multiplied by 2 */
ZEND_FUNCTION(DoubleUp){
long paramValue = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", ¶mValue) == FAILURE) {
RETURN_STRING("Bad parameters!", true);
}
paramValue *= 2;
RETURN_LONG(paramValue);
}
しかし、次のようなエラーが発生しました。
1>php_myclass.cpp(16): error C2065: 'ZEND_DEBUG' : undeclared identifier
1>
1>Build FAILED.
Windows 7 環境で PHP 拡張機能を作成するのを手伝ってください。