youkind

PHP博客 首页 新随笔 联系 聚合 管理
  3 Posts :: 0 Stories :: 6 Comments :: 0 Trackbacks

2006年9月29日 #

最近遇到的一些变态的地方:
用vc做ice:
1 必须在#include <windows.h>前面include ice的头文件,
2 设置里必须用的debug multithread dll的模式

linux下用c++编写ice 客户端so,然后用c按照php扩展模块的规则编写供php调用的so,来调前一个so,就是这样:
ice_client.so  <-------  phpExt.so <---------  *.php
(c++)                            (c )

如果是ice3.1.0编出来的ice_client.so,会一直失败(报一个什么管理插件的指针不能初始化),如果用ice3.0.1,就好了

其他诸如,写com组件的时候,用MFC的自动化方式做出来的com组件,vb可以调,.net不能调。用atl双接口模式写的组件,才可以被.net调用之类的问题。都不知道为什么。。。

焦头烂额···

posted @ 2006-09-29 10:16 进程的程 阅读(407) | 评论 (0)编辑 收藏

2006年8月10日 #

在做一个ice c/s的东西
服务端,没什么好说的,按要求提供两个没什么关系的接口,用c++来做,server端之前用php实现过。出于实现简单的考虑,想法是直接将php的server端逻辑转成c++代码,然后在ice 服务端的接口代码和逻辑层之间加一个adapter。
客户端要求将ice的client做到com 和so 文件里。so还不会。com正在学个开头,慢慢修吧~

windows vc6.0 sp6安装ice时遇到一个小小的问题。
按readme里说的将lib path 和bin 都加到设置里以后,发现编译demo一直不过。
报错error C2733: second C linkage of overloaded function
在啥啥thread.h的头文件里的一个宏定义好像对vc的版本判断有问题,手动改用另一个定义,就好了

posted @ 2006-08-10 10:21 进程的程 阅读(288) | 评论 (0)编辑 收藏

2006年5月29日 #

Redhat9上部署php5.1.2 + ice3.0.1 + apache1.3 + mysql5.0.21的概要配置,ice目前不是很普及,相关中文的东西也不是很好找。ice + php 更是少上加少了。

首先这几个安装文件都很容易下,不多说了。

[安装mysql5.0.21]
# ./configure --prefix=/usr/local/mysql --with-openssl --enable-thread-safe-client --enable-local-infile --with-charset=gb2312 -with-extra-charsets=gb2312,gbk
# make clean
# make
# make install
# cp support-files/my-medium.cnf /etc/my.cnf
# cd /usr/local/mysql
# bin/mysql_install_db --user=mysql
# chown -R root  .
# chown -R mysql var
# chgrp -R mysql .
# bin/mysqld_safe --user=mysql &

[安装ice3.0.1]
1 要先安装Berkley DB的一个东东
 解压后 cd build_unix
 ../dist/configure --enable-cxx
 make
 make install
2 安装ice3.0.1,有DB_HOME的一行改为
DB_HOME         ?= <Berkley DB的安装目录>
3 配一下就开始make吧,有出错信息的话注意看一下lib或是include的地方
4 make install

目前ice3.0.1支持php只到5.1.2,这里的配置是把icePHP装成php的ext模块,装的是php 的cgi模式
[安装IcePHP3.0.1]
1  cd /root/software/php-5.1.2
2  cp /root/ice/IcePHP-3.0.1/src/ice/ ext/ -R
3  cp /root/ice/IcePHP-3.0.1/configure-5.1.2.gz configure.gz
4  gunzip configure.gz
5  ./configure --with-mysql=/usr/local/mysql --with-openssl --enable-discard-path --enable-pcntl --enable-sysvmsg --enable-sysvsem  --enable-sysvshm --with-expat-dir=/usr  --enable-ftp --with-iconv --with-ice=/usr/local/Ice-3.0.1/
6  make;make install

这时在IcePHP-3.0.1目录下有很多test 可惜我没试出,python的东西看不懂,但实际上应该已经通了。
在/usr/local/lib/php.ini里的[php]下配好ice.options 和ice.slice,这两个选项需要手工加的,ice的中文手册上没有讲的很清,总的来说实际环境时还是可能会有很多乱七八糟的问题。不过配通以后用c++和php通过ice通信还是蛮好玩的。
posted @ 2006-05-29 11:42 进程的程 阅读(1916) | 评论 (6)编辑 收藏

仅列出标题