首页 技术教程 实用代码 注册破解 正则表达式 网址导航 电子书籍

编写简单的php扩展(c语言版)

PHP扩展有2种,ZEND扩展,,再和PHP扩展,,ZEND扩展麻烦,,需要功力强大 PHP扩展简单点,生成.dll文件,动态加入。。。 首先,确定你电脑装上VC++环境,好编译扩展,注意配置好环境变量,在我的电脑,属性,环境变量PATH加上CommonMSDev98Bin(绝对路径) 再次,准备一份PHP源代码+一份二进制php5ts.lib文件 OK,可以开始了: 把源码放在你的任意目录,复制skeleton文件夹命名为 sun, php_skeleton.h、skeleton.c、skeleton.dsp这三个文件,替换内容中所有extname为sun,EXTNAME为SUN 编辑php_skeleton.h文件(头文件) 在PHP_FUNCTION(confirm_sun_compiled);下面编写 P...
类别:网页编程 - PHP技术    查看:120    更新:2014-05-19

基于Oracle OCI的数据访问C语言接口ORADBI-开发技术

    ORADBI是我在Oracle OCI(Oracle 调用接口)基础上开发的,支持Oracle8i、9i、10g等数据库。根据Oracle公司的介绍:OCI是如此可靠,以至于Oracle数据库中的每一条SQL语句都通过OCI来执行。当应用程序开发人员需要面向Oracle数据库服务器的最强大的接口时,他们将调用 Oracle调用接口(OCI)。OCI提供了对所有Oracle数据库功能的最全面的访问。OCI API中包含了最新的性能、可伸缩性和安全性特性。     采用OCI的最大好处就是:它是最切近Oracle底层的技术,因此,效率是最高的。同时,它是跨平台的。因此,在我给出的ORADBI库,除了OCI之外,没有其他外...
类别:数据库 - ORACLE    查看:141    更新:2014-05-19

C语言中数组和指针的互操作

曾听好多朋友说,C是一种怀旧的语言,因为它的历史很久远,然而自从各种面向对象的编程语言的相续出现让它的影响力日减。当然了,这是无可非议的,但是C的高效性是其他语言无妨比拟的,所以我们有必要把握其中的精华与奥妙,也就有必要知道其中的基本的数据结构的比如数组,稍微有点深度的堆栈、列表、结构体等的操作和实现。指针也是C语言中的一个很优秀灵活的结构,对它的了解也是必不可少的。   我们一般都认为数组是一维的数据存储结构,因为二位数组或者说矩阵都可以看作是多个一维数组的组合结构,定义在其上的数据存储访问方式是一样的。所以一维数组是其中最基础的最重要的部分,只有理解了此类数据结构的本质才能触类旁通了。  数...
类别:程序开发 - C/C++    查看:144    更新:2014-05-19

C语言字符编码转换

使用libiconv. 本文包括libiconv实用简单介绍及几个例子程序。 libiconv实用非常简单,只有3步:  1.使用 conv_t iconv_open (const char* tocode, const char* fromcode); 打开描述符。 fromcode和tocode为编码类型。conv_open的详细介绍看man iconv_open http://www.gnu.org/software/libi ... v/iconv_open.3.html  2.使用 size_t iconv (iconv_t cd, const char* * inbuf, size_t * inbytesleft, char* * outbuf, size_t * outbytesleft); 进行编码转换。详细介绍看man 3 iconv。 http://www.gnu.org/software/libi ... biconv/iconv.3.html  3.close.int iconv_close (iconv_t cd); http://www.gnu.org/software/libi ... /i...
类别:程序开发 - C/C++    查看:136    更新:2014-05-19

C语言基础教程:复制文本文件的内容到另一个文件

#include"stdio.h" main() {FILE*fp_in,*fp_out; charinfile[20],outfile[20]; p rintf("Entertheinfilename:\n"); scanf("%s",infile); p rintf("Entertheoutfilename:\n"); scanf("%s",outfile); if((fp_in=fopen(infile,"r"))==NULL) { printf("Can't openfile%s\n",infile); getchar(); exit(0); } if((fp_out=fopen(outfile,"w"))==NULL) { p rintf("can't openfile%s\n",outfile); getchar(); exit(0); } while(!feof(fp_in))fputc(fgetc(fp_in),fp_out); fclose(fp_in); fclose(fp_out); } 以上...
类别:程序开发 - C/C++    查看:130    更新:2014-05-16

C语言基础教程:数组的初始化

数组初始化 C语言允许在说明时对全局数组和静态局部数组初始化,但不能对非静态局部数组初始化。 与其它变量相似,数组初始化的一般形式如下: type-specifier array_name[size1]...[sizen]={value-list}; 数值表是一个由逗号分隔的常量表。这些常量的类型与类型说明相容,第一个常量存入数组的第一个单元,第二个常量存入第二个单元,等等,注意在括号“ }”后要加上分号。 下列中一个1 0元素整型数组被初始化装入数字1到1 0: int i[10]={1,2,3,4,5,6,7,8,9,1 0 } ; 这意味着i [ 0 ]的值为1,而i [ 9 ]的值为1 0。 存放字符串的字符数组的初始化可采用如下简化的形式: char array_name[size] = "string&quo...
类别:程序开发 - C/C++    查看:105    更新:2014-05-16

C语言基础教程:预处理

概述   在前面各章中,已多次使用过以“#”号开头的预处理命令。如包含命令# include,宏定义命令# define等。在源程序中这些命令都放在函数之外, 而且一般都放在源文件的前面,它们称为预处理部分。   所谓预处理是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作。预处理是C语言的一个重要功能, 它由预处理程序负责完成。当对一个源文件进行编译时, 系统将自动引用预处理程序对源程序中的预处理部分作处理, 处理完毕自动进入对源程序的编译。   C语言提供了多种预处理功能,如宏定义、文件包含、 条件编译等。合理地使用预处理功能编写的程序便于阅读、修改、 移植和调试,也有利于模块化程序设计。...
类别:程序开发 - C/C++    查看:102    更新:2014-05-16

C语言基础教程:函数

C程序是由一组或是变量或是函数的外部对象组成的。 函数是一个自我包含的完成一定相关功能的执行代码段。我们可以把函数看成一个"黑盒子", 你只要将数据送进去就能得到结果, 而函数内部究竟是如何工作的的, 外部程序是不知道的。 外部程序所知道的仅限于输入给函数什么以及函数输出什么。函数提供了编制程序的手段, 使之容易读、写、理解、排除错误、修改和维护。 C程序中函数的数目实际上是不限的, 如果说有什么限制的话, 那就是, 一个C程序中必须至少有一个函数, 而且其中必须有一个并且仅有一个以main为名, 这个函数称为主函数, 整个程序从这个主函数开始执行。 C 语言程序鼓励和提倡人们把一个大问题划分成一个个子问题, 对...
类别:程序开发 - C/C++    查看:116    更新:2014-05-16

C语言基础教程:指针、结构、联合和枚举

本节专门对第二节曾讲述过的指针作一详述。并介绍Turbo C新的数据类型: 结构、联合和枚举, 其中结构和联合是以前讲过的五种基本数据类型(整型、浮点型、字符型、指针型和无值型)的组合。 枚举是一个被命名为整型常数的集合。 最后对类型说明(typedef)和预处理指令作一阐述。 1、 指 针(point) 学习Turbo C语言, 如果你不能用指针编写有效、正确和灵活的程序, 可以认为你没有学好C语言。指针、地址、数组及其相互关系是C语言中最有特色的部分。规范地使用指针, 可以使程序达到简单明了, 因此, 我们不但要学会如何正确地使用指针, 而且要学会在各种情况下正确地使用指针变量。 1. 指针和地址 1.1 指针基本概念及其指针变量的定义...
类别:程序开发 - C/C++    查看:109    更新:2014-05-16

C语言基础教程:输入输出函数及控制流程语句

本节主要介绍Turbo C2.0标准输入输出函数和文件的输入输出函数。通过本节的学习可以使读者掌握Turbo C2.0的屏幕输出、键盘输入输出以及磁盘文件的读写函数, 并能开始进行一些简单的程序的编写。 控制流程语句主要包括: 条件语句、循环语句和开关语句。 1.1 标准输入输出函数 1.1.1 格式化输入输出函数 Turbo C2.0 标准库提供了两个控制台格式化输入、 输出函数printf( ) 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。 printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入设备(键盘)上读数据。下面详细介绍这两个函数的用法。 一、printf()函数 printf()函数是格式化输出函数...
类别:程序开发 - C/C++    查看:111    更新:2014-05-16

C语言运算符

C语言的内部运算符很丰富,运算符是告诉编译程序执行特定算术或逻辑操作的符号。C语言有三大运算符:算术、关系与逻辑、位操作。另外,C还有一些特殊的运算符,用于完成一些特殊的任务。 2.6.1算术运算符 表2-5列出了C语言中允许的算术运算符。在C语言中,运算符“+”、“-”、“*”和“/”的用法与大多数计算机语言的相同,几乎可用于所有C语言内定义的数据类型。当“/”被用于整数或字符时,结果取整。例如,在整数除法中,10/3=3。 一元减法的实际效果等于用-1乘单个操作数,即任何数值前放置减号将改变其符号。模运算符“%”在C语言中也同它在其它语言中的用法相同。...
类别:程序开发 - C/C++    查看:117    更新:2014-05-16

C语言基础教程:数据类型、变量和运算符

本节首先介绍Turbo C程序的基本组成部分; 然后介绍Turbo C的数据类型、变量类型、变量的初始化和赋值; 最后介绍Turbo C的有关操作。 通过本节的学习, 可以对Turbo C语言有一个初步认识。 1. Turbo C程序的一般组成部分 Turbo C 2.0 象其它语言一样按其规定的格式和提供的语句由用户编写应用程序。请看下面一段Turbo C源程序。 例1: /*Example program of Turbo C*/ #include <stdio.h> /*包含文件说明*/ void lgc(void); /*子函数说明*/ char answer; /*定义全程变量*/ int main() /*主函数定义*/ { char a; /*定义局部变量*/ clrscr(); gotoxy(12,3); puts("Welcome to use Turbo C2.0!")...
类别:程序开发 - C/C++    查看:114    更新:2014-05-16

JAVA通过JNI调用本地C语言方法

特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。 JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式)。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法。 简单介绍及应用如下: 一、JAVA中所需要做的工作 在JAVA程序中,首先需要在类中声明所调用的库名称,如下: static { System.loadLibrary(“goodluck”); } 在这里,库的扩展名字可以不用写出来,究竟是DLL还...
类别:程序开发 - JAVA    查看:104    更新:2014-05-13