[PHP-users 18417]Re: Windowsでの コンパイル方法

Moriyoshi Koizumi moriyoshi @ at.wakwak.com
2003年 10月 12日 (日) 17:04:46 JST


小泉です。

Hideto NAKAMURA <hideto.nakamura @ hideton.ddo.jp> wrote:

> > 通常は、mbstring は DLL として別にビルドするのですが、
> > 何か意図があるのでしょうか?
> 
> HAVE_MBSTRING とかは定義が必要なものと誤解していました。
> ようは、組み込むかどうかであって、DLLとして外出しするのであれば
> 定義は必要なかったのですね。
> 廣川さんがコンパイルして公開していらっしゃるものは、mbstring が
> あらかじめ組み込まれているものだったので、完全に誤解していました。

実は、あとで気づいたのですが、
HAVE_MBSTRING の定義が config.w32.h にないと、
zend multibyte は動くかもしれませんが、
エンコーディング自動変換が動かないかもしれません。
(ダイナミックリンクの場合)

zend_config.w32.h には、

#include "../main/config.w32.h"

を加えずに、

#define ZEND_MULTIBYTE 1

のみを追加、

一方、config.w32.h には、

#define HAVE_MBSTRING 1
#define HAVE_MBREGEX 1
#define HAVE_MBSTR_JA 1
#define ZEND_MULTIBYTE 1

を追加し、また、

mbstring.h の

extern zend_module_entry mbstring_module_entry;

を

MBSTRING_API extern zend_module_entry mbstring_module_entry;

のように変更し、さらに、

MBSTRING_API ZEND_EXTERN_MODULE_GLOBALS(mbstring)

をその次の行に追加した上で、

mbstring.dsp をビルドし、生成された lib ファイルを、php4ts.dll に
リンクする形にすれば大丈夫と思います。(未確認です ^^;)



PHP-users メーリングリストの案内