head	1.3;
access;
symbols;
locks
	root:1.3; strict;
comment	@# @;


1.3
date	2009.12.01.05.45.06;	author root;	state Exp;
branches;
next	1.2;

1.2
date	2009.12.01.05.43.12;	author root;	state Exp;
branches;
next	1.1;

1.1
date	2009.11.24.02.16.03;	author root;	state Exp;
branches;
next	;


desc
@/opt/nforge/var/wiki/easylogiclib/data/text/WBStruct
@


1.3
log
@118.219.84.10;;cyberuls easylogic ;;
@
text
@= Description = 
 win32api 를 사용하기 위해서 C언어 상의 구조체를 표현해서 바이너리 데이타를 얻기위한 용도로 사용되는 클래스이다. 

 * struct 자료형을 표현한다. 
 * pack(), unpack() 에서 사용하는 포맷을 생성한다. 
 * 구조체 전체의 크기를 구한다. 

= Constant List =
{{{#!vim php

CHAR	= 'c'
UCHAR	= 'C'
SHORT	= 's'
USHORT	= 'v'
INT	= 'i'
UINT	= 'I'
LONG	= 'l'
ULONG	= 'V'
FLOAT	= 'f'
DOUBLE	= 'd'

}}}

 * pack, unpack 에서 사용하는 자료형을 윈도우형에 맞게 정의한다.
 * 자세한 사항은 [http://www.php.net/pack pack] 참조하세요.

 * 자료형별 바이트 수 
{{{#!vim php
c : 1 // signed char
C : 1 // unsigned char
s : 2 // signed short
v : 2 // unsigned short
V : 4 // unsigned long 
l : 4 // signed long 
I : 4 // unsigned integer
i : 4 // signed integer
f : 4 // float
d : 8 // double
}}}

= Structure = 

 * data, struct type 지정 가능 
 * 전체 크기 계산 


= Code =

 * 구조체 필드 구성하기 
{{{#!vim php
<?php 
/**
 * RECT 구조체 표현
 *
 */
class RECT extends WBStruct { 

    public function __construct($unpack = null) { 
	$data = array(
	    array('name' => 'left',	'type' => WBType::LONG),	
            array('name' => 'top',	'type' => WBType::LONG),	    
            array('name' => 'right',	'type' => WBType::LONG),	
	    array('name' => 'bottom',	'type' => WBType::LONG),	
        );
		
        parent::__construct($data, $unpack);
    }
}
?>
}}}

 * pack, unpack 사용하기

{{{#!vim php
<?php
 // pack 된 데이타 가지고 오기 
 $wbobj = new WBOBJ();
 $wbobj->hwnd = 0;
 $packedValue = $wbobj->pack();

 // 데이타 구조체 형식으로 풀기 
 $wbobj = new WBOBJ($unpack_data); 
 or
 $wbobj = new WBOBJ(); 
 $wbobj->unpack($unpack_data);
?>
}}}

= Problem =
@


1.2
log
@118.219.84.10;;cyberuls easylogic ;;
@
text
@d51 1
d69 1
a69 1

d75 1
d86 1
a86 1

@


1.1
log
@118.219.84.10;;cyberuls easylogic ;;
@
text
@d2 1
a2 1
win32api 를 사용하기 위해서 C언어 상의 구조체를 표현해서 바이너리 데이타를 얻기위한 용도로 사용되는 클래스이다. 
d4 3
a6 3
* struct 자료형을 표현한다. 
* pack(), unpack() 에서 사용하는 포맷을 생성한다. 
* 구조체 전체의 크기를 구한다. 
d9 1
a9 1
<php>
d22 1
a22 1
</php>
d24 2
a25 2
* pack, unpack 에서 사용하는 자료형을 윈도우형에 맞게 정의한다.
* 자세한 사항은 [http://www.php.net/pack pack] 참조하세요.
d27 2
a28 2
* 자료형별 바이트 수 
<php>
d39 1
a39 1
</php>
d43 2
a44 2
* data, struct type 지정 가능 
* 전체 크기 계산 
d49 2
a50 2
* 구조체 필드 구성하기 
<php>
d69 1
a69 1
</php>
d71 1
a71 1
* pack, unpack 사용하기
d73 1
a73 1
<php>
d85 1
a85 1
</php>
@
