PHP调用非COM的dll

由于前段时间闲着无聊没事做去捣鼓一个PHP的网络验证系统!
 
想用AES来实现客户端和服务端的双向动态加密,客户端用易语

 

言编写,由于AES算法的填充方式和IV不同,所以不能达到互

 

解,于是想到了用E写个DLL给PHP调用!由于易写的DLL不是标

 

准的com,所以PHP调用需要用非com的调用方法!PHP需要用到

 

这个扩展组件:dynwrap.dll   首先放这个dll在system32目录下再

 

注册这个组件到system   然后

 

在把这个dll放在exr目录下然后php配置文件需要加载这个dll

 

 一下是PHP加载DLL的类

 


   
   dll=new COM("DynamicWrapper");
    		$this->path=dirname(__FILE__);//获取该脚本的绝对路径
    	}
    	public function EnAES_Path_($text,$key){
    		$this->dll->Register("AES.dll", "EnAES_Path", 'i=sss', "f=s", "r=l");
    		$file_num=$this->dll->EnAES_Path($text,$key,$this->path);
    		if($file_num!=0){
    			return $file_num;
    		}
    	}
    	public function DeAES_Path_($mi,$key){
    		$this->dll->Register("AES.dll", "DeAES_Path", 'i=sss', "f=s", "r=l");
    		$file_num=$this->dll->DeAES_Path($mi,$key,$this->path);
    		if($file_num!=0){
    			return $file_num;
    		}
    	}
    	public function Read_File($file_name){
    		$file_N="AES_".$file_name.".tmp";
    		$file_con="";
    		$file_con=@file_get_contents($file_N);
    		return $file_con;
    	}
    	public  function Delete_File($file_name){
    		$file_N="AES_".$file_name.".tmp";
    		@unlink($file_N);
    	}
    }
?>

 

在Register("AES.dll", "EnAES_Path", 'i=sss', "f=s", "r=l");这里面

 

的几个参数:第一个参数是你DLL文件名,第二个参数是你DLL里

 

面的方法名,第三个参数i=sss 表示你dll的方法参数的对应的类

 

型,如:你的dll有两个参数是文本的型的,那就I=ss  !第四个参

 

数"f=s"一般固定  最后一个参数是你返回的类型!因为PHP调用

 

非COM组件的dll返回s 也就是string类型接收不到为空,我就

 

用了一个笨办法,在dll里面把数据写出文件 返回文件号,然后

 

php去读取!如果有好一点的办法希望各位多多指教!由于第一次

 

写博客,可能写的不太好!

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值