ããã¯ãUbuntu OnlineãFedora OnlineãWindows ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒããŸã㯠MAC OS ãªã³ã©ã€ã³ ãšãã¥ã¬ãŒã¿ãŒãªã©ã®è€æ°ã®ç¡æãªã³ã©ã€ã³ ã¯ãŒã¯ã¹ããŒã·ã§ã³ã® XNUMX ã€ã䜿çšããŠãOnWorks ç¡æãã¹ãã£ã³ã° ãããã€ããŒã§å®è¡ã§ããã³ãã³ã winebuild ã§ãã
ããã°ã©ã ïŒ
NAME
winebuild - ã¯ã€ã³ DLL ãã«ããŒ
SYNOPSIS
ã¯ã€ã³ãã«ã [ãªãã·ã§ã³] [å ¥åãã¡ã€ã«...]
DESCRIPTION
ã¯ã€ã³ãã«ã Wine DLL ã®æ§ç¯ã«å¿ èŠãªã¢ã»ã³ã㪠ãã¡ã€ã«ãçæããŸãã
åºæ¬çã«ã¯ãUnix ã©ã€ãã©ãªå ã«ã«ãã»ã«åããã Win32 DLL ã§ãã
ã¯ã€ã³ãã«ã çæãããã¡ã€ã«ã®çš®é¡ã«å¿ããŠãããŸããŸãªã¢ãŒãããããŸãã ã®
ã¢ãŒãã¯ã以äžã«æå®ãããã¢ãŒã ãªãã·ã§ã³ã®ããããã«ãã£ãŠæå®ãããŸãã ã¢ãŒãã«å ããŠ
ãªãã·ã§ã³ã«å ããŠãããã§èª¬æãããŠããããã«ãä»ã®ããŸããŸãªã³ãã³ãã©ã€ã³ ãªãã·ã§ã³ãæå®ã§ããŸãã OPTIONS
ã®ã»ã¯ã·ã§ã³ããç¡æã§ããŠã³ããŒãã§ããŸãã
ã¢ãŒã OPTIONS
å¿ èŠã«å¿ããŠã次ã®ãªãã·ã§ã³ã®ãããããæ£ç¢ºã«æå®ããå¿ èŠããããŸãã
winebuild ãçæããŸãã
--dll .spec ãã¡ã€ã«ããã¢ã»ã³ã㪠ãã¡ã€ã«ããã«ãããŸã (ã SPEC FILE æ§æ 詳现ã«ã€ããŠã¯)ããŸãã¯
æšæºã® Windows .def ãã¡ã€ã«ããã .spec/.def ãã¡ã€ã«ã¯ã -E
ãªãã·ã§ã³ã çµæã®ãã¡ã€ã«ã¯ã¢ã»ã³ãã«ãããä»ã®ãªããžã§ã¯ã ãã¡ã€ã«ã«ãªã³ã¯ãããå¿ èŠããããŸãã
åäœãã Wine DLL ãæ§ç¯ããŸãã ãã®ã¢ãŒãã§ã¯ã ãã¡ã€ã« ã®ãªã¹ãã§ããå¿ èŠããããŸã
æçµç㪠DLL ã«ãªã³ã¯ããããã¹ãŠã®ãªããžã§ã¯ã ãã¡ã€ã«ã ã¯ã€ã³ãã«ã ååŸãããã
ä»ã® DLL ããã€ã³ããŒãããå¿ èŠããããã¹ãŠã®æªå®çŸ©ã·ã³ãã«ã®ãªã¹ãã
- EXE å®è¡å¯èœãã¡ã€ã«ã®ã¢ã»ã³ã㪠ãã¡ã€ã«ããã«ãããŸãã ããã¯åºæ¬çã«ã¯ --dll
å®è¡å¯èœãã¡ã€ã«ã§ãããããå ¥åãšã㊠.spec/.def ãã¡ã€ã«ãå¿ èŠãšããªãããšãé€ããŠããã®ã¢ãŒã
é¢æ°ããšã¯ã¹ããŒãããå¿ èŠã¯ãããŸããã ãã ããäžéšã®å®è¡å¯èœãã¡ã€ã«ã¯ãšã¯ã¹ããŒãæ©èœãå®è¡ããŸãã
.spec/.def ãã¡ã€ã«ã¯ã -E ãªãã·ã§ã³ã å®è¡å¯èœãã¡ã€ã«ã®ååã¯ã
.spec/.def ãã¡ã€ã«åãååšããå Žåã¯ããããããŸãã¯æ瀺çã« -F ãªãã·ã§ã³ã ã¶Â·
çµæã®ãã¡ã€ã«ãã¢ã»ã³ãã«ããä»ã®ãªããžã§ã¯ã ãã¡ã€ã«ã«ãªã³ã¯ããŠã
åäœãã Wine å®è¡å¯èœãã¡ã€ã«ãããã³ä»ã®ãã¹ãŠã®ãªããžã§ã¯ã ãã¡ã€ã«ã次ã®ããã«ãªã¹ããããŠããå¿ èŠããããŸãã
ãã¡ã€ã«ã
--def spec ãã¡ã€ã«ãã .def ãã¡ã€ã«ãæ§ç¯ããŸãã .spec ãã¡ã€ã«ã¯ã -E ãªãã·ã§ã³ãéžæããŸãã
ããã¯ãPE (Win32) ã³ã³ãã€ã©ã§ DLL ããã«ããããšãã«äœ¿çšãããŸãã
--implib
ä»æ§ãã¡ã€ã«ãã PE ã€ã³ããŒã ã©ã€ãã©ãªãæ§ç¯ããŸãã .spec ãã¡ã€ã«ã¯ã -E
ãªãã·ã§ã³ãéžæããŸãã
- è³å
ãã¹ãŠã®å ¥åãªãœãŒã¹ãå«ã .o ãã¡ã€ã«ãçæããŸãã æ§ç¯ãããšãã«äŸ¿å©ã§ã
PE binutils ã¯è€æ°ã®ãªãœãŒã¹ ãã¡ã€ã«ã XNUMX ã€ã®ãã¡ã€ã«ãšããŠåŠçã§ããªããããPE ã³ã³ãã€ã©ã䜿çšããŸãã
å ¥åã æšæº Unix ãã«ãã®å ŽåããªãœãŒã¹ ãã¡ã€ã«ã¯èªåçã«ã€ã³ã¯ã«ãŒããããŸãã
spec ãã¡ã€ã«ãæ§ç¯ãããšããäžéã® .o ãã¡ã€ã«ã¯å¿ èŠãããŸããã
OPTIONS
--as-cmd=ã³ãã³ããšããŠ
ã¢ã»ã³ã㪠ãã¡ã€ã«ã®ã³ã³ãã€ã«ã«äœ¿çšããã³ãã³ããæå®ããŸãã ããã©ã«ã㯠as.
-NSã --target =cpu ã¡ãŒã«ãŒ[-kernel]-os
çæãããã³ãŒãããã«ããããã¿ãŒã²ãã CPU ãšãã©ãããã©ãŒã ãæå®ããŸãã ã®
ã¿ãŒã²ããã®æå®ã¯ãconfig.sub ã«ãã£ãŠè¿ãããæšæºã® autoconf 圢åŒã§ãã
--cc-cmd=ccã³ãã³ã
ã¢ã»ã³ã㪠ãã¡ã€ã«ã®ã³ã³ãã€ã«ã«äœ¿çšãã C ã³ã³ãã€ã©ãæå®ããŸãã ããã©ã«ãã§ã¯ä»£ããã«
ã§æå®ãããã¢ã»ã³ãã©ã䜿çšããŸã --as-cmd.
-NSã --é 延ã©ã€ãã©ãª=å
æå®ããã©ã€ãã©ãªã®é 延ã€ã³ããŒã ã¢ãŒããèšå®ããŸããããã¯ã次ã®ããããã§ããå¿ èŠããããŸãã
ã§ã€ã³ããŒããããã©ã€ãã©ãª -l ãªãã·ã§ã³ã é 延ã¢ãŒãã¯ãã©ã€ãã©ãªãå®è¡ãããªãããšãæå³ããŸãã
ã€ã³ããŒããããé¢æ°ãå®éã«åŒã³åºããããŸã§ããŒããããŸãã
-D ã·ã³ãã«
C ã³ã³ãã€ã©ãšã®äºææ§ã®ããã«ç¡èŠãããŸãã
-eã --entry =function
ã¢ãžã¥ãŒã«ã®ãšã³ã㪠ãã€ã³ãé¢æ°ãæå®ããŸãã æå®ããªãå Žåãããã©ã«ã㯠DllMain
DLLã®å Žåãããã³ ã¡ã€ã³ å®è¡å¯èœãã¡ã€ã«ã®å Žå (æšæº C ã®å Žå) ã¡ã€ã³ å®çŸ©ãããŠããŸããã åã€
代ããã«äœ¿çšãããŸã)ã ãã㯠Win32 ã¢ãžã¥ãŒã«ã«ã®ã¿æå¹ã§ãã
-Eã --ãšã¯ã¹ããŒã=ãã¡ã€ã«å
.spec ãã¡ã€ã«ãæå®ããŸã (ã SPEC FILE æ§æ 詳现ã«ã€ããŠã¯)ããŸãã¯æšæºã® Windows .def
ãã«ãããã DLL ãŸãã¯å®è¡å¯èœãã¡ã€ã«ã®ãšã¯ã¹ããŒããå®çŸ©ãããã¡ã€ã«ã
--å€éšã·ã³ãã«
ä»æ§ãã¡ã€ã«ããå€éšã·ã³ãã«ã«çŽæ¥ãªã³ã¯ã§ããããã«ããŸãã éåžžã¯èšå·
DLL ã«ãã£ãŠãšã¯ã¹ããŒãããããã®ã¯ãDLL èªäœã§å®çŸ©ããå¿ èŠããããŸãã ãã®ãªãã·ã§ã³ã§ãããå¯èœã«ãªããŸã
å¥ã® Unix ã©ã€ãã©ãªã§å®çŸ©ãããã·ã³ãã«ã䜿çšå¯èœ (ã§å®çŸ©ãããã·ã³ãã«ã®å Žå)
å¥ã® DLLã ãã©ã¯ãŒã 代ããã«ä»æ§ã䜿çšããå¿ èŠããããŸã)ã
-f ãªãã·ã§ã³
ã³ãŒãçæãªãã·ã§ã³ãæå®ããŸãã çŸåš -fPIC & -fasynchronous-unwind-tables
ãµããŒããããŠããŸãã ä»ã®ãªãã·ã§ã³ã¯ãC ã³ã³ãã€ã©ãšã®äºææ§ã®ããã«ç¡èŠãããŸãã
--åœã¢ãžã¥ãŒã«
éåžžã®ã¢ã»ã³ããªãŸãã¯ãªããžã§ã¯ãã®ä»£ããã«ãdll ãŸã㯠exe çšã®åœã® PE ã¢ãžã¥ãŒã«ãäœæããŸãã
ãã¡ã€ã«ã PE ã¢ãžã¥ãŒã«ã«ã¯ã¢ãžã¥ãŒã«ã®ãªãœãŒã¹ãå«ãŸããŠããŸãããå®è¡å¯èœã³ãŒãã¯å«ãŸããŠããŸããã
-NSã --ãã¡ã€ã«å=ãã¡ã€ã«å
ã¢ãžã¥ãŒã«ã®ãã¡ã€ã«åãèšå®ããŸãã ããã©ã«ãã§ã¯ãä»æ§ã®ããŒã¹åã䜿çšãããŸãã
ãã¡ã€ã«ïŒæ¡åŒµåãªãïŒã
-NSã - å©ããŠ
䜿çšæ³ã¡ãã»ãŒãžã衚瀺ããŠçµäºããŸãã
-NSã --heap =ãµã€ãº
ã¢ãžã¥ãŒã«ã®ããŒã«ã« ããŒãã®ãµã€ãºããã€ãåäœã§æå®ããŸã (Win16 ã¢ãžã¥ãŒã«ã«ã®ã¿æå¹)ã
ããã©ã«ãã§ã¯ããŒã«ã«ããŒãã¯ãããŸããã
-I ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã
C ã³ã³ãã€ã©ãšã®äºææ§ã®ããã«ç¡èŠãããŸãã
-kã --ãã«ã¢ãã
çæããã .def ãã¡ã€ã«å ã®ã·ã³ãã«åãã stdcall è£ é£Ÿãåé€ããŸãã
ã§ã®ã¿æå³ã®ãã --def ã¢ãŒãã
-K ãã©ã°
C ã³ã³ãã€ã©ãšã®äºææ§ã®ããã«ç¡èŠãããŸãã
--ã©ãŒãžã¢ãã¬ã¹å¯Ÿå¿
å®è¡å¯èœãã¡ã€ã«ã«ãã©ã°ãèšå®ããŠããã®ã¢ããªã±ãŒã·ã§ã³ããµããŒãããŠããããšãããŒããŒã«éç¥ããŸãã
2 GB ãè¶ ããã¢ãã¬ã¹ç©ºéã
--ld-cmd=ldã³ãã³ã
ãªããžã§ã¯ã ãã¡ã€ã«ã®ãªã³ã¯ã«äœ¿çšããã³ãã³ããæå®ããŸãã ããã©ã«ã㯠ld.
-Lã --library-path =ãã£ã¬ã¯ããªã«ãžã§ããéå§ããŸãã
æå®ããããã£ã¬ã¯ããªããæ€çŽ¢ããããã£ã¬ã¯ããªã®ãªã¹ãã«è¿œå ããŸãã
ã©ã€ãã©ãªãã€ã³ããŒãããŸãã
-lã --library =å
æå®ãããã©ã€ãã©ãªãã€ã³ããŒããã察å¿ããã©ã€ãã©ãªãæ¢ããŸã libname.def å ã®ãã¡ã€ã«
ã§æå®ããããã£ã¬ã¯ã㪠-L ãªãã·ã§ã³ãéžæããŸãã
-m16ã -m32ã -m64
ãããã 16 ãããã32 ãããããŸã㯠64 ãããã®ã³ãŒããçæããŸãã
-NSã --ã¡ã€ã³ã¢ãžã¥ãŒã«=ã¢ãžã¥ãŒã«
16 ããã DLL ããã«ããããšãã¯ã察å¿ãã 32 ããã DLL ã®ååã次ã®ããã«èšå®ããŸãã ã¢ãžã¥ãŒã«ã ãã®
16 ããã DLL ã®ããŒãé åºããDLL ã®ããŒãé åºãšåŒ·å¶çã«äžèŽããããã«ããããã«äœ¿çšãããŸãã
32ãããã®ãã®ã
-NSã --dll å=dllå
ã¢ãžã¥ãŒã«ã®å éšåãèšå®ããŸãã Win16 ã¢ãžã¥ãŒã«ã§ã®ã¿äœ¿çšãããŸãã ããã©ã«ã
spec ãã¡ã€ã«ã®ããŒã¹å (æ¡åŒµåãªã) ã䜿çšããããšã§ãã ããã¯æ¬¡ã®ç®çã§äœ¿çšãããŸã
KERNELããã㯠KRNL386.EXE ã«ååšããããã§ãã ãã以å€ã®å Žåã¯å¿ èŠãªãã¯ãã§ãã
--nm-cmd=nmã³ãã³ã
æªå®çŸ©ã®ã·ã³ãã«ã®ãªã¹ããååŸããããã«äœ¿çšããã³ãã³ããæå®ããŸãã ããã©ã«ã㯠nm.
--nxcompat=ã¯ã|ããã
ã¢ãžã¥ãŒã«ã no-exec ãµããŒããšäºææ§ããããã©ãããæå®ããŸãã ããã©ã«ãã¯ãã¯ããã§ãã
-oã --output =file
åºåãã¡ã€ã«ã®ååãèšå®ããŸãïŒããã©ã«ãã¯æšæºåºåïŒã åºåãã¡ã€ã«ã®å Žå
ååã .o ã§çµããå Žåãããã¹ãåºåã¯äžæãã¡ã€ã«ã«éä¿¡ããããã®åŸã¢ã»ã³ãã«ãããŸãã
æå®ããã .o ãã¡ã€ã«ãçæããŸãã
-NSã --res=rsrc.res
æå®ããããã€ã㪠ãªãœãŒã¹ ãã¡ã€ã«ãããªãœãŒã¹ãèªã¿èŸŒã¿ãŸãã ã® rsrc.res ãã¡ã€ã«ã¯ããããšãã§ããŸã
ãœãŒã¹ãªãœãŒã¹ãã¡ã€ã«ããçæããã wrc(1) (ãŸã㯠Windows ãªãœãŒã¹ã䜿çš)
ã³ã³ãã€ã©ïŒã
ãã®ãªãã·ã§ã³ã¯ Win16 ãªãœãŒã¹ ãã¡ã€ã«ã«ã®ã¿å¿ èŠã§ããWin32 ãªãœãŒã¹ ãã¡ã€ã«ã¯åã«
ãšããŠèšèŒ ãã¡ã€ã« èªåçã«æ£ããåŠçãããŸã (ãã ãã -r
ãã®ãªãã·ã§ã³ã¯ Win32 ãã¡ã€ã«ã§ãæ©èœããŸã)ã
--save-temps
ããŸããŸãªäžæãã¡ã€ã«ãåé€ããªãã§ãã ããã ã¯ã€ã³ãã«ã ãçæããŸãã
-ãµãã·ã¹ãã =ãµãã·ã¹ãã [:äž»èŠãª[.ãã€ããŒ]]
å®è¡å¯èœãã¡ã€ã«ã®ãµãã·ã¹ãã ãèšå®ããŸãã次ã®ããããã«ãªããŸãã
ã³ã³ãœãŒã« ã³ãã³ãã©ã€ã³å®è¡å¯èœãã¡ã€ã«ã®å Žåã
ãŠã£ã³ããŠãº ã°ã©ãã£ã«ã«ãªå®è¡å¯èœãã¡ã€ã«ã®å Žåã
ãã€ãã£ã ãã€ãã£ã ã¢ãŒã DLL ã®å Žåã
ã²ãã¿ CE DLLã®å Žåã
ã³ãã³ãã©ã€ã³å®è¡å¯èœãã¡ã€ã«ã®ãšã³ããªãã€ã³ãã¯éåžžã® C ã§ãã ã¡ã€ã³ é¢æ°ã NS wã¡ã€ã³
Unicode æååã䜿çšããåŒæ°é åãå¿ èŠãªå Žåã¯ã代ããã«é¢æ°ã䜿çšã§ããŸãã
ã°ã©ãã£ã«ã«å®è¡å¯èœãã¡ã€ã«ã«ã¯ã å〠ãšã³ããªãŒãã€ã³ãã
ãªãã·ã§ã³ã§ããµãã·ã¹ãã ã®ã¡ãžã£ãŒ ããŒãžã§ã³ãšãã€ã㌠ããŒãžã§ã³ãæå®ããããšãã§ããŸãã ããã©ã«ã
ãµãã·ã¹ãã ã®ããŒãžã§ã³ã¯ 4.0 ã§ãã
-uã --undefined =ã·ã³ãã«
Add ã·ã³ãã« ãªã³ã«ãŒãåŒã³åºããšãã«ãæªå®çŸ©ã®ã·ã³ãã«ã®ãªã¹ãã«è¿œå ãããŸãã ããã§ã§ããŸã
éçã©ã€ãã©ãªã®ç¹å®ã®ã¢ãžã¥ãŒã«ã匷å¶çã«å«ããããšãå¯èœ
ã€ã³ããŒãã解決ããŠããŸãã
-vã -詳现
ã«ãã£ãŠåŒã³åºãããããŸããŸãªãµãã³ãã³ãã衚瀺ããŸãã ã¯ã€ã³ãã«ã.
- ããŒãžã§ã³
ããã°ã©ã ã®ããŒãžã§ã³ã衚瀺ããŠçµäºããŸãã
-wã -èŠå
èŠåããªã³ã«ããŸãã
SPEC FILE æ§æ
æ§æ
ä»æ§ãã¡ã€ã«ã«ã¯ãé åºå®£èšã®ãªã¹ããå«ãŸããŠããå¿ èŠããããŸãã äžè¬çãªæ§æã¯æ¬¡ã®ãšããã§ãã
次ã®ãšããã§ãã
åºæ° æ©èœã¿ã€ã [ãã©ã°] ãšã¯ã¹ããŒãå ( [åŒæ°..ã] ) [ãã³ãã©]
åºæ° å€æ° [ãã©ã°] ãšã¯ã¹ããŒãå ( [ããŒã¿...] )
åºæ° å€éš [ãã©ã°] ãšã¯ã¹ããŒãå [ã·ã³ãã«å]
åºæ° ã¹ã¿ã [ãã©ã°] ãšã¯ã¹ããŒãå [ (åŒæ°..ã) ]
åºæ° åã [ãã©ã°] ãšã¯ã¹ããŒãå ããŒã¿
# 泚é
è¡æ«ããšã¹ã±ãŒããããŠããå Žåãé€ãã宣èšã¯ XNUMX è¡ã«åãŸãå¿ èŠããããŸãã
ããã¯ã¹ã©ãã·ã¥æåã ã® # è¡å ã®ã©ããã«æåããããšãè¡ã®æ®ãã®éšåã
ã³ã¡ã³ããšããŠç¡èŠãããŸãã
åºæ° ãšã³ããªãã€ã³ãã«å¯Ÿå¿ããåºæ°ããŸãã¯ã@ããæå®ããŸãã
èªååºæ°å²ãåœãŠ (Win32 ã®ã¿)ã
ãã©ã° ã¯ãã-ãæåãåã«ä»ãäžé£ã®ãªãã·ã§ã³ã®ãã©ã°ã§ãã ãµããŒããããŠãããã©ã°ã¯æ¬¡ã®ãšããã§ãã
-norelay
ãšã³ã㪠ãã€ã³ãã¯ãªã¬ãŒ ãããã° ãã¬ãŒã¹ã«ã¯è¡šç€ºãããŸãã (Win32 ã®ã¿)ã
-ããŒããŒã
ãšã³ã㪠ãã€ã³ãã¯ãååã§ã¯ãªãåºæ°ã«ãã£ãŠãšã¯ã¹ããŒããããŸãã ååã¯
ãŸã èŒžå ¥å¯èœã§ãã
-ret16 ãã®é¢æ°ã¯ 16 ãããå€ãè¿ããŸã (Win16 ã®ã¿)ã
-ret64 ãã®é¢æ°ã¯ 64 ãããå€ãè¿ããŸã (Win32 ã®ã¿)ã
-ç»é²
ãã®é¢æ°ã¯ CPU ã¬ãžã¹ã¿ã䜿çšããŠåŒæ°ãæž¡ããŸãã
-æ°é
ãã®é¢æ°ã¯ä»ã® DLL ããã€ã³ããŒãã§ããŸãããã¢ã¯ã»ã¹ã®ã¿å¯èœã§ãã
GetProcAddress ãéããŠã
-åºæ°
ãšã³ã㪠ãã€ã³ãã¯ãååã§ã¯ãªãåºæ°ã«ãã£ãŠã€ã³ããŒããããŸãã ååã¯
ãŸã 茞åºãããŠããŸãã
-arch =CPU[,CPU]
ãšã³ã㪠ãã€ã³ãã¯ãæå®ããã CPU ã¢ãŒããã¯ãã£ã§ã®ã¿äœ¿çšã§ããŸãã ã®
å win32 & win64 ãã¹ãŠã® 32 ããããŸã㯠64 ããã CPU ã¢ãŒããã¯ãã£ã«äžèŽ
ããããã 16 ããã DLL ã§ã®æå® -arch=win32 ãšã³ããªãŒãã€ã³ãã®åå ãšãªã
32 ããã ã©ãã㌠ã¢ãžã¥ãŒã«ãããšã¯ã¹ããŒããããŸãã
æŒç® åºæ°
æ§æïŒ
åºæ° æ©èœã¿ã€ã [ãã©ã°] ãšã¯ã¹ããŒãå ( [åŒæ°..ã] ) [ãã³ãã©]
ãã®å®£èšã¯é¢æ°ã®ãšã³ã㪠ãã€ã³ããå®çŸ©ããŸãã ã«ãã£ãŠå®çŸ©ããããããã¿ã€ã
ãšã¯ã¹ããŒãå ( [åŒæ°..ã] ) åçãªã³ã¯ã«äœ¿çšã§ããååãšåœ¢åŒãæå®ããŸã
åŒæ°ã®ã 代ããã«ã@ãã䜿çšã§ããŸã ãšã¯ã¹ããŒãå éåžžã®ã¿ã®ãšã¯ã¹ããŒãã®å Žåã
æ©èœã¿ã€ã 次ã®ããããã§ããå¿ èŠããããŸãã
æšæºã³ãŒã«
éåžžã® Win32 é¢æ°ã®å Žå
ãã¹ã«ã« éåžžã® Win16 é¢æ°ã®å Žå
cdecl C åŒã³åºãèŠçŽã䜿çšãã Win16 ãŸã㯠Win32 é¢æ°ã®å Žå
å¯å€é·åŒæ°
å€æ°ã䜿çšãã C åŒã³åºãèŠåã䜿çšãã Win16 ãŸã㯠Win32 é¢æ°ã®å Žå
åŒæ°ã®æ°
ãã®åŒã³åºã
Win32 é¢æ°ã®å Žåã ãã®åŒã³åºã åŒã³åºãèŠçŽ (æåã®ãã©ã¡ãŒã¿
i386 ã® %ecx ã¬ãžã¹ã¿å )
åŒæ° 次㮠XNUMX ã€ãŸãã¯è€æ°ã§ããå¿ èŠããããŸãã
åèª (16ããã笊å·ãªãå€)
å£ (16 ãããã®ç¬Šå·ä»ãã¯ãŒã)
é·ã (ãã€ã³ã¿ãŒãµã€ãºã®æŽæ°å€)
intxnumx (64ãããæŽæ°å€)
intxnumx (128ãããæŽæ°å€)
ãããŒã (32ãããæµ®åå°æ°ç¹å€)
(64ãããæµ®åå°æ°ç¹å€)
PTR (ãªãã¢ãã€ã³ã¿)
STR (NULL ã§çµãã ASCII æååãžã®ç·åœ¢ãã€ã³ã¿)
wstr (NULL ã§çµãã Unicode æååãžã®ç·åœ¢ãã€ã³ã¿)
ã»ã°ã¡ã³ã (ã»ã°ã¡ã³ãåããããã€ã³ã¿)
ã»ã°ã¡ã³ãæåå (NULL ã§çµãã ASCII æååãžã®ã»ã°ã¡ã³ãåããããã€ã³ã¿)ã
泚: 16 ãããããã³ã»ã°ã¡ã³ãåããããã€ã³ã¿ãŒåã¯ãWin16 é¢æ°ã§ã®ã¿æå¹ã§ãã
ãã³ãã© ãšã³ã㪠ãã€ã³ããå®è£ ããå®éã® C é¢æ°ã®ååã§ãã
32ãããã¢ãŒãã ãã³ãã©ãŒã¯æ¬¡ã®ããã«æå®ããããšãã§ããŸãã dllå.function 転éããããã®ãå®çŸ©ããã«ã¯
é¢æ° (å¥ã® DLL ã«å®è£ ãããŠããé¢æ°)ã ããã ãã³ãã© æå®ãããŠããŸããã
ãšåäžã§ãããšæ³å®ããã ãšã¯ã¹ããŒãåã
ãã®æåã®äŸã§ã¯ã32 ããã GetFocus() åŒã³åºãã®ãšã³ã㪠ãã€ã³ããå®çŸ©ããŸãã
@ stdcall GetFocus() GetFocus
ãã® 16 çªç®ã®äŸã§ã¯ãXNUMX ããã CreateWindow() åŒã³åºãã®ãšã³ã㪠ãã€ã³ã (åºæ°
100 ã¯åãªãäŸã§ã)ã ãŸããããã¯ã¹ã©ãã·ã¥ã䜿çšããŠè¡ãåå²ã§ããé·ãã瀺ããŠããŸãã
100 ãã¹ã«ã« CreateWindow(ptr ptr long s_word s_word s_word \
s_word ã¯ãŒã ã¯ãŒã ã¯ãŒã ptr) WIN_CreateWindow
å¯å€æ°ã®åŒæ°ã䜿çšããŠé¢æ°ã宣èšããã«ã¯ãé¢æ°ã次ã®ããã«æå®ããŸãã
å¯å€é·åŒæ° Win32 é¢æ°ã® '...' ãã©ã¡ãŒã¿ã䜿çšã㊠C ãã¡ã€ã«å ã§å®£èšãããã
Win16 é¢æ°ã®è¿œå ã® VA_LIST16 åŒæ°ã wsprintf* é¢æ°ãåç §ããŠãã ããã
ããšãã°ãuser.exe.spec ãš user32.spec ã§ãã
å€æ° åºæ°
æ§æïŒ
åºæ° å€æ° [ãã©ã°] ãšã¯ã¹ããŒãå ( [ããŒã¿...] )
ãã®å®£èšã¯ãæå®ãããåºæ°ã§ã® 32 ããã ã¯ãŒããšããŠããŒã¿ ã¹ãã¬ãŒãžãå®çŸ©ããŸãã
ãšã¯ã¹ããŒãå ã¯ãåçãªã³ã¯ã«äœ¿çšã§ããååã«ãªããŸãã ããŒã¿ XNUMXé²æ°ãå¯èœ
ãŸãã¯ã0xããåã«ä»ã XNUMX é²æ°ã 次ã®äŸã§ã¯ãå€æ° VariableA ã次ã®å Žæã«å®çŸ©ããŸãã
åºæ° 2 㧠4 ã€ã® int ãå«ã:
2å€æ° VariableA(-1 0xff 0 0)
ãã®å®£èšã¯ Win16 ä»æ§ãã¡ã€ã«ã§ã®ã¿æ©èœããŸãã Win32ã§ã¯äœ¿çšããå¿ èŠããããŸã å€éš ãååŸããå¿ èŠãããè
ïŒäžèšåç §ïŒã
å€éš åºæ°
æ§æïŒ
åºæ° å€éš [ãã©ã°] ãšã¯ã¹ããŒãå [ã·ã³ãã«å]
ãã®å®£èšã¯ãC ã·ã³ãã« (å€æ°ãŸãã¯é¢æ°) ã«åçŽã«ããããããšã³ããªãå®çŸ©ããŸãã
Win32 ä»æ§ãã¡ã€ã«ã§ã®ã¿åäœããŸãã ãšã¯ã¹ããŒãå ã·ã³ãã«ãæããŸã ã·ã³ãã«å ãã
C ã³ãŒãã§å®çŸ©ããå¿ èŠããããŸãã ãããã¯ã次ã®åœ¢åŒã«ããããšãã§ããŸãã dllå.ã·ã³ãã«å ããž
転éãããã·ã³ãã« (å¥ã® DLL ã«å®è£ ãããŠããã·ã³ãã«) ãå®çŸ©ããŸãã ããã ã·ã³ãã«å is
æå®ãããŠããªãå Žåã¯ã次ãšåäžã§ãããšã¿ãªãããŸãã ãšã¯ã¹ããŒãåã
ã¹ã¿ã åºæ°
æ§æïŒ
åºæ° ã¹ã¿ã [ãã©ã°] ãšã¯ã¹ããŒãå [ (åŒæ°..ã) ]
ãã®å®£èšã¯ã¹ã¿ãé¢æ°ãå®çŸ©ããŸãã ååãšåºæ°ãå©çšã§ããããã«ããŸãã
åçãªã³ã¯ã§ãããé¢æ°ã次ã®å Žåã¯ãšã©ãŒ ã¡ãã»ãŒãžã衚瀺ãããŠå®è¡ãçµäºããŸãã
ãããŸã§ã«åŒã°ããã
çãã åºæ°
æ§æïŒ
åºæ° åã [ãã©ã°] ãšã¯ã¹ããŒãå ããŒã¿
ãã®å®£èšã¯ãåºæ°ã絶察å€ãšããŠå®çŸ©ããŸãã ãšã¯ã¹ããŒãå ååã«ãªããŸã
åçãªã³ã¯ã«äœ¿çšã§ããŸãã ããŒã¿ XNUMX é²æ°ãŸãã¯å é ã«æ¬¡ã® XNUMX é²æ°ãä»ããããšãã§ããŸãã
ã0xãã
äœè
ã¯ã€ã³ãã«ã é·å¹Žã«ããã£ãŠå€ãã®äººã ã«ãã£ãŠåãçµãã§ããŸããã äž»ãªèè ã¯ãããŒã J.
ã¢ã ã·ã¥ã¿ãããã¢ã¬ã¯ãµã³ãã«ã»ãžã¥ãªã¢ãŒã«ããã«ãã£ã³ã»ãã©ã³ã»ããŒãŽã£ã¹ããŠã«ãªããã»ãŽã¡ã€ã¬ã³ãããšãªãã¯ã»ã€ã³ã°ããŒã«ã å€ãã®
ä»ã®äººãæ°æ©èœããã°ä¿®æ£ã«è²¢ç®ããŠãããŸããã å®å šãªãªã¹ãã«ã€ããŠã¯ãgit ãåç §ããŠãã ããã
ãã°ãã³ãããããŸãã
onworks.net ãµãŒãã¹ã䜿çšããŠãªã³ã©ã€ã³ã§ winebuild ã䜿çšãã