易截截图软件、单文件、免安装、纯绿色、仅160KB

自己动手用 C 扩展 PHP

[ZT]自己动手用 C 扩展 PHP
引言:
   有感于大多数人认为 PHP 只是一种弱类型,只能做小型web应用的脚本语言。 与目前的Java, .Net平台有一定的差距,所以决定写一些 PHP 的扩展方法文章,我相信
我们PHPER们通过自己动手写商业扩展,一定能构建出强大的,极速的Web应用,因为扩展本身就是编译型语言编写的(c/c++),而且可以
预先驻留内存的(Apache启动时加载),有了 C/C++ 编写的扩展,我们几乎可以无所不能.
   呵呵,Zend 的说明文档少之又少,真令人头疼 
----------------------------------------------------------
环境要求:  Linux, GCC
首先,我们应该选择如何去构建我们的扩展模块, 有三种方式:
         1. External Modules
        外部模块,也就是编译成共享库,用dl()函数动态加载。
        好处:    (1)不需要重新编译 PHP (2)PHP体积小,因为不需要编译进PHP
        缺点:     (1)每次*.php脚本执行都需要用 dl()去加载,效率较低
               (2)每次都要调用dl()
    2. Built-in Modules
        编译进PHP
        好处:    (1)不需要动态加载,模块在php脚本里面可以直接使用.
            (2)不需要将模块编译成.so共享库,因为直接编译进PHP。
        缺点:    (1)对模块的改变都需要重新编译PHP
            (2)因为编译进PHP,所以PHP二进制文件较大,而且多占点内存
    3. The Zend Engine
        Zend 核心里实现        (略 ... 有兴趣的话可以看 Zend API)
Note: 本人推荐用 第 2 种方式,直接编译进PHP, 但是在下面示例里,我们编译成外部模块
    ,因为,外部模块不需要重新编译 PHP


相关文档:

用C写的3D迷宫

          Boss说,要看OpenGL,看了快一个月,总算出了个像样的东西,用C写了个3D迷宫,
虽然只有350行
       代码,不过边学边写,足足写了一周时间,还是小有成就感的,活活活!
         &n ......

在VC6中使用c API方式连接MySQL数据库

在VC6中使用c API方式连接MySQL数据库
一、环境配置
1、在MySql的官方网站下载mysql-connector-c-noinstall,并将解压后的bin和include文件夹拷贝到Mysql的安装目录
2、设置VC6环境,在vc工具-选项-目录,加入刚才的Include文件夹的路径,例如:C:\Program Files\MySQL\MySQL Server 5.1\include
二、工程设置
3、将li ......

Linux C 开发环境(debian)

#apt-get install gcc (编译器)
#apt-get install gdb (调试)
#apt-get install libc6-dev (开发库)
如果没有开发库,gcc的时候就会错误
gcc h.c
h.c: In function ‘main’:
h.c:1: warning: incompatible implicit declaration of built-in function ‘prin ......

高可靠性C程序的几点要求

一、可重入函数
1)什么是可重入性?
可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据 ......

通过JNI在JAVA与C程序中传递参数

一、编辑Java源文件
=============================================
Hello.java
=============================================
package test;
public class Hello
{
  static
  {
    try
    {
      //此处即为本地方法所在链接库名
&n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号