These pages are written by only Japanese.

Welcom to My Diary.com
最新の日記タイトル一覧カテゴリ別タイトル一覧トップへ戻る〜

こんばんわ♪ 現在は4月28日(日)1時1分。 1時を過ぎました。


hns - 日記自動生成システム - Version 2.19.5 (色々 Fixed)

先月 2011年08月 来月
1 02 3 4 5 06
07 08 09 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Namazu for hns による簡易全文検索です。
詳細は 詳細指定/ヘルプをご参照下さい。
検索式:

2011年08月10日(水)

SWFEditor Windows DLL

出来ました。バージョンは 0.47a (0.47 の開発途中)で、実際は 0.46 相当です。
Vista 上で<s>、かつ 5.3.6</s>しか動作確認していないので、もし他の環境で動いたという報告があると嬉しいです。 一般的に使われそうな php.exe に組み込んでも動かなかったので、dll と一緒に build した php.ext 等と併せて zip にまとめました。
追記 (2011/8/18)
Visual C++ 2010 を入れてない環境では動かないらしいので。↓こちらで。(opengl 用のパッケージですが、こっそり swfed も動くようにしてます)

Windows 版 PHP の build 方法:

  • https://wiki.php.net/internals/windows/stepbystepbuild
本家の Wiki の手順で進めれば大体はうまくいきます。
Visual C++ (今回は 2010) をインストール
Windows SDK をインストール
c:\php-sdk を作成して、binary-tools.zip (今回は php-sdk-binary-tools-20110512.zip) を C:\php-sdk に展開
Windows SDK コンソールを起動。(黒字に黄字の画面)
cd C:\php-sdk            # ショートカットをコピーして work dir を C:\php-sdk にしとくと楽
setenv /x86 /xp /release # 黒字に暗い緑字に画面に変わる。読みにくい
bin\phpsdk_setvars.bat
bin\phpsdk_buildtree.bat php53dev
。(ちなみに、setenv と phpsdk_setvars.bat はコンソールを起動する際に、毎回実行する)
C:\php-sdk\php53dev\vc9\x86 にソースとライブラリを展開
php の tarball を展開。(今回は php-5.3.6.tar.bz2)
deps を展開 (今回は deps-5.3-vc9-x86.7z)
php ソースツリーにトップに移動して build 関連コマンドを実行
cd C:\php-sdk\php53dev\vc9\x86\php-5.3.6
buildconf # ソースツリーを漁って configure.js を構築する
configure # configure.js を実行してコンパイル条件を整える
nmake     # 実際のコンパイル&リンク
あと、手順に加えて以下の2つの対処が必要でした。
ext/calender/jewish.c からヘブライ語を除く。
ext/gd/config.w32 を編集して SHARED 対応する。(ext/zlib/config.w32 を真似)

Windows 版 PHP extension DLL の build 方法:

ext/swfed にプログラムを置く
必要なライブラリをばら撒く
png はヘッダを deps/include 以下に置く
giflib のライブラリとヘッダ
入手元
ライブラリは giflib.a.dll を giflib_a_dll.lib に改名して deps/lib に設置
ext/swfed/config.w32 を作成する (zlib や gd の config.w32 を真似する)
buildconf を実行
configure --enable-swfed=shared を実行
nmake
Release_TS 以下に php_swfed.dll が出来てます。

試行錯誤:

  • コメントに日本語があるとマズイので全て英語にするか消す。 grep "[あ-ん]" *.[ch] で探した
  • 変数宣言はブロックの頭に置く必要があるので、そうする。
  • giflib は sourceforge のを利用したけど、static library が 〜.a で提供されていて、〜.lib に拡張子を変えたら認識してくれた。(認識されない場合でも build は通る、けど別途 giflib4.dll が必要になる)
  • config.w32 を編集して buildconf しても configure.js に反映されない事がある。nmake clean してやり直すとうまくいく。(謎)

動作環境:

初め dll だけ公開したのですが、XAMPP でも公式PHP5.3でも動作しなかったので、自分がコンパイルした php.exe と合わせて一式 zip にまとめました。
XAMPP は build ツールのバージョン違い(VC6 != VC10)でエラーになり、公式PHP は単に動きませんとだけ表示されます。残念。

2011年08月13日(土)

IO_SWF の使い方

IO_SWF の使い方について聞かれる事が増えてきたので、まとめを開始。 pure PHP なので重たいと言い訳してて、実際そうですが、勿体ない処理が結構あるので手直し中です。
特に IO_Bit クラスは読みやすさ優先で最適化はしていませんが、そろそろ手をつけます。

2011年08月16日(火)

PHPOpenGL の build は成功

一応、build は出来て、かつモジュールの初期化では落ちなくなった。
でも、glutDisplayFunc を呼ぶと落ちる上 *1 に、Windows では display callback をセットしないと glutMainLoop がエラーになるので、まだ何も表示できない。

OpenGL, GLUT に共通する処置:

windows.h の前で WinSock2.h を include する
C:\Program Files\Microsoft SDKs\Windows\v7.1\INCLUDE\ws2def.h(91) :
 warning C4005: 'AF_IPX' : マクロが再定義されました。
zend_is_callable の<del datetime="2011-08-17T03:01:38+09:00">第1引数</del><ins datetime="2011-08-17T03:01:38+09:00">第3引数</ins>に TSRMLS_CC を付ける
ext\glut\php_glut.c(686) : error C2198: 'zend_is_callable' :
 呼び出しに対する引数が少なすぎます。

OpenGL:

モジュールを読み込むだけで落ちてた。init_glu に渡す引数に TSRMLS_CC を追加したら直る。

GLUT:

glut.h と glut.lib を各々以下の場所に。
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\gl\
C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib
dll はあえてインストールせず。exe と dll を一緒に配布する予定なので。
C:\Windows\system\
glut.h の前で stdlib.h を include する。
c:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\stdlib.h(353) :
 error C2381: 'exit' : 再定義 ; __declspec(noreturn) が異なります。

*1: zend_is_callback の引数間違えていたので、修正して明日確認する

2011年08月17日(水)

OpenGL/GLUT for PHP5.3 exe v0.0.1 (experimental)

OpenGL 対応 PHP の Windows 版が、そこそこ動作したので zip で公開します。 尚、Microsoft Windows Vista と 7 の 32bit 版で動作確認しました。 早速、sourceforge.net の phpopengl forum に報告。
Dear all.
Windows binary PHP5.3 with OpenGL/GLUT extension for you.
英語版 Windows での動作確認はしてないので心配ですが。。。

プログラム:

↓元はこれで、PHP4 では動作してました。 ↓僕が PHP5 でも動くように改造したコード

使い方:

php -c php.ini samples\contrib\gears.php

問題:

Windows SDK 7.1 はデフォルトで OpenGL1.2 なので API はそこまでしか対応してません。
GLUT callback 関数がまだちゃんと動かないので、以下のサンプルはすぐに止まるか全く動きません。直します。
samples\examples\movelight.php
samples\glut\glut_example.php
samples\redbook\bezmesh.php
msvcr100.dll
exe への組み込みに失敗したので添付してます。次は頑張ります。

2011年08月18日(木)

PHPOpenAL for Windows build してみた

config.w32 だけ作ったらとりあえず build は通ったけど。
PHP Startup: Invalid library (maybe not a PHP library) 'php_openal.dll'
残念。--enable-openal=yes で static に組み込んでも php -i で出てこない。何か足りない。

2011年08月19日(金)

PHP AV 拡張

PHP AV 拡張と称して、Audio/Visual 関連で使えそうな PHP extension を Windows で build して PHP カンファレンスの LT に応募しようと企んでます。
去年からいじってる OpenGL *1 に関しては、そこそこ動きました。(callback が怪しいので調査中) 今は、OpenAL *2 を繋げています。pecl のソースを持ってきて build したのですが、まだ動かないです。 この2つが動けば、クライアントサイド PHP とかアホなネタが出来るかなと。 他に面白い extension とかないかしら。
*1: いわずと知れた 3D グラフィックスAPI
*2: creative の出してる音声処理API

これで、6 日分だよ〜。

タイトル一覧
カテゴリ分類
Database
JXTA
Java
XML
awm
bookmark
keyword
memo
news
research
Powered by hns-2.19.5, HyperNikkiSystem Project