June 26, 2006 at 23:42:19 · Filed under C/C++, ZEND API
一、默认情况下,C++是使用.cpp作为扩展名的,而PHP是用C写的,因此必须使用C++提供的C连接交换指定符号extern “C”来解决这个问题,以下两部分语句必须被包含:
extern "C" {
#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
... // 其他C头文件
}
和
extern "C" {
#ifdef COMPILE_DL_MYEXT
ZEND_GET_MODULE(myext)
#endif
}
Read more…
No Comments »
June 26, 2006 at 23:25:28 · Filed under C/C++, ZEND API
1. 大家先来看一段PHP代码(gif2h.php):
< ?php
// 将GIF转换为C语言中的H文件
$filename = "mylogo.gif";
$fp = f open($filename, "rb");
$buffer = f read($fp, filesize($filename));
f close($fp);
$len = strlen($buffer);
$fp = f open("mylogo.h", "wb");
f write($fp, "unsigned char php_logo[] = {");
for ($i=0; $i<=$len; $i++) {
if($i % 10 == 0) {
f write($fp, "\n\t\t");
}
if($i == $len) {
$str = str_pad(ord(substr($buffer, $i, 1)), 3, " ", STR_PAD_LEFT);
} else {
$str = str_pad(ord(substr($buffer, $i, 1)), 3, " ", STR_PAD_LEFT) . ", ";
}
f write($fp, $str);
}
f write($fp, " };\n");
f close($fp);
?>
上述代码的作用就是将一张GIF图片文件转换为C语言中的头文件(.h)。
Read more…
No Comments »
June 16, 2006 at 13:15:33 · Filed under C/C++
1. Timer on Windows

Read more…
No Comments »