home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-09-16 | 485.6 KB | 9,944 lines |
- Äú½áó½Ñ¡¿Ñ
- Windows 3.0/pg/3#3 = 1 =
-
- â½áóá 16. àΘÑ «í π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε............................5
- 16.1 è«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ Windows..............................5
- 16.1.1 üẫóá∩ ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿............................6
- 16.1.2 è«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ EMS 4.0............................9
- 16.1.3 æΓá¡ñáαΓ¡á∩ ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ Windows...............15
- 16.1.4 è«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ Windows ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ....20
- 16.2 êß»«½∞º«óá¡¿Ñ »á¼∩Γ¿ ó »α¿¬½áñ¡δσ »α«úαá¼¼áσ
- Windows......................................................24
- 16.2.1 ô»αáó½Ñ¡¿Ñ áóΓ«¼áΓ¿τÑ߬¿¼¿ ßÑú¼Ñ¡ΓἿ ñá¡¡δσ..........26
- 16.2.2 ô»αáó½Ñ¡¿Ñ í½«¬á¼¿ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿....28
- 16.2.3 ô»αáó½Ñ¡¿Ñ í½«¬á¼¿ ú½«áí½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿....33
- 16.2.4 êß»«½∞º«óá¡¿Ñ ñ«»«½¡¿Γѽ∞¡δσ íá⌐Γ Ä¬¡á ¿ ¬½áßßá.......41
- 16.2.5 ô»αáó½Ñ¡¿Ñ αÑßπαßἿ..................................43
- 16.3 êß»«½∞º«óá¡¿Ñ ¼«ñѽÑ⌐ »á¼∩Γ¿............................46
- 16.4 êß»«½∞º«óá¡¿Ñ ñá¡¡δσ Γ¿»á huge..........................47
- 16.5. ùeú« ß½ÑñπÑΓ ¿ºíÑúáΓ∞ »α¿ αáí«ΓÑ ß ñá¡¡δ¼¿..............48
- 16.6 ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε ñ½∩ ¬«ñá »α«úαá¼¼δ...................51
- 16.6.1 êß»«½∞º«óá¡¿Ñ áΓα¿íπΓ«ó ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó.............51
- 16.6.2 êß»«½∞º«óá¡¿Ñ ¡Ñ߬«½∞¬¿σ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó............52
- 16.6.3 üá½á¡ß¿α«óá¡¿Ñ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó......................53
- 16.6.4 Å«α∩ñ«¬ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó ó Σá⌐½Ñ «»αÑñѽѡ¿∩....53
- 16.7 çᬽετÑ¡¿Ñ..............................................54
- â½áóá 17. Åáαá¼ÑΓαδ »α¿¡ΓÑαá.................................55
- 17.1 èᬠWindows π»αáó½∩ÑΓ »áαá¼ÑΓαἿ »α¿¡ΓÑα«ó.............55
- 17.1.1. Åáαá¼ÑΓαδ »α¿¡ΓÑαá ¿ ßΓαπ¬Γπαá DEVMODE................56
- 17.1.2. Åáαá¼ÑΓαδ »α¿¡ΓÑαá ¿ ßαÑñá »α¿¡ΓÑαá...................57
- 17.2 êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ ñαá⌐óÑα«ó πßΓα«⌐ßΓó...............58
- 17.3 Å«½πτÑ¡¿Ñ σáαá¬ΓÑα¿ßΓ¿¬ ñαá⌐óÑαá »α¿¡ΓÑαá...............60
- 17.4 Éáí«Γá ß »áαá¼ÑΓαἿ »α¿¡ΓÑαá...........................60
- 17.4.1 Ä»αÑñѽѡ¿Ñ óó«ñá ¿ óδó«ñá Σπ¡¬µ¿¿ ExtDeviceMode......61
- 17.4.2 Å«½πτÑ¡¿Ñ ¬«»¿¿ »áαá¼ÑΓα«ó »α¿¡ΓÑαá...................62
- 17.4.3 꺼ѡѡ¿Ñ »áαá¼ÑΓα«ó »α¿¡ΓÑαá.........................63
- 17.4.4 Åα¿ß»«ß«í½Ñ¡¿Ñ »áαá¼ÑΓα«ó »α¿¡ΓÑαá ñ½∩..............64
- 17.4.5 꺼ѡѡ¿Ñ »áαá¼ÑΓα«ó »α¿¡ΓÑαá íѺ ó½¿∩¡¿∩ ¡á ñαπú¿Ñ....66
- 17.4.6 çá»α«ß π »«½∞º«óáΓѽ∩ ¿º¼Ñ¡Ñ¡¿∩ »áαá¼ÑΓα«ó
- »α¿¡ΓÑαá.....................................................67
- 17.5 è«»¿α«óá¡¿Ñ »áαá¼ÑΓα«ó »α¿¡ΓÑαá ¼Ñªñπ ñαá⌐óÑαἿ........69
- 17.6 Å«ññÑ᪬á ß«íßΓóÑ¡¡δσ »áαá¼ÑΓα«ó »α¿¡ΓÑαá...............69
- 17.7 Éáí«Γá ß« ßΓáα묨 ñαá⌐óÑαἿ »α¿¡ΓÑα«ó..................70
- 17.8 çᬽετÑ¡¿Ñ..............................................70
- â½áóá 18. ÿα¿ΣΓδ.............................................72
- 18.1 çỿß∞ ΓѬßΓá...........................................72
- 18.2 êß»«½∞º«óá¡¿Ñ µóÑΓá »α¿ ºá»¿ß¿ ΓѬßΓá...................72
- 18.3 êß»«½∞º«óá¡¿Ñ ºá¬áº¡δσ Φα¿ΣΓ«ó..........................73
- 18.4 櫺ñá¡¿Ñ ½«ú¿τÑ߬«ú« Φα¿ΣΓá.............................74
- 18.5 êß»«½∞º«óá¡¿Ñ ¡Ñ߬«½∞¬¿σ Φα¿ΣΓ«ó ó «ñ¡«⌐ ßΓ᫬Ñ.........76
- 18.6 Å«½πτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ « óδíαá¡¡«¼ Φα¿ΣΓÑ.................77
- 18.7 Å«½πτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ « ½«ú¿τÑ߬«¼ Φα¿ΣΓÑ................78
- 18.8 ÅÑαÑτ¿ß½Ñ¡¿Ñ Φα¿ΣΓ«ó....................................80
- 18.9 Åα«óÑα¬á ΓѬßΓ«óδσ 󫺼«ª¡«ßΓÑ⌐ πßΓα«⌐ßΓóá..............81
- 18.10 ä«íáó½Ñ¡¿Ñ αÑßπαßá Φα¿ΣΓá..............................83
- 18.11 ôßΓá¡«ó¬á óδαáó¡¿óá¡¿∩ ΓѬßΓá..........................84
- 18.12 櫺ñá¡¿Ñ αÑßπαßá Φα¿ΣΓá................................84
-
- Windows 3.0/pg/3#3 = 2 =
-
- 18.12.1 櫺ñá¡¿Ñ Σá⌐½«ó Φα¿ΣΓ«ó..............................85
- 18.12.2 櫺ñá¡¿Ñ «»¿ßá¡¿∩ αÑßπαßá Φα¿ΣΓá.....................85
- 18.12.3 櫺ñá¡¿Ñ Φáí½«¡á »α«úαá¼¼¡«ú« ¼«ñπ½∩.................86
- 18.12.4 櫺ñá¡¿Ñ Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩....................86
- 18.12.5 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á Σá⌐½á αÑßπαßá Φα¿ΣΓá.........87
- 18.13 Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ShowFont...................88
- 18.14 çᬽετÑ¡¿Ñ.............................................88
- â½áóá 19. Å὿Γαδ µóÑΓ«ó.....................................89
- 19.1 ùΓ« ñѽáÑΓ »á½¿Γαá µóÑΓ«ó...............................89
- 19.2 èᬠαáí«ΓáεΓ »á½¿Γαδ µóÑΓ«ó.............................90
- 19.3 櫺ñá¡¿Ñ ¿ ¿ß»«½∞º«óá¡¿Ñ ½«ú¿τÑ߬«⌐ »á½¿Γαδ.............91
- 19.3.1 櫺ñá¡¿Ñ ßΓαπ¬Γπαδ ñá¡¡δσ LOGPALETTE..................91
- 19.3.2 櫺ñá¡¿Ñ ½«ú¿τÑ߬«⌐ »á½¿Γαδ...........................94
- 19.3.3 éδí«α »á½¿Γαδ ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá..................94
- 19.3.4 ÉÑ὿ºáµ¿∩ »á½¿Γαδ....................................95
- 19.4 ɿ߫óá¡¿Ñ ß ¿ß»«½∞º«ó᡿Ѽ µóÑΓ«ó »á½¿Γαδ...............95
- 19.4.1 Åα∩¼«Ñ «»αÑñѽѡ¿Ñ µóÑΓ«ó Γáí½¿µδ.....................95
- 19.4.2 ìÑ»α∩¼«Ñ «»αÑñѽѡ¿Ñ µóÑΓ«ó »á½¿Γαδ...................96
- 19.4.3 êß»«½∞º«óá¡¿Ñ »á½¿Γαδ »α¿ óδó«ñÑ αáßΓα«óδσ ¬áαΓ.......98
- 19.5 꺼ѡѡ¿Ñ ½«ú¿τÑ߬«⌐ »á½¿Γαδ............................99
- 19.6 ÉÑᬵ¿∩ ¡á ¿º¼Ñ¡Ñ¡¿∩ ß¿ßΓѼ¡«⌐ »á½¿Γαδ.................101
- 19.6.1 Äíαáí«Γ¬á ß««íΘÑ¡¿∩ WM_QUERYNEWPALETTE...............101
- 19.6.2 ÉÑᬵ¿∩ ¡á ß««íΘÑ¡¿Ñ WM_PALETTECHANGED...............102
- 19.7 çᬽετÑ¡¿Ñ.............................................104
- â½áóá 20. 信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿...............105
- 20.1 ùΓ« Γá¬«Ñ DLL..........................................105
- 20.1.1 ê¼»«αΓ¿απѼδÑ í¿í½¿«ΓѬ¿ ¿ DLL.......................106
- 20.1.2 î«ñ㫨 DLL ¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ....................108
- 20.1.3 DLL ¿ ºáñáτ¿.........................................109
- 20.1.4 DLL ¿ ßΓѬ¿..........................................110
- 20.1.5 èᬠWindows ¿ΘÑΓ DLL.................................111
- 20.2 è«úñá ¿ß»«½∞º«óáΓ∞ ß«íßΓóÑ¡¡δÑ DLL.....................111
- 20.2.1 Éáºñѽѡ¿Ñ ¼Ñªñπ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ.............112
- 20.2.2 î«ñ¿Σ¿¬áµ¿∩ »α«úαá¼¼ ñ½∩ αẽ¿τ¡δσ α뭪«ó............113
- 20.2.3 ï«óπΦ¬¿ «¬«¡.........................................114
- 20.2.4 äαá⌐óÑαδ πßΓα«⌐ßΓó...................................115
- 20.2.5 æ«íßΓóÑ¡¡δÑ í½«¬¿ π»αáó½Ñ¡¿∩.........................116
- 20.2.6 ô»αáó½Ñ¡¿Ñ »α«Ñ¬ΓἿ.................................125
- 20.3 櫺ñá¡¿Ñ DLL...........................................125
- 20.3.1 櫺ñá¡¿Ñ Σá⌐½á ß ¿ßσ«ñ¡δ¼ ¬«ñ«¼ ¡á æ.................126
- 20.3.2 櫺ñá¡¿Ñ Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩....................132
- 20.3.3. 櫺ñá¡¿Ñ Make-Σá⌐½á.................................134
- 20.4 ä«ßΓπ» ¬ DLL ¿º »α¿¬½áñ¡δσ »α«úαá¼¼....................138
- 20.4.1 櫺ñá¡¿Ñ »α«Γ«Γ¿»á í¿í½¿«ΓÑτ¡δσ Σπ¡¬µ¿⌐..............138
- 20.4.2 ê¼»«αΓ¿α«óá¡¿Ñ í¿í½¿«ΓÑτ¡δσ Σπ¡¬µ¿⌐..................139
- 20.5 Åαáó¿½á ó½áñÑ¡¿∩ ñ½∩ «íΩÑ¬Γ«ó Windows..................142
- 20.6 Åα¿¼Ñα í¿í½¿«ΓѬ¿: Select..............................143
- 20.6.1 櫺ñá¡¿Ñ Σπ¡¬µ¿⌐.....................................144
- 20.6.2 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ ¿¡¿µ¿á½¿ºáµ¿¿.......................149
- 20.6.3 櫺ñá¡¿Ñ »α«µÑñπαδ ºáóÑαΦÑ¡¿∩........................149
- 20.6.4 櫺ñá¡¿Ñ Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩....................150
- 20.6.5 櫺ñá¡¿Ñ ó¬½ετáѼ«ú« Σá⌐½á...........................150
-
- Windows 3.0/pg/3#3 = 3 =
-
- 20.6.6 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á..............................150
- 20.7 çᬽετÑ¡¿Ñ.............................................151
- â½áóá 21. ê¡ΓÑαΣÑ⌐ß ¼¡«ªÑßΓóá ñ«¬π¼Ñ¡Γ«ó.....................152
- 21.1 æΓαπ¬Γπαá »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐ MDI.......152
- 21.2 ê¡¿µ¿á½¿ºáµ¿∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐
- MDI.........................................................153
- 21.2.1 ÉÑú¿ßΓαᵿ∩ ¬½áßß«ó «¬«¡.............................153
- 21.2.2 櫺ñá¡¿Ñ «¬«¡........................................154
- 21.3 櫺ñá¡¿Ñ µ¿¬½á «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐.....................155
- 21.4 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ «¬¡á ΣαÑ⌐¼á.......156
- 21.5 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ ñ½∩ ñ«τÑα¡Ñú«...157
- 21.6 æó∩ºδóá¡¿Ñ ñá¡¡δσ ß ñ«τÑα¡¿¼¿ «¬¡á¼¿...................157
- 21.6.1 òαá¡Ñ¡¿Ñ ñá¡¡δσ ó ßΓαπ¬ΓπαÑ «¬¡á.....................158
- 21.6.2 êß»«½∞º«óá¡¿Ñ ßó«⌐ßΓó «¬¡á...........................158
- 21.7 ô»αáó½Ñ¡¿Ñ ñ«τÑα¡¿¼¿ «¬¡á¼¿............................158
- 21.7.1 櫺ñá¡¿Ñ ñ«τÑα¡¿σ «¬«¡...............................159
- 21.7.2 ÉáºαπΦÑ¡¿Ñ ñ«τÑα¡¿σ «¬«¡.............................160
- 21.7.3 Ç¬Γ¿ó¿ºáµ¿∩ ¿ ñÑá¬Γ¿ó¿ºáµ¿∩ ñ«τÑα¡¿σ «¬«¡............160
- 21.7.4 ÉáßßΓá¡«ó¬á ñ«τÑα¡¿σ «¬«¡ ¡á φ¬αá¡Ñ..................161
- 21.8 çᬽετÑ¡¿Ñ.............................................161
- â½áóá 22. 信ἿτÑ߬¿⌐ «í¼Ñ¡ ñá¡¡δ¼¿.........................163
- 22.1 Äí¼Ñ¡ ñá¡¡δ¼¿ ó Windows................................163
- 22.1.1 ÅÑαÑñáτá ñá¡¡δσ τÑαѺ ß¿ßΓѼ¡δ⌐ íπΣÑα................163
- 22.1.2 信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿..................164
- 22.1.3 信ἿτÑ߬¿⌐ «í¼Ñ¡ ñá¡¡δ¼¿...........................164
- 22.1.4 è«úñá ¿ß»«½∞º«óáΓ∞ Windows DDE.......................165
- 22.1.5 DDE ß Γ«τ¬¿ ºαÑ¡¿∩ »«½∞º«óáΓѽ∩......................165
- 22.2 è«¡µÑ»µ¿¿ DDE..........................................166
- 22.2.1 轿ѡΓ, ßÑαóÑα ¿ ñ¿á½«ú..............................166
- 22.2.2 ¥½Ñ¼Ñ¡Γ, »αÑñ¼ÑΓ, »α¿½«ªÑ¡¿Ñ.........................167
- 22.2.3 Å«ßΓ«∩¡¡á∩ ("ú«α∩τá∩" ¿ "ΓÑ»½á∩") ßó∩º∞ »« ñá¡¡δ¼....167
- 22.3 æ««íΘÑ¡¿∩ DDE..........................................168
- 22.4 Å«Γ«¬ ß««íΘÑ¡¿⌐ DDE....................................169
- 22.4.1 ê¡¿µ¿á½¿ºáµ¿∩ ñ¿á½«úá................................169
- 22.4.2 ÅÑαÑñáτá «ñ¡«ú« φ½Ñ¼Ñ¡Γá.............................171
- 22.4.3 ôßΓá¡«ó½Ñ¡¿Ñ »«ßΓ«∩¡¡«⌐ ßó∩º¿ »« ñá¡¡δ¼..............176
- 22.4.4 çá»π߬ ¬«¼á¡ñ ó πñá½Ñ¡¡«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ.......181
- 22.4.5 çáóÑαΦÑ¡¿Ñ ñ¿á½«úá...................................184
- 22.5 Åα¿¼Ñαδ »α«úαá¼¼ Client ¿ Server.......................186
- 22.6 çᬽετÑ¡¿Ñ.............................................187
-
- Windows 3.0/pg/3#3 = 4 =
-
- ----------------------------------------------------------------
-
- ÅÉÄâÉÇîîÇ-æÅÉÇéÄùìêè ÅÄ
-
- Microsoft Windows
-
- éÑαß¿∩ 3.0
-
- Éπ¬«ó«ñßΓó« »« »α«úαἿα«óá¡¿ε ó ßαÑñÑ Microsoft Windows
-
-
- 3#3
-
-
- î«ß¬óá 1991 ú.
- ----------------------------------------------------------------
-
- Windows 3.0/pg/3#3 = 5 =
-
- â½áóá 16. àΘÑ «í π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε.
- ----------------------------------------------------------------
- é ú½áóÑ 15, "ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε", »αÑñßΓáó½Ñ¡á «ß¡«ó¡á∩
- ¿¡Σ«α¼áµ¿∩, ¬«Γ«αá∩ óá¼ ¡Ñ«íσ«ñ¿¼á ñ½∩ »«¡¿¼á¡¿∩ Γ«ú«, ¬á¬
- ¿ß»«½∞ºπÑΓß∩ »á¼∩Γ∞ ó »α¿¬½áñ¡δσ »α«úαá¼¼áσ Windows. Äñ¡á¬«, ó
- ¡Ñ¬«Γ«αδσ »α¿¬½áñ¡δσ »α«úαá¼¼áσ ΓαÑíπÑΓß∩ í«½ÑÑ ß½«ª¡«Ñ
- π»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε. é ñá¡¡«⌐ ú½áóÑ ß«ñÑনΓß∩ í«½ÑÑ ñÑΓá½∞¡á∩
- ¿¡Σ«α¼áµ¿∩ « ΓÑσ¡¿¬Ñ π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε Windows ¿ « Γ«¼, ¬á¬ óδ
- ñ«½ª¡δ »¿ßáΓ∞ »α«úαá¼¼δ ß µÑ½∞ε ½πτΦÑú« ¿ß»«½∞º«óá¡¿∩ ß½«ª¡δσ
- 󫺼«ª¡«ßΓÑ⌐ Windows »« π»αáó½Ñ¡¿ε »á¼∩Γ∞ε.
-
- é ñá¡¡«⌐ ú½áóÑ ß«ñÑনΓß∩ ¿¡Σ«α¼áµ¿∩ »« ß½ÑñπεΘ¿¼
- ó«»α«ßá¼:
-
- - è«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ Windows.
-
- - êß»«½∞º«óá¡¿Ñ »á¼∩Γ¿ ñ½∩ σαá¡Ñ¡¿∩ ñá¡¡δσ ó »α¿¬½áñ¡δσ
- »α«úαá¼¼áσ Windows.
-
- - êß»«½∞º«óá¡¿Ñ ¼«ñѽÑ⌐ »á¼∩Γ¿.
-
- - êß»«½∞º«óá¡¿Ñ ñá¡¡δσ Γ¿»á HUGE.
-
- - ô»αáó½Ñ¡¿Ñ ñá¡¡δ¼¿ »α«úαá¼¼δ.
-
- - ô»αáó½Ñ¡¿Ñ ñá¡¡δ¼¿ ñ½∩ ¬«ñá »α«úαá¼¼.
- 16.1 è«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ Windows.
-
- éδ ñ«½ª¡δ º¡áΓ∞, τΓ« óáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ
- αáí«ΓáΓ∞ »«ñ αẽ¿τ¡δ¼¿ ¬«¡Σ¿úπαᵿ∩¼¿ »á¼∩Γ¿. ùáΘÑ óßÑú«
- ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ ºáó¿ß¿Γ «Γ Γ¿»á µÑ¡Γαá½∞¡«ú« »α«µÑßß«αá ¿
- «íΩÑ¼á ¿ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿. Windows »«ññÑনóáÑΓ τÑΓδαÑ
- ¬«¡Σ¿úπαᵿ¿:
-
- - üẫóá∩ (640è) ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ (αÑá½∞¡δ⌐ αѪ¿¼
- Windows).
-
- - è«¡Σ¿úπαᵿ∩ αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿ »« ߻ѵ¿Σ¿¬áµ¿¿
- Lotus-Intel-Microsoft óÑαß¿¿ 4.0 (LIM EMS 4.0).
-
- - è«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ ßΓá¡ñáαΓ¡«ú« αѪ¿¼á.
-
- - è«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ αáßΦ¿αÑ¡¡«ú« αѪ¿¼á »α«µÑßß«αá 386.
-
- ÄíΩѼ »á¼∩Γ¿, ¿ß»«½∞ºπѼδ⌐ Windows, íπñÑΓ ¼Ñ¡∞ΦÑ
- πßΓá¡«ó½Ñ¡¡«ú« ó ß¿ßΓѼÑ, Ñß½¿ »ÑαÑñ ºá»π߬«¼ Windows óδ
- ºá»πßΓ¿ΓÑ ñαπú¿Ñ »α«úαá¼¼δ.
-
- ū߬«½∞¬π Windows ó αẽ¿τ¡δσ ß¿ßΓѼáσ ¿ß»«½∞ºπÑΓ
- αẽ¿τ¡δÑ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿, óáΦá »α«úαá¼¼á ñ«½ª¡á αáí«ΓáΓ∞
- »α¿ ½εí«⌐ ¬«¡Σ¿úπαᵿ¿. ïπτΦ¿¼ ß»«ß«í«¼ ñ½∩ φΓ«ú« ∩ó½∩ÑΓß∩
- ß½Ññ«óá¡¿Ñ »αáó¿½á¼ π»αáó½Ñ¡¿∩ »á¼∩Γ¿ Windows »α¿ ¡á»¿ßá¡¿¿
-
- Windows 3.0/pg/3#3 = 6 =
-
- óáΦ¿σ »α«úαá¼¼. 漫Γα¿ΓÑ αáºñѽ 16.5, "ï«óπΦ¬¿, ¬«Γ«αδÑ
- ¡Ñ«íσ«ñ¿¼« ¿ºíÑúáΓ∞ »α¿ αáí«ΓÑ ß ñá¡¡δ¼¿ »α«úαá¼¼δ", ó ¬«Γ«α«¼
- »α¿óÑñÑ¡δ φΓ¿ »αáó¿½á.
-
- æ½ÑñπÑΓ ¿ºíÑúáΓ∞ »α¿ 󫺼«ª¡«ßΓ¿ ¬«ñá, ¬«Γ«αδ⌐ ºáó¿ß¿Γ «Γ
- ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿. Äñ¡á¬« ó ¡Ñ¬«Γ«αδσ ß½πτá∩σ »α«úαá¼¼á
- ñ«½ª¡á ¿¼ÑΓ∞ 󫺼«ª¡«ßΓ∞ «»αÑñѽ¿Γ∞ ¬«¡Σ¿úπαᵿε, »«ñ ¬«Γ«α«⌐
- «¡á αáí«ΓáÑΓ.
-
- ä½∩ «»αÑñѽѡ¿∩ ΓѬπΘÑ⌐ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ ¼«ª¡«
- ó«ß»«½∞º«óáΓ∞ß∩ Σπ¡¬µ¿Ñ⌐ GetWunFlags. ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ
- 32-αáºα∩ñ¡«Ñ τ¿ß½«, ¬«Γ«α«Ñ ß«ñÑαª¿Γ í¿Γδ, «»αÑñѽ∩εΘ¿Ñ ΓѬπΘπε
- ¬«¡Σ¿úπαáµ¿ε »á¼∩Γ¿, á Γá¬ªÑ ñαπúπε ¿¡Σ«α¼áµ¿ε « ß¿ßΓѼÑ
- »«½∞º«óáΓѽ∩.
-
- ÄßΓáóΦá∩ß∩ τáßΓ∞ φΓ«ú« αáºñÑ½á »«ßó∩ΘÑ¡á «»¿ßá¡¿ε τÑΓδαÑσ
- «ß¡«ó¡δσ ¬«¡Σ¿úπαᵿ⌐ »á¼∩Γ¿ Windows.
- 16.1.1 üẫóá∩ ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿.
-
- üẫóá∩ ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ Windows »«ñαáºπ¼ÑóáÑΓ, τΓ«
- ß¿ßΓÑ¼á ¿¼ÑÑΓ 640è Σ¿º¿τÑ߬«⌐ »á¼∩Γ¿. ÅÑαÑñ ºá»π߬«¼ Windows
- ¼½áñΦ¿Ñ áñαÑßá »á¼∩Γ¿ πªÑ ºá¡∩Γδ ß¿ßΓѼ¡«⌐ BIOS ¿ DOS. ¥Γá
- τáßΓ∞ ß«ñÑαª¿Γ ß½ÑñπεΘÑÑ:
-
- - Æáí½¿µπ óÑ¬Γ«α«ó »αÑαδóá¡¿⌐.
-
- - Äí½áßΓ∞ ñá¡¡δσ BIOS.
-
- - äαá⌐óÑαδ πßΓα«⌐ßΓó DOS.
-
- - ïεíδÑ αѺ¿ñÑ¡Γ¡δÑ »α«úαá¼¼δ, ¬«Γ«αδÑ í뫨 ºá»πΘÑ¡δ »ÑαÑñ
- Windows.
-
- Windows ¿ »α¿¬½áñ¡δÑ »α«úαá¼¼δ, αáí«ΓáεΘ¿Ñ »«ñ Windows,
- ¼«úπΓ ¿ß»«½∞º«óáΓ∞ Γ«½∞¬« «ßΓáóΦπεß∩ τáßΓ∞ »á¼∩Γ¿. ¥Γá »á¼∩Γ∞
- ¡áºδóáÑΓß∩ ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ∞ε »á¼∩Γ¿.
-
-
-
- Windows 3.0/pg/3#3 = 7 =
-
- ìá α¿ßπ¡¬Ñ 16.1 »«¬áºá¡á íẫóá∩ ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿
- Windows.
-
- ┌────────────────────────────────────────┐ \ A000H (640K)
- │ æíαáßδóáѼδÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ │ │
- │ │ │ │
- │ V │ │
- │ │ │
- │ A │ │
- │ │ │ │ ⽫íá½∞¡á∩
- │ ÅÑαѼÑΘáѼδÑ ßÑú¼Ñ¡Γδ (¬«ñá ¿ ñá¡¡δσ) │ \ ñ¿¡á¼¿τÑ߬á∩
- │ ¿ │ / «í½áßΓ∞ ñá¡¡δσ
- │ ßíαáßδóáѼδÑ ßÑú¼Ñ¡Γδ ñá¡¡δσ │ │
- │ │ │
- │ A │ │
- │ │ │ │
- │ ö¿¬ß¿α«óá¡¡δÑ ßÑú¼Ñ¡Γδ (¬«ñá ¿ │ │
- │ ñá¡¡δσ) │ │
- ├────────────────────────────────────────┤ /
- │ ÉѺ¿ñÑ¡Γ¡δÑ »α«úαá¼¼δ │
- │ äαá⌐óÑαδ πßΓα«⌐ßΓó │
- │ MS-DOS │
- │ Äí½áßΓ∞ ñá¡¡δσ BIOS │
- │ Æáí½¿µá óÑ¬Γ«α«ó »αÑαδóá¡¿⌐ │
- └────────────────────────────────────────┘ 0000H
-
- É¿ßπ¡«¬ 16.1 üẫóá∩ ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ Windows.
-
- é ú½áóÑ 15, "ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε", «»¿ßá¡«, ¬á¬ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ Windows ¿ß»«½∞ºπεΓ ú½«íá½∞¡πε ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞
- »á¼∩Γ¿. æÑú¼Ñ¡Γδ ¬«ñá ¿ ñá¡¡δσ óßÑσ »α¿¬½áñ¡δσ »α«úαá¼¼
- αáß»«½áúáεΓß∩ ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿,
- ¼ÑßΓ«»«½«ªÑ¡¿Ñ ßÑú¼Ñ¡Γá ºáó¿ß¿Γ «Γ Γ¿»á ßÑú¼Ñ¡Γá, Γ.Ñ. ∩ó½∩ÑΓß∩
- ½¿ «¡ Σ¿¬ß¿α«óá¡¡δ¼, »ÑαѼÑΘáÑ¼δ¼ ¿ ßíαáßδóáѼδ¼, ¿½¿ Γ«½∞¬«
- »ÑαѼÑΘáѼδ¼. é Γáí½¿µÑ 16.1 »α¿óÑñÑ¡ ß»¿ß«¬ áΓα¿íπΓ«ó ¿ Γ¿»«ó
- ¿ »«¬áºá¡«, úñÑ «¡¿ αáß»«½áúáεΓß∩ ó ú½«íá½∞¡«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
-
-
- Windows 3.0/pg/3#3 = 8 =
-
- Æáí½¿µá 16.1 Å«º¿µ¿¿ ßÑú¼Ñ¡Γ«ó ó ú½«íá½∞¡«⌐ ñ¿¡áß¿τÑ߬«⌐
- «í½áßΓ¿ »á¼∩Γ¿.
- ───────────────────────────────────────────────────────────────
- ÇΓα¿íπΓ Æ¿» ßÑú¼Ñ¡Γá Å«½«ªÑ¡¿Ñ ó ú½«íá½∞¡«⌐ «í-
- ½áßΓ¿ »á¼∩Γ¿.
- ───────────────────────────────────────────────────────────────
- ö¿¬ß¿α«óá¡¡δ⌐ è«ñ ¿½¿ ñá¡¡δÑ î½áñΦ¿Ñ áñαÑßá ú½«íá½∞¡«⌐
- «í½áßΓ¿ »á¼∩Γ¿.
-
- æíαáßδóáѼδ⌐ è«ñ«óδ⌐ æΓáαΦ¿Ñ áñαÑßá ú½«íá½∞¡«⌐
- «í½áßΓ¿ »á¼∩Γ¿.
-
- æíαáßδóáѼδ⌐ äá¡¡δÑ î½áñΦá∩ τáßΓ∞ ú½«íá½∞¡«⌐
- «í½áßΓ¿ »á¼∩Γ¿, ¡« óδΦÑ
- Σ¿¬ß¿α«óá¡¡δσ ßÑú¼Ñ¡Γ«ó.
-
- ÅÑαѼÑΘáѼδÑ è«ñ ¿ ñá¡¡δÑ éδΦÑ Σ¿¬ß¿α«óá¡¡δσ ßÑú¼Ñ¡-
- (¡« ¡Ñ ßíαáßδ- Γ«ó.
- óáѼδÑ)
- ───────────────────────────────────────────────────────────────
-
- àß½¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á óδñѽ∩ÑΓ Σ¿¬ß¿α«óá¡¡δ⌐ ßÑú¼Ñ¡Γ
- »«ß½Ñ óδñѽѡ¿∩ »ÑαѼÑΘáѼδσ ¿½¿ ßíαáßδóáѼδσ ßÑú¼Ñ¡Γ«ó,
- Windows »δΓáÑΓß∩ »ÑαѼÑßΓ¿Γ∞ »ÑαѼÑΘáѼδÑ ßÑú¼Ñ¡Γδ ¿ ßíα«ß¿Γ∞
- ßíαáßδóáѼδÑ ñ½∩ Γ«ú«, τΓ«íδ »«¼ÑßΓ¿Γ∞ Σ¿¬ß¿α«óá¡¡δÑ ßÑú¼Ñ¡Γ
- ¬á¬ ¼«ª¡« ¡¿ªÑ. ¥Γ«Γ »α«µÑßß »«¼«úáÑΓ π¼Ñ¡∞Φ¿Γ∞ Σαáú¼Ñ¡Γᵿε
- »á¼∩Γ¿, ¡« ΓαÑíπÑΓ ºáΓαáΓ óαѼѡ¿ µÑ¡Γαá½∞¡«ú« »α«µÑßß«αá.
- Å«φΓ«¼π ß½ÑñπÑΓ ¿ºíÑúáΓ∞ óδñѽѡ¿∩ Σ¿¬ß¿α«óá¡¡δσ ßÑú¼Ñ¡Γ«ó.
-
- é íẫó«⌐ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿, Ñß½¿ ¡Ñ¬«Γ«αδÑ ßÑú¼Ñ¡Γδ
- «»αÑñѽѡδ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩ óáΦÑ⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ ¬á¬ ßíαáßδóáѼδÑ, »α«úαá¼¼á ¼«ªÑΓ íδΓ∞ í«½∞ΦÑ, τѼ
- αẼÑα »á¼∩Γ¿ ó ú½«íá½∞¡«⌐ «í½áßΓ¿ »á¼∩Γ¿. àß½¿ Σ¿º¿τÑ߬á∩
- »á¼∩Γ∞ ºá»«½¡Ñ¡á ¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á »δΓáÑΓß∩ óδºóáΓ∞
- ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ, ¬«Γ«α«ú« ¡ÑΓ ó Σ¿º¿τÑ߬«⌐ »á¼∩Γ¿, Windows
- ºáúαπªáÑΓ Ñú«, »αÑñóáα¿Γѽ∞¡« πñ὿ó ßíαáßδóáѼδÑ ¬«ñ«óδÑ
- ßÑú¼Ñ¡Γδ ¿½¿ ßÑú¼Ñ¡Γδ ñá¡¡δσ. ôñá½Ñ¡¿Ñ ßíαáßδóáѼδσ ¬«ñ«óδσ
- ßÑú¼Ñ¡Γ«ó ¿º »á¼∩Γ¿ ¡Ñ «ΓαáªáÑΓß∩ ¡á »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ, Ñß½¿
- ßíα«ΦÑ¡¡δ⌐ ßÑú¼Ñ¡Γ »«¡áñ«í¿Γß∩, «¡ íπñÑΓ ºáúαπªÑ¡ ß ñ¿ß¬á. æ
- ñαπú«⌐ ßΓ«α«¡δ, πñá½Ñ¡¿Ñ ßÑú¼Ñ¡Γ«ó ñá¡¡δσ ¼«ªÑΓ »α¿óÑßΓ¿ ¬ ¿σ
- »«ΓÑαÑ. Å«φΓ«¼π, Ñß½¿ óδ «íΩ∩ó½∩ÑΓÑ ó »α«úαá¼¼Ñ ßíαáßδóáѼδ⌐
- ßÑú¼Ñ¡Γ ñá¡¡δσ, óδ ñ«½ª¡δ íδΓ∞ πóÑαÑ¡δ, τΓ« ß¼«ªÑΓÑ
- »ÑαѺáúαπº¿Γ∞ Ñú« ß«ñÑন¼«Ñ ß ñ¿ß¬á ¿½¿ ß¡«óá ß«ºñáΓ∞ ½εíδ¼
- ñαπú¿¼ ß»«ß«í«¼.
-
- é íẫó«⌐ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ Windows »αÑñ«ßΓáó½∩ÑΓ í«½∞ΦÑ
- »á¼∩Γ¿, πñá½∩∩ ßíαáßδóáѼδÑ ßÑú¼Ñ¡Γδ ¿º »á¼∩Γ¿. Windows ¡Ñ
- óδ»«½¡∩ÑΓ »«ñ¬áτ¬π ß ñ¿ß¬á (»«ñ¬áτ¬π ßÑú¼Ñ¡Γ«ó ñá¡¡δσ ¿ ¬«ñá ß
- ñ¿ß¬á ¿ «íαáΓ¡«). àß½¿ óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ΓαÑíπÑΓß∩
- í«½∞Φ¿⌐ «íΩѼ ó¿αΓπá½∞¡«⌐ »á¼∩Γ¿, τѼ ñ«ßΓπ»¡« ó íẫó«⌐
- ¬«¡Σ¿úπαᵿ¿, «¡á ñ«½ª¡á ßá¼á π»αáó½∩Γ∞ ó¿αΓπá½∞¡«⌐ »á¼∩Γ∞ε,
- »«ñ¬áτ¿óá∩ ñá¡¡δÑ ß ñ¿ß¬á ¿ «íαáΓ¡«.
-
-
- Windows 3.0/pg/3#3 = 9 =
-
- 16.1.2 è«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ EMS 4.0.
-
- Windows ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ ¬«¡Σ¿úπαáµ¿ε »á¼∩Γ¿ EMS 4.0,
- Ñß½¿ ó ß¿ßΓÑ¼Ñ πßΓá¡«ó½Ñ¡á αáßΦ¿αÑ¡¡á∩ »á¼∩Γ∞ EMS ¿ ¿¼ÑÑΓß∩
- ñαá⌐óÑα EMS 4.0. é φΓ«⌐ ¬«¡Σ¿úπαᵿ¿ αẼÑα ú½«íá½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ í«½∞ΦÑ ß Γ«τ¬¿ ºαÑ¡¿∩ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ, τѼ ñ«ßΓπ»¡« ó íẫó«⌐ ¬«¡Σ¿úπαᵿ¿. ö¿º¿τÑ߬«Ñ
- áñαÑß¡«Ñ »α«ßΓαá¡ßΓó« ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿
- αáßΦ¿α∩ÑΓß∩ ßóÑασ áñαÑßá A000H (640K) ñ« F000H. ö¿º¿τÑ߬¿Ñ
- áñαÑßá ß F000H »« FFFFH ºáαѺÑαó¿α«óá¡δ »«ñ BIOS. ìѬ«Γ«αδÑ
- τáßΓ¿ »α«ßΓαá¡ßΓóá «Γ A000H »« F000H ºáαѺÑαó¿α«óá¡δ »«ñ
- ó¿ñÑ«»á¼∩Γ∞ ¿ ñ½∩ áñá»ΓÑα«ó ßÑΓ¿. Æá¬¿¼ «íαẫ¼ ó «í½áßΓ¿ ¼Ñªñπ
- A000H ¿ F000H Windows ñ«ßΓπ»¡« ¼Ñ¡∞ΦÑ 320è. îá¬ß¿¼á½∞¡« φΓ«
- ¼«ªÑΓ íδΓ∞ 288è, ¡« «íδτ¡« ¼Ñ¡∞ΦÑ.
-
- ìá α¿ßπ¡¬Ñ 16.2 ßαáó¡¿óáÑΓß∩ íẫóá∩ ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ ¿
- ¬«¡Σ¿úπαᵿ∩ EMS 4.0.
-
-
-
- Windows 3.0/pg/3#3 = 10 =
-
- üẫóá∩ ¬«¡Σ¿úπαᵿ∩.
-
- ┌────────────────────────────────────────┐ \ A000H (640K)
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │ ⽫íá½∞¡á∩
- │ │ \ ñ¿¡á¼¿τÑ߬á∩
- │ │ / «í½áßΓ∞ ñá¡¡δσ
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- ├────────────────────────────────────────┤ /
- │ ÉѺ¿ñÑ¡Γ¡δÑ »α«úαá¼¼δ │
- │ äαá⌐óÑαδ πßΓα«⌐ßΓó │
- │ MS-DOS │
- │ Äí½áßΓ∞ ñá¡¡δσ BIOS │
- │ Æáí½¿µá óÑ¬Γ«α«ó »αÑαδóá¡¿⌐ │
- └────────────────────────────────────────┘ 0000H
-
- è«¡Σ¿úπαᵿ∩ EMS 4.0.
-
- ┌────────────────────────────────────────┐ FFFFH
- │ æ¿ßΓѼ¡«Ñ Åçô │
- ├────────────────────────────────────────┤
- │ ä«ßΓπ»¡á∩ »á¼∩Γ∞ │ \
- ├────────────────────────────────────────┤ │
- │ é¿ñÑ«»á¼∩Γ∞ │ │
- ├────────────────────────────────────────┤ │
- │ ä«ßΓπ»¡á∩ »á¼∩Γ∞ │ │
- ├────────────────────────────────────────┤ │ A000H (640K)
- │ │ │
- │ │ │ ⽫íá½∞¡á∩
- │ │ \ ñ¿¡á¼¿τÑ߬á∩
- │ │ / «í½áßΓ∞ ñá¡¡δσ
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- ├────────────────────────────────────────┤ /
- │ ÉѺ¿ñÑ¡Γ¡δÑ »α«úαá¼¼δ │
- │ äαá⌐óÑαδ πßΓα«⌐ßΓó │
- │ MS-DOS │
- │ Äí½áßΓ∞ ñá¡¡δσ BIOS │
- │ Æáí½¿µá óÑ¬Γ«α«ó »αÑαδóá¡¿⌐ │
- └────────────────────────────────────────┘ 0000H
-
- É¿ßπ¡«¬ 16.2 æαáó¡Ñ¡¿Ñ íẫó«⌐ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ ¿
- ¬«¡Σ¿úπαᵿ¿ ß EMS 4.0.
-
- Windows 3.0/pg/3#3 = 11 =
-
- Åá¼∩Γ∞ EMS ¿ «Γ«íαáªÑ¡¿Ñ íᡬ«ó »á¼∩Γ¿.
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ ¬«¡Σ¿úπαᵿ¿ EMS 4.0 Windows
- »αÑñ«ßΓáó½∩ÑΓ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ í«½∞ΦÑ »á¼∩Γ¿, τѼ »α¿
- αáí«ΓÑ ó íẫó«⌐ ¬«¡Σ¿úπαᵿ¿. ¥Γ« ñѽáÑΓß∩ »πΓѼ «Γ«íαáªÑ¡¿∩
- «íΩÑ¬Γ«ó ¿º αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿ ¡á ¡Ñ¬«Γ«απε «í½áßΓ∞ Σ¿º¿τÑ߬«⌐
- »á¼∩Γ¿ ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿. ÄΓ«íαáªÑ¡¿Ñ
- 󫺡¿¬áÑΓ, ¬«úñá Windows ¿º¼Ñ¡∩ÑΓ «»αÑñѽѡ¡δÑ αÑú¿ßΓαδ EMS ñ½∩
- ¿º¼Ñ¡Ñ¡¿∩ «Γ«íαáªÑ¡¿∩ ¡Ñ¬«Γ«α«⌐ «í½áßΓ¿ »á¼∩Γ¿ ¿º ¼½áñΦÑú« 1î
- áñαÑß¡«ú« »α«ßΓαá¡ßΓóá ¡á ¡Ñ¬«Γ«απε «í½áßΓ∞ ó αáßΦ¿αÑ¡¡«⌐
- »á¼∩Γ¿. ôßΓá¡«ó¬á αÑú¿ßΓα«ó EMS ¡á¼¡«ú« íδßΓαÑÑ, τѼ
- ñÑ⌐ßΓó¿Γѽ∞¡«Ñ ¬«»¿α«óá¡¿Ñ ñá¡¡δσ. É¿ßπ¡«¬ 16.3 ¿½½εßΓα¿απÑΓ
- Γ«, ¬á¬ Windows óδ»«½¡∩ÑΓ «Γ«íαáªÑ¡¿Ñ αÑá½∞¡«ú« áñαÑß¡«ú«
- »α«ßΓαá¡ßΓóá ¡á αáßΦ¿αÑ¡¡πε »á¼∩Γ∞.
-
- ┌────────────────────────────┐ FFFFH ┌────────────────────────────┐
- │ æ¿ßΓѼ¡«Ñ Åçô │ │ │
- ├────────────────────────────┤ F000H │ Åਪ½áñ¡á∩ »α«úαá¼¼á 1 Ç │
- │ ÄΓ«íαáªáѼá∩ »á¼∩Γ∞ │ │ │
- │ Windows Ç │ ├────────────────────────────┤
- │ │ │ │
- ├────────────────────────────┤ │ │ │
- │ é¿ñÑ«»á¼∩Γ∞ │ │ Åਪ½áñ¡á∩ »α«úαá¼¼á 1 é │
- ├────────────────────────────┤ │ │ │
- │ ÄΓ«íαáªáѼá∩ »á¼∩Γ∞ │ │ │
- │ Windows │ │ ├────────────────────────────┤
- │ é │ │ │
- │ │ │ │ Åਪ½áñ¡á∩ »α«úαá¼¼á 1 Ç │
- │ │ │ │
- ├─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┤ ├────────────────────────────┤
- │ âαá¡¿µá «Γ«íαáªÑ¡¿∩ EMS │ │ │
- │ │ │ │ │
- │ │ │ Åਪ½áñ¡á∩ »α«úαá¼¼á 1 é │
- │ ìÑ«Γ«íαáªáѼá∩ »á¼∩Γ∞ │ │ │ │
- │ Windows │ │ │
- │ │ ├────────────────────────────┤
- │ │ │ │
- │ │ │ Åਪ½áñ¡á∩ »α«úαá¼¼á 1 Ç │
- │ │ │ │
- │ │ ├────────────────────────────┤
- │ │ │ │
- ├────────────────────────────┤ │ │ │
- │ ÉѺ¿ñÑ¡Γ¡δÑ »α«úαá¼¼δ │ │ Åਪ½áñ¡á∩ »α«úαá¼¼á 1 é │
- │ äαá⌐óÑαδ πßΓα«⌐ßΓó │ │ │ │
- │ MS-DOS │ │ │
- │ Äí½áßΓ∞ ñá¡¡δσ BIOS │ ├────────────────────────────┤
- │Æáí½¿µá óÑ¬Γ«α«ó »αÑαδóá¡¿⌐ │
- └────────────────────────────┘ 0000H │ │
-
- │ │
-
-
- É¿ßπ¡«¬ 16.3 ÄΓ«íαáªÑ¡¿Ñ Σ¿º¿τÑ߬«ú« áñαÑß¡«ú«
- »α«ßΓαá¡ßΓóá ¡á αáßΦ¿αÑ¡¡πε »á¼∩Γ∞.
-
- Windows 3.0/pg/3#3 = 12 =
-
-
- Windows »α«¿ºó«ñ¿Γ «Γ«íαáªÑ¡¿Ñ ¬«ñá ¿ ñá¡¡δσ ¼Ñªñπ
- ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ∞ε ñá¡¡δσ ¿ αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ∞ε
- ó« óαѼ∩ "»ÑαѬ½ετÑ¡¿∩ ¬«¡ΓѬßΓá ºáñáτ¿", ¬«Γ«α«Ñ óδ»«½¡∩ÑΓß∩
- »α¿ »ÑαÑñáτÑ π»αáó½Ñ¡¿∩ «Γ «ñ¡«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ñαπú«⌐.
- Windows »ÑαѬ½ετáÑΓ «Γ«íαáªÑ¡¿Ñ ¬«ñá ¿ ñá¡¡δσ «ñ¡«⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ ¿º αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿ ó ú½«íá½∞¡πε ñ¿¡á¼¿τÑ߬πε
- «í½áßΓ∞ ñá¡¡δσ ¡á «Γ«íαáªÑ¡¿Ñ ¬«ñá ¿ ñá¡¡δσ ñαπú«⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ.
-
- ÄΓ«íαáªÑ¡¿Ñ ¿¼ÑÑΓ ¼ÑßΓ« Γ«½∞¬« »α¿ »ÑαѬ½ετÑ¡¿¿ ¬«¡ΓѬßΓ«ó
- ºáñáτ. ÄΓ«íαáªÑ¡¿Ñ óδ»«½¡∩ÑΓß∩ Γ«½∞¬« ñ½∩ óßÑ⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ, á ¡Ñ ñ½∩ «Γñѽ∞¡δσ í½«¬«ó »á¼∩Γ¿. é αѺπ½∞ΓáΓÑ «íΘ¿⌐
- «íΩѼ »á¼∩Γ¿ ñ«ßΓπ»¡δ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ πóѽ¿τ¿óáÑΓß∩ ¡Ñ ¡á
- «íΘ¿⌐ «íΩѼ αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿, á Γ«½∞¬« ¡á ñ«ßΓπ»¡δ⌐ «íΩѼ ó
- ñ¿á»áº«¡Ñ «Γ A000H ñ« F000H. ¥Γ« πóѽ¿τÑ¡¿Ñ, «ñ¡á¬«, ¼«ªÑΓ
- º¡áτ¿Γѽ∞¡« »«óδß¿Γ∞ σáαá¬ΓÑα¿ßΓ¿¬¿ »α«úαá¼¼δ. Æá¬ªÑ «íΩѼ
- ñ«ßΓπ»¡«⌐ »α«úαá¼¼Ñ »á¼∩Γ¿ ºáó¿ß¿Γ «Γ Γ«ú«, ߬«½∞¬« »α¿¬½áñ¡δσ
- »α«úαá¼¼ «Γ«íαáªáεΓß∩ ¡á αáßΦ¿αÑ¡¡πε »á¼∩Γ∞, ¿ Γᬿ¼ «íαẫ¼
- ºáó¿ß¿Γ «Γ Γ«ú«, ߬«½∞¬« »α«úαá¼¼ óδ»«½¡∩εΓß∩ «ñ¡«óαѼѡ¡«.
-
- ÄΓ«íαáªáѼá∩ ¿ ¡Ñ«Γ«íαáªáѼá∩ »á¼∩Γ∞.
-
- Åα¿ «Γ«íαáªÑ¡¿¿ ¬«ñá ¿ ñá¡¡δσ ¼Ñªñπ ú½«íá½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ∞ε »á¼∩Γ¿ ¿ αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ∞ε Windows
- «Γ«íαáªáÑΓ Γ«½∞¬« ¡Ñ¬«Γ«αδÑ Γ¿»δ «íΩÑ¬Γ«ó. Æá¬«⌐ «Γ«íαáªáѼδ⌐
- ¬«ñ ¿ ñá¡¡δÑ ñ«½ª¡δ ¡áσ«ñ¿Γ∞ß∩ óδΦÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩ EMS.
- ÄΓ«íαáªáѼá∩ ¿¡Σ«α¼áµ¿∩ ó¬½ετáÑΓ ß½ÑñπεΘÑÑ:
-
- - ÅÑαѼÑΘáѼδ⌐ ¿½¿ Σ¿¬ß¿α«óá¡¡δ⌐ ¬«ñ ºáñáτ¿ (»α¿¬½áñ¡«⌐
- »α«úαá¼¼δ).
-
- - ÉÑßπαßδ ºáñáτ¿ (αÑßπαßδ, ñ«íáó½∩ѼδÑ ¬ óδ»«½¡∩Ѽ«¼π
- Σá⌐½π ¬«¼»¿½∩Γ«α«¼ αÑßπαß«ó RC).
-
- - æÑú¼Ñ¡Γδ ¬«ñá ¿ ñá¡¡δσ »α¿óáΓ¡δσ í¿í½¿«ΓѬ. ü¿í½¿«ΓѬá
- «íΩ∩ó½∩ÑΓß∩ ¬á¬ »α¿óáΓ¡á∩, ¬«úñá «¡á ¬«¼»¿½¿απÑΓß∩ ß
- π¬áºá¡¿Ñ¼ ¬½ετá -p ¬«¼»¿½∩Γ«α«¼ αÑßπαß«ó.
-
- - çáú«½«ó¬¿ ¼«ñπ½∩ ºñáτ¿ (.EXE) ó Windows 3.0 ¿ í«½ÑÑ
- »«ºñ¡¿σ.
-
- ìѬ«Γ«αδÑ Γ¿»δ «íΩÑ¬Γ«ó ¡Ñ ¼«úπΓ «Γ«íαáªáΓ∞ß∩. ìá»α¿¼Ñα,
- Windows ¡Ñ ¼«ªÑΓ «Γ«íαáªáΓ∞ ñá¡¡δÑ, ¬«Γ«αδÑ óßÑúñá ñ«½ª¡δ íδΓ∞
-
- Windows 3.0/pg/3#3 = 13 =
-
- ñ«ßΓπ»¡δ ñ½∩ Windows ¿½¿ ñ½∩ DLL. Ä Γᬿσ ¡Ñ«Γ«íαáªáѼδσ
- «íΩѬΓáσ ¼δ ú«ó«α¿¼, τΓ« «¡¿ ¡áσ«ñ∩Γß∩ ¡¿ªÑ úαá¡¿µδ
- «Γ«íαáªÑ¡¿∩. è ¡Ñ«Γ«íαáªáѼ«⌐ ¿¡Σ«α¼áµ¿¿ «Γ¡«ß¿Γß∩ ß½ÑñπεΘá∩:
-
- - üáºá ñá¡¡δσ ºáñáτ (ñá¡¡δÑ « ºáñáτáσ, ¬«Γ«αδÑ
- ¿ß»«½∞ºπεΓß∩ Windows ñ½∩ π»αáó½Ñ¡¿∩ ºáñáτἿ).
-
- - æÑú¼Ñ¡Γδ ñá¡¡δσ í¿í½¿«ΓѬ.
-
- - ö¿¬ß¿α«óá¡¡δÑ ßÑú¼Ñ¡Γδ ¬«ñá í¿í½¿«ΓѬ.
-
- - çáú«½«ó¬¿ ¼«ñπ½Ñ⌐ í¿í½¿«ΓѬ (.DLL).
-
- ÄßΓá½∞¡δÑ Γ¿»δ ¬«ñá ¿ ñá¡¡δσ ¼«úπΓ αáß»«½áúáΓ∞ß∩ ¬á¬ óδΦÑ,
- Γᬠ¿ ¡¿ªÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩, ó ºáó¿ß¿¼«ßΓ¿ «Γ Γ«ú«, ¬πñá
- Windows »«¼ÑßΓ¿Γ φΓπ úαá¡¿µπ. îÑßΓ«¡áσ«ªñÑ¡¿Ñ úαá¡¿µδ
- «Γ«íαáªÑ¡¿∩ ºáó¿ß¿Γ «Γ αẼÑαá ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿.
-
- àß½¿ αẼÑα ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ ¼Ñ¡∞ΦÑ, τѼ
- «íδτ¡δ⌐ αẼÑα, Γ« úαá¡¿µá «Γ«íαáªÑ¡¿∩ EMS πßΓá¡áó½¿óáÑΓß∩ »«
- áñαÑßπ A000H (640K), ¿ ó αѺπ½∞ΓáΓÑ »«½πτáÑΓß∩ ¡Ñí«½∞Φ«⌐ αẼÑα
- «í½áßΓ¿ «Γ«íαáªÑ¡¿∩. é φΓ«¼ ß½πτáÑ ú«ó«α∩Γ, τΓ« Windows
- αáí«ΓáÑΓ ó αѪ¿¼Ñ EMS ß ¡Ñí«½∞Φ¿¼ ΣαÑ⌐¼«¼ «Γ«íαáªÑ¡¿∩. é Γᬫ¼
- αѪ¿¼Ñ ¡Ñ«Γ«íαáªáÑ¼δ¼¿ ßΓá¡«ó∩Γß∩ ß½ÑñπεΘ¿Ñ ¬áΓÑú«α¿¿ ¬«ñá ¿
- ñá¡¡δσ (Γ.Ñ. «¡¿ »«¼ÑΘáεΓß∩ ¡¿ªÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩):
-
- - ÉÑßπαßδ í¿í½¿«ΓѬ.
-
- - æíαáßδóáѼδÑ ßÑú¼Ñ¡Γδ ¬«ñá DLL.
-
- - æÑú¼Ñ¡Γδ ñá¡¡δσ ºáñáτ.
-
- - ü½«¬¿ ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ »á¼∩Γ¿, óδñѽѡ¡δÑ
- ºáñáτἿ.
-
- - çáú«½«ó¬¿ óßÑσ ¼«ñπ½Ñ⌐.
-
- àß½¿ ñ«ßΓπ»¡« ñ«ßΓáΓ«τ¡« »á¼∩Γ¿, Γ« Windows ¼«ªÑΓ
- πßΓá¡«ó¿Γ∞ úαá¡¿µπ «Γ«íαáªÑ¡¿∩ Γᬿ¼ «íαẫ¼, τΓ« »«½πτ¿Γß∩
- «Γ¡«ß¿Γѽ∞¡« í«½∞Φ«⌐ αẼÑα «Γ«íαáªáѼ«⌐ »á¼∩Γ¿. é φΓ«¼ ß½πτáÑ
- ú«ó«α∩Γ, τΓ« Windows αáí«ΓáÑΓ ó αѪ¿¼Ñ EMS ß í«½∞Φ¿¼ ΣαÑ⌐¼«¼
- «Γ«íαáªÑ¡¿∩. âαá¡¿µá «Γ«íαáªÑ¡¿∩ ó Γᬫ¼ αѪ¿¼Ñ ¼«ªÑΓ íδΓ∞
- πßΓá¡«ó½Ñ¡á óδΦÑ A000H, Ñß½¿ óδΦÑ A000H ñ«ßΓπ»¡« í«½∞ΦÑ »á¼∩Γ¿,
- τѼ ¡¿ªÑ A000H.
-
- é Γáí½¿µÑ 16.2 «í«íΘáÑΓß∩ ¿¡Σ«α¼áµ¿∩ « Γ«¼, óδΦÑ ¿½¿ ¡¿ªÑ
- úαá¡¿µδ «Γ«íαáªÑ¡¿∩ Windows »«¼ÑΘáÑΓ αẽ¿τ¡δÑ ¬áΓÑú«α¿¿ ¬«ñá ¿
- ñá¡¡δσ ó αѪ¿¼Ñ EMS ß í«½∞Φ¿¼ ¿ ¼á½δ¼ ΣαÑ⌐¼«¼ «Γ«íαáªÑ¡¿∩.
-
-
-
- Windows 3.0/pg/3#3 = 14 =
-
- Æáí½¿µá 16.2 êß»«½∞º«óá¡¿Ñ αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿.
- ───────────────────────────────────────────────────────────────
- ÄíΩÑ¬Γ éδΦÑ ¿½¿ ¡¿ªÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩
-
- öαÑ⌐¼
- ìÑí«½∞Φ«⌐ ü«½∞Φ«⌐
- ───────────────────────────────────────────────────────────────
- üáºá ñá¡¡δσ ºáñáτ ì¿ªÑ ì¿ªÑ
- æÑú¼Ñ¡Γ ñá¡¡δσ í¿í½¿«ΓѬ¿ ì¿ªÑ ì¿ªÑ
- æÑú¼Ñ¡Γ ¬«ñá í¿í½¿«ΓѬ¿
- (Σ¿¬ß¿α«óá¡¡δ⌐) ì¿ªÑ ì¿ªÑ
- ÉÑßπαßδ í¿í½¿«ΓѬ¿ ì¿ªÑ éδΦÑ
- æÑú¼Ñ¡Γ ¬«ñá ºáñáτ¿ éδΦÑ/ì¿ªÑ éδΦÑ
- ÉÑßπαßδ ºáñáτ¿ éδΦÑ/ì¿ªÑ éδΦÑ
- æÑú¼Ñ¡Γ ¬«ñá ºáñáτ¿ ì¿ªÑ éδΦÑ
- æÑú¼Ñ¡Γ ¬«ñá í¿í½¿«ΓѬ¿
- (ßíαáßδóáѼδ⌐) ì¿ªÑ éδΦÑ
- çáú«½«ó«¬ ¼«ñπ½∩ ºáñáτ¿
- (.EXE) ì¿ªÑ éδΦÑ
- çáú«½«ó«¬ ¼«ñπ½∩ í¿í½¿«ΓѬ¿
- (.DLL) ì¿ªÑ ì¿ªÑ
- 信ἿτÑ߬¿ óδñѽ∩Ѽá∩
- »á¼∩Γ∞ ì¿ªÑ éδΦÑ
- ───────────────────────────────────────────────────────────────
-
- àß½¿ ó αѪ¿¼Ñ ß ¡Ñí«½∞Φ¿¼ ΣαÑ⌐¼«¼ óδΦÑ úαá¡¿µδ ßÑú¼Ñ¡Γá ¡Ñ
- σóáΓáÑΓ »á¼∩Γ¿ ñ½∩ αẼÑΘÑ¡¿∩ óßÑú« «íΩÑ¼á ¬«ñá ¿ ñá¡¡δσ,
- ¬«Γ«αδÑ ¼«ª¡« «Γ«íαếΓ∞, Γ« «ßΓáóΦ¿Ñß∩ ßÑú¼Ñ¡Γδ αẼÑΘáεΓß∩
- ¡¿ªÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩.
-
- Æ«, ¬á¬ Windows ºáúαπªáÑΓ «íΩѬΓδ DLL »α¿ αáí«ΓÑ ó αѪ¿¼Ñ
- ß í«½∞Φ¿¼ ΣαÑ⌐¼«¼ «Γ«íαáªÑ¡¿∩, ¼«ª¡« ¿º¼Ñ¡¿Γ∞ ß »«¼«Θ∞ε ¬½ετá
- -p ¬«¼»¿½∩Γ«αá αÑßπαß«ó »α¿ ¬«¼»¿½∩µ¿¿ í¿í½¿«ΓѬ¿. 漫Γα¿ΓÑ
- ú½áóπ 20, "信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿".
-
- Éáí«Γá ¡á»α∩¼πε ß αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ∞ε.
-
- ū߬«½∞¬π Windows áóΓ«¼áΓ¿τÑ߬¿ óδ»«½¡∩ÑΓ «Γ«íαáªÑ¡¿Ñ, Γ«
- óáΦá »α«úαá¼¼á ¡Ñ ñ«½ª¡á ¿¼ÑΓ∞ ñѽá ß αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ∞ε.
- Äñ¡á¬« »α¿ ªÑ½á¡¿¿ óδ ¼«ªÑΓÑ αáí«ΓáΓ∞ ß αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ∞ε
- ¡á»α∩¼πε, τÑαѺ ΣαÑ⌐¼ ßΓαá¡¿µ αẼÑα«¼ 64è. Åα∩¼«Ñ
- ¿ß»«½∞º«óá¡¿Ñ αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿ »αÑñ«ßΓáó½∩ÑΓ óáΦÑ⌐ »α«úαá¼¼Ñ
- í«½∞ΦÑÑ áñαÑß¡«Ñ »α«ßΓαá¡ßΓó« á¡á½«ú¿τ¡« «óÑα½Ñ∩¼ DOS, ¡«
- αáí«ΓáÑΓ íδßΓαÑÑ. ä½∩ φΓ«ú«:
-
- - éδ ñ«½ª¡δ ¬«¼»¿½¿α«óáΓ∞ óáΦπ »α«úαá¼¼π ß ¬½ετѼ -I
- ¬«¼»¿½∩Γ«αá αÑßπαß«ó.
-
- - éáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á ß½Ññ«óáΓ∞ ߻ѵ¿Σ¿¬áµ¿∩¼
- LIM 3.2.
-
- - éáΦá »α«úαá¼¼á ¡Ñ ñ«½ª¡á ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿⌐,
- ߻ѵ¿Σ¿τ¡δσ ñ½∩ EMS 4.0 (ºá ¿ß¬½ετÑ¡¿Ñ¼ Σπ¡¬µ¿¿ 17).
-
- Windows 3.0/pg/3#3 = 15 =
-
- êß»«½∞º«óá¡¿Ñ φΓ¿σ Σπ¡¬µ¿⌐ ¼«ªÑΓ »α¿óÑßΓ¿ ¬ ¬«¡Σ½¿¬Γπ ß
- ß¿ßΓѼ«⌐ π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε Windows.
-
- è«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á óδñѽ∩ÑΓ «í½áßΓ∞ ó αáßΦ¿αÑ¡¡«⌐
- »á¼∩Γ¿, «¡á ¬«¡¬πα¿απÑΓ ß ñαπú¿¼¿ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ.
- Æá¬¿¼ «íαẫ¼, óδ ¡Ñ ñ«½ª¡δ óδñѽ∩Γ∞ óßε αáßΦ¿αÑ¡¡πε »á¼∩Γ∞ ñ½∩
- ßó«Ñ⌐ »α«úαá¼¼δ.
- 16.1.3 æΓá¡ñáαΓ¡á∩ ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ Windows.
-
- Windows »« π¼«½τá¡¿ε ¿ß»«½∞ºπÑΓ ßΓá¡ñáαΓ¡πε ¬«¡Σ¿úπαᵿε
- »á¼∩Γ¿ »α¿ αáí«ΓÑ ¡á ß¿ßΓѼÑ, πñ«ó½ÑΓó«α∩εΘÑ⌐ ß½ÑñπεΘ¿¼
- ΓαÑí«óá¡¿∩¼:
-
- - îáΦ¿¡á ¡á «ß¡«óÑ »α«µÑßß«αá 80286, »á¼∩Γ∞ ¡Ñ ¼Ñ¡∞ΦÑ 1îí.
-
- - îáΦ¿¡á ¡á «ß¡«óÑ »α«µÑßß«αá 80386, »á¼∩Γ∞ ¡Ñ ¼Ñ¡∞ΦÑ 1îí
- ¡« ¡Ñ í«½∞ΦÑ 2îí. ìá ß¿ßΓѼáσ ß »α«µÑßß«αá¼ 80386,
- ¿¼ÑεΘ¿σ í«½∞ΦÑ 2îí »á¼∩Γ¿, Windows ¿ß»«½∞ºπÑΓ
- ¬«¡Σ¿úπαáµ¿ε »á¼∩Γ¿ αáßΦ¿αÑ¡¡«ú« αѪ¿¼á »α«µÑÑßß«αá
- 80386. ¥Γá ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ «»¿ßá¡á ó αáºñÑ½Ñ 16.1.4,
- "è«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ αáßΦ¿αÑ¡¡«ú« αѪ¿¼á »α«µÑßß«αá
- 80386".
-
- è«úñá Windows αáí«ΓáÑΓ ó ßΓá¡ñáαΓ¡«¼ αѪ¿¼Ñ, ú½«íá½∞¡á∩
- ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿ ñѽ¿Γß∩ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ ¡á ñóÑ, á
- «íδτ¡« ¡á Γα¿ τáßΓ¿, ó ºáó¿ß¿¼«ßΓ¿ «Γ ñ«ßΓπ»¡«ú« «íΩÑ¼á »á¼∩Γ¿.
-
- ÅÑαóá∩ τáßΓ∞, ¬«Γ«απε Windows ¿ß»«½∞ºπÑΓ ñ½∩ ú½«íá½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿, - φΓ« ßΓá¡ñáαΓ¡á∩ »á¼∩Γ∞ ¬á¬ ¿ ó
- íẫó«⌐ ¬«¡Σ¿úπαᵿ¿. Ä¡á ¡áτ¿¡áÑΓß∩ ßαáºπ ºá αѺ¿ñÑ¡Γ¡δ¼¿
- »α«úαἼἿ, ñαá⌐óÑαἿ πßΓα«⌐ßΓó, DOS ¿ Γ.»., ¿ αáß»«½áúáÑΓß∩
- ñ« ¬«¡µá ßΓá¡ñáαΓ¡«⌐ »á¼∩Γ¿, ¬«Γ«αá∩ «íδτ¡« ¿¼ÑÑΓ αẼÑα 640è,
- ¡« ¡á ¡Ñ¬«Γ«αδσ ß¿ßΓѼáσ ÑÑ ¼«ªÑΓ íδΓ∞ ¼Ñ¡∞ΦÑ.
-
- éΓ«α«⌐ í½«¬ - φΓ« αáßΦ¿αÑ¡¡á∩ »á¼∩Γ∞. Windows óδñѽ∩ÑΓ
- í½«¬ αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿ ß »«¼«Θ∞ε ñαá⌐óÑαá αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿
- XMS ¿ ºáΓѼ ¿ß»«½∞ºπÑΓ »á¼∩Γ∞ ¡á»α∩¼πε, íѺ «íαáΘÑ¡¿∩ ¬
- ñαá⌐óÑαπ. ÉẼÑα φΓ«ú« í½«¬á ¼«ªÑΓ ¿º¼Ñ¡∩Γ∞ß∩ ó ºáó¿ß¿¼«ßΓ¿ «Γ
- Γ«ú«, τΓ« »«½∞º«óáΓѽ∞ ºáúαπº¿½ ó αáßΦ¿αÑ¡¡πε »á¼∩Γ∞ »ÑαÑñ
- ºá»π߬«¼ Windows.
-
- Windows ñ«íáó½∩ÑΓ ΓαÑΓ¿⌐ í½«¬ ¬ ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐
- «í½áßΓ¿ »á¼∩Γ¿, Ñß½¿ «¡ ñ«ßΓπ»Ñ¡. ¥Γ« «í½áßΓ∞ ßΓáαΦ¿σ áñαÑß«ó
- »á¼∩Γ¿ (HMA) ¿ «¡á ñ«ßΓπ»¡á τÑαѺ ñαá⌐óÑα XMS. ¥Γ«Γ í½«¬ ¡Ñ
- ñ«ßΓπ»Ñ¡, Ñß½¿ »«½∞º«óáΓѽ∞ ºáúαπº¿½ »α«úαá¼¼δ ó HMA. Äñ¡á¬« ó
- ¡áßΓ«∩ΘÑÑ óαѼ∩ ¡Ñ Γᬠ¼¡«ú« »α«úαá¼¼, ¬«Γ«αδÑ ¼«úπΓ
- ºáúαπªáΓ∞ß∩ ó HMA, »«φΓ«¼π φΓ«Γ í½«¬ ¼«ªÑΓ íδΓ∞ ñ«ßΓπ»Ñ¡ ñ½∩
- Windows ó ßΓá¡ñáαΓ¡«⌐ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿.
-
- Windows ß«Ññ¿¡∩ÑΓ ñóá ¿½¿ Γα¿ í½«¬á ó ú½«íá½∞¡πε
- ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞ »á¼∩Γ¿. ìáτὫ (¡¿º) ßΓá¡ñáαΓ¡«⌐ »á¼∩Γ¿
- (640è) ∩ó½∩ÑΓß∩ ¡áτὫ¼ (¡¿º«¼) ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
-
- Windows 3.0/pg/3#3 = 16 =
-
- »á¼∩Γ¿. éÑαΦ¿¡á í½«¬á αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿ (ßΓáαΦ¿Ñ áñαÑßá)
- ∩ó½∩ÑΓß∩ óÑαΦ¿¡«⌐ ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿. àß½¿
- ñ«ßΓπ»¡á HMA, Γ« φΓ«Γ í½«¬ óßΓáó½∩ÑΓß∩ ¼Ñªñπ ñóπ¼∩ ñαπú¿¼¿.
-
-
-
- Windows 3.0/pg/3#3 = 17 =
-
- ìá α¿ßπ¡¬Ñ 16.4 »«¬áºá¡á ßΓá¡ñáαΓ¡á∩ ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿
- Windows.
-
- ┌──────────────────────────────────┐ éÑαΦ¿¡á αáßΦ¿αÑ¡¡«⌐
- │ æíαáßδóáѼδÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ │ »á¼∩Γ¿
- │ │ │
- │ │
- ├──────────────────────────────────┤ éδΦÑ ¿½¿ αáó¡« 11000H
- │ │
- │ │ ìÑ«í∩ºáΓѽ∞¡á∩ »á¼∩Γ∞
- │ │ HMA
- ├──────────────────────────────────┤ 10000H
- . .
- . .
- ├──────────────────────────────────┤ A000H (640K)
- │ │
- │ │ │
- │ ÅÑαѼÑΘáѼδÑ ßÑú¼Ñ¡Γδ (¬«ñá ¿ │
- │ ñá¡¡δσ) ¿ ßíαáßδóáѼδÑ ßÑú¼Ñ¡Γδ │
- │ ñá¡¡δσ. │
- │ │
- │ │ │
- │ ö¿¬ß¿α«óá¡¡δÑ ßÑú¼Ñ¡Γδ │
- ├──────────────────────────────────┤
- │ ÉѺ¿ñÑ¡Γ¡δÑ »α«úαá¼¼δ │
- │ äαá⌐óÑαδ πßΓα«⌐ßΓó │
- │ MS-DOS │
- │ Äí½áßΓ∞ ñá¡¡δσ BIOS │
- │ Æáí½¿µá óÑ¬Γ«α«ó »αÑαδóá¡¿⌐ │
- └──────────────────────────────────┘ 0000H
-
- èᬠ¿ ó ñαπú¿σ ¬«¡Σ¿úπαᵿ∩σ »á¼∩Γ¿ Windows óδñѽ∩ÑΓ
- ßíαáßδóáѼδÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ ó óÑασ¡Ñ⌐ τáßΓ¿ ú½«íá½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿, á Σ¿¬ß¿α«óá¡¡δÑ ßÑú¼Ñ¡Γδ ó ¼½áñΦÑ⌐
- τáßΓ¿, ¡áñ ¬«Γ«α묨 αáß»«½áúáεΓß∩ »ÑαѼÑΘáѼδÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ
- ¿ ßÑú¼Ñ¡Γδ ñá¡¡δσ.
-
- ìѬ«Γ«αδÑ φ½Ñ¼Ñ¡Γδ ñá¡¡δσ Windows ñ«½ª¡δ αáß»«½áúáΓ∞ß∩ ó
- ßΓá¡ñáαΓ¡«⌐ »á¼∩Γ¿ (640è), »«ß¬«½∞¬π ¡Ñ«íσ«ñ¿¼ ¬ ¡¿¼ ñ«ßΓπ» »α¿
- αáí«ΓÑ »α«µÑßß«αá ó αÑá½∞¡«¼ αѪ¿¼Ñ ¿ ¡Ñ ó ºáΘ¿ΘÑ¡¡«¼. ¥Γ«
- »αÑΣ¿¬ßδ ßÑú¼Ñ¡Γ«ó »α«úαá¼¼ ¿ «τÑαÑñ¿ ñá¡¡δσ ñ½∩ óºá¿¼«ñÑ⌐ßΓó¿∩
- ß »«ß½Ññ«óáΓѽ∞¡δ¼ »«αΓ«¼.
-
- êß»«½∞º«óá¡¿Ñ í«½∞Φ¿σ í½«¬«ó »á¼∩Γ¿ »α¿ αáí«ΓÑ ó
- ßΓá¡ñáαΓ¡«⌐ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿.
-
- é ßΓá¡ñáαΓ¡«⌐ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ Windows αáí«ΓáÑΓ ó
- ºáΘ¿ΘÑ¡¡«¼ αѪ¿¼Ñ »α«µÑßß«α«ó 80286 ¿½¿ 80386. é αÑá½∞¡«¼
- αѪ¿¼Ñ ñá½∞¡¿⌐ áñαÑß ß«ºñáÑΓß∩ ß »«¼«Θ∞ε 16-αáºα∩ñ¡«ú« áñαÑßá
- ßÑú¼Ñ¡Γá ¿ 16-αáºα∩ñ¡«ú« ß¼ÑΘÑ¡¿∩. ÇñαÑß ßÑú¼Ñ¡Γá π¬áºδóáÑΓ
- »áαáúαáΣ, ¬«Γ«αδ⌐ »αÑñßΓáó½∩ÑΓ ß«í«⌐ í½«¬ αẼÑα«¼ 16 íá⌐Γ ó
-
- Windows 3.0/pg/3#3 = 18 =
-
- áñαÑß¡«¼ »α«ßΓαá¡ßΓóÑ αẼÑα«¼ 1îí. æ¼ÑΘÑ¡¿Ñ »αÑñßΓáó½∩ÑΓ ß«í«⌐
- áñαÑß ó ñ¿á»áº«¡Ñ «Γ 0 ñ« 64è «Γ¡«ß¿Γѽ∞¡« »áαáúαáΣá, ¡á
- ¬«Γ«αδ⌐ π¬áºδóáÑΓ áñαÑß ßÑú¼Ñ¡Γá. é ßΓá¡ñáαΓ¡«¼ αѪ¿¼Ñ,
- 16-í¿Γ«óδ⌐ áñαÑß ßÑú¼Ñ¡Γá »αÑñßΓáó½∩ÑΓ ß«í«⌐ ßÑ½Ñ¬Γ«α,
- á¡á½«ú¿τ¡δ⌐ ñÑß¬α¿»Γ«απ ó Windows. ¥Γ«Γ ñÑß¬α¿»Γ«α «»αÑñѽ∩ÑΓ
- φ½Ñ¼Ñ¡Γ ½«¬á½∞¡«⌐ ¿½¿ ú½«íá½∞¡«⌐ Γáí½¿µδ ñÑß¬α¿»Γ«α«ó (LDT ¿½¿
- GDT). ¥½Ñ¼Ñ¡Γδ φΓ¿σ Γáí½¿µ «»αÑñѽ∩εΓ, ¡áσ«ñ∩Γß∩ ½¿ ó »á¼∩Γ¿
- ßÑú¼Ñ¡Γδ, ¡á ¬«Γ«αδÑ ßßδ½áÑΓß∩ ßÑ½Ñ¬Γ«α. àß½¿ ßÑú¼Ñ¡Γδ
- ¡áσ«ñ∩Γß∩ ó »á¼∩Γ¿, Γ«úñá φ½Ñ¼Ñ¡Γ Γáí½¿µδ «»αÑñѽ∩ÑΓ ½¿¡Ñ⌐¡δ⌐
- áñαÑß ßÑú¼Ñ¡Γá.
-
- àß½¿ óδ óδñѽ∩ÑΓÑ í«½∞Φ«⌐ í½«¬ »á¼∩Γ¿ (αẼÑα«¼ í«½∞ΦÑ
- 64è), Microsoft C Compiler úÑ¡Ñα¿απÑΓ ¬«ñ ñ½∩ í«½∞Φ«ú« (huge)
- π¬áºáΓѽ∩, óδ»«½¡∩εΘÑú« ߻ѵ¿á½∞¡δÑ óδτ¿ß½Ñ¡¿∩, ¬«Γ«αδÑ
- »«ºó«½∩εΓ »ÑαѼÑßΓ¿Γ∞ π¬áºáΓѽ∞ τÑαѺ úαá¡¿µπ ßÑú¼Ñ¡Γá (64è).
- Äñ¡á¬« «¡ ñѽáÑΓ φΓ« Γ«½∞¬« Ñß½¿ π¬áºáΓѽ∞ ∩ó¡« «íΩ∩ó½Ñ¡ ¬á¬
- huge ¿½¿ Ñß½¿ ¼«ñπ½∞ ¬«¼»¿½¿απÑΓß∩ ß ¿ß»«½∞º«ó᡿Ѽ ¼«ñѽ¿
- »á¼∩Γ¿ huge. ìÑ ¿º¼Ñ¡∩⌐ΓÑ ¡á»α∩¼πε ó ñá½∞¡Ñ¼ π¬áºáΓÑ½Ñ áñαÑß
- ßÑú¼Ñ¡Γá. Å«»δΓ¬á ¿º¼Ñ¡Ñ¡¿∩ ßÑú¼Ñ¡Γ¡«ú« áñαÑßá »α¿óÑñÑΓ ½¿Φ∞ ¬
- »«∩ó½Ñ¡¿ε ¡ÑóÑα¡«ú« ßÑ½Ñ¬Γ«αá. è«úñá ºáΓѼ Γᬫ⌐ ßÑ½Ñ¬Γ«α
- ¿ß»«½∞ºπÑΓß∩ ñ½∩ τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿ ñá¡¡δσ, Windows ß««íΘ¿Γ «
- 󫺡¿¬¡«óÑ¡¿¿ ¡ÑπßΓαá¡¿¼«⌐ «Φ¿í¬¿ (GP), ¿½¿, τΓ« Γ«ªÑ 󫺼«ª¡«,
- ¡ÑóÑα¡δ⌐ ßÑ½Ñ¬Γ«α ¼«ªÑΓ π¬áºδóáΓ∞ ¡á ñαπú¿Ñ ñá¡¡δÑ ¿½¿ ¬«ñ.
-
- àß½¿ óδ »¿ΦÑΓÑ »α«úαá¼¼π ¡á áßßѼí½ÑαÑ, ¼«ª¡« ñ½∩
- πóѽ¿τÑ¡¿∩ ñá½∞¡Ñú« π¬áºáΓѽ∩ ¿ß»«½∞º«óáΓ∞ ú½«íá½∞¡πε
- »ÑαѼѡ¡πε __ahiner, ¬«Γ«αá∩ «»αÑñѽѡá ó MACROS.INC. é« óαѼ∩
- ºáúαπº¬¿ Windows ó αÑá½∞¡«¼ αѪ¿¼Ñ »α¿ßóá¿óáÑΓ φΓ«⌐ »ÑαѼѡ¡«⌐
- º¡áτÑ¡¿Ñ 1000ì, Γᬿ¼ «íαẫ¼ ñ«íáó½Ñ¡¿Ñ ÑÑ ¬ ßÑú¼Ñ¡Γ¡«⌐ τáßΓ¿
- ñá½∞¡Ñú« π¬áºáΓѽ∩ »α«ñó¿¡ÑΓ ñá½∞¡¿⌐ π¬áºáΓѽ∞ ¡á 1000ì
- »áαáúαáΣ«ó. é ßΓá¡ñáαΓ¡«¼ αѪ¿¼Ñ Windows ºá¡«ß¿Γ ó __ahiner
- ¬«ααÑ¬Γ¡«Ñ º¡áτÑ¡¿Ñ, ¡á ¬«Γ«α«Ñ ¼«ª¡« πóѽ¿τ¿óáΓ∞ ßÑ½Ñ¬Γ«α. ¥Γ«
- 󫺼«ª¡«, »«ß¬«½∞¬π »α¿ óδñѽѡ¿¿ í«½∞Φ¿σ í½«¬«ó »á¼∩Γ¿ »α¿
- ñ«íáó½Ñ¡¿¿ 1000ì, Windows óδñѽ∩ÑΓ ºáó¿ß¿¼δ⌐ ßÑ½Ñ¬Γ«α ¡á
- ºáó¿ß¿¼δ⌐ í½«¬ »á¼∩Γ¿ ó 64è. ¥Γ« ¡áºδóáÑΓß∩ "ßÑ½Ñ¬Γ«αδ óßΓδ¬".
- ì¿ªÑ »α¿óÑñÑ¡ »α¿¼Ñα Γ«ú«, ¬á¬ ¼«ª¡« πóѽ¿τ¿Γ∞ ñá½∞¡¿⌐
- π¬áºáΓѽ∞ ¡á 64è:
-
- extern __ahincr:abs
- .
- .
- .
- mov ax,es ; es - áñαÑß ßÑú¼Ñ¡Γá, ¬«Γ«αδ⌐ óδ σ«Γ¿ΓÑ
- ; πóѽ¿τ¿Γ∞
- add ax,__ahincr
- mov es,ax
-
- ü«½ÑÑ Γ«ú«, ó ßΓá¡ñáαΓ¡«⌐ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ óδ ¼«ªÑΓÑ
- óδñѽ¿Γ∞ í½«¬ αẼÑα«¼ ñ« 1îí. é ßΓá¡ñáαΓ¡«¼ αѪ¿¼Ñ óßÑ τáßΓ¿
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ (¬«ñ ¿ ñá¡¡δÑ) ¡«α¼á½∞¡« »ÑαѼÑΘáѼδ ó
- ½¿¡Ñ⌐¡«⌐ »á¼∩Γ¿.
-
-
- Windows 3.0/pg/3#3 = 19 =
-
- êß»«½∞º«óá¡¿Ñ ú½«íá½∞¡δσ ßÑ½Ñ¬Γ«α«ó.
-
- ä½∩ óδ»«½¡Ñ¡¿∩ óó«ñá ¿ óδó«ñá, «Γ«íαáªáѼ«ú« ¡á »á¼∩Γ∞, óδ
- ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘ¿Ñ ¬«¡ßΓá¡Γδ ú½«íá½∞¡δσ ßÑ½Ñ¬Γ«α«ó
- ñ½∩ ñ«ßΓπ»á ¬ ß««ΓóÑΓßΓóπεΘ¿¼ «í½áßΓ∩¼ »á¼∩Γ¿ ó »α«úαá¼¼áσ ¡á
- áßßѼí½ÑαÑ:
-
- - __A000H
-
- - __B000H
-
- - __B800H
-
- - __C000H
-
- - __D000H
-
- - __E000H
-
- - __F000H
-
- äá¡¡δ⌐ »α¿¼Ñα ¿½½εßΓα¿απÑΓ ¬á¬ »αáó¿½∞¡« ¿ß»«½∞º«óáΓ∞ φΓ¿
- ßÑ½Ñ¬Γ«αδ:
-
- mov ax,__A000H
- mov es,ax
-
- êß»«½∞ºπ⌐ΓÑ ñá¡¡δÑ ßÑ½Ñ¬Γ«αδ Γ«½∞¬« ñ½∩ »«ññÑ᪬¿
- ñαá⌐óÑα«ó «í«απñ«óá¡¿∩, óδ»«½¡∩εΘÑú« óó«ñ/óδó«ñ, «Γ«íαáªáѼδ⌐
- ¡á »á¼∩Γ∞.
-
- æ«ó¼ÑΘÑ¡¿Ñ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó ¿ ßÑú¼Ñ¡Γ«ó ñá¡¡δσ.
-
- Äíδτ¡«, óδ ¡Ñ ¼«ªÑΓÑ ºá»πßΓ¿Γ∞ ¬«ñ, ¡áσ«ñ∩Θ¿⌐ß∩ ó ßÑú¼Ñ¡ΓÑ
- ñá¡¡δσ. é ßΓá¡ñáαΓ¡«¼ αѪ¿¼Ñ Γá¬á∩ »«»δΓ¬á »α¿óÑñÑΓ ¬ »«∩ó½Ñ¡¿ε
- ¡ÑπßΓαá¡¿¼«⌐ «Φ¿í¬¿ ¡áαπΦÑ¡¿∩ úαá¡¿µδ.
-
- Äñ¡á¬«, ó αÑñ¬¿σ ß½πτá∩σ φΓ« ¼«ªÑΓ íδΓ∞ ¡Ñ«íσ«ñ¿¼«, ¿ φΓ«
- ¼«ª¡« óδ»«½¡¿Γ∞ »πΓѼ ß«ó¼ÑΘÑ¡¿∩ ßÑú¼Ñ¡Γá ñá¡¡δσ »« ó«»α«ßπ.
- æ«ó¼ÑΘÑ¡¿Ñ »α¿ó«ñ¿Γ ¬ ¬«»¿α«óá¡¿ε ßÑ½Ñ¬Γ«αá ßÑú¼Ñ¡Γá ¿
- ¿º¼Ñ¡Ñ¡¿ε »«½∩ TYPE Γᬿ¼ «íαẫ¼, τΓ«íδ ß φΓ¿¼ ßÑú¼Ñ¡Γ«¼ ¼«ª¡«
- í佫 óδ»«½¡∩Γ∞ «»Ñαᵿ¿, ¬«Γ«αδÑ í뫨 íδ ¡Ñ󫺼«ª¡δ ó «íδτ¡«¼
- ß½πτáÑ.
-
- Windows »αÑñ«ßΓáó½∩ÑΓ ñ½∩ ß«ó¼ÑΘÑ¡¿∩ ßÑú¼Ñ¡Γ«ó ñóÑ
- Σπ¡¬µ¿¿:
-
- - AllocDStoCSAlias
-
- - ChangeSelector
-
- AllocDStoCSAlias »«½πτáÑΓ ßÑ½Ñ¬Γ«α ßÑú¼Ñ¡Γá ñá¡¡δσ ¿
- ó«ºóαáΘáÑΓ ßÑ½Ñ¬Γ«α ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá. ¥Γ« »«ºó«½∩ÑΓ óá¼
-
- Windows 3.0/pg/3#3 = 20 =
-
- ºá¡«ß¿Γ∞ ¬«¼á¡ñδ ó ßΓѬ ñá¡¡δσ, ß«ºñáΓ∞ ß«ó¼ÑΘÑ¡¿Ñ ñ½∩ ßÑú¼Ñ¡Γá
- ßΓÑ¬á ¿ ºáΓѼ óδ»«½¡¿Γ∞ ¬«ñ ó ßΓѬÑ.
-
- ¥Γá Σπ¡¬µ¿∩ óδñѽ∩ÑΓ ¡«óδ⌐ ßÑ½Ñ¬Γ«α. Å«ß½Ñ Γ«ú«, ¬á¬ óá¼
- πªÑ ¡Ñ ¡πªÑ¡ ßÑ½Ñ¬Γ«α, »«½πτÑ¡¡δ⌐ ß »«¼«Θ∞ε AllocDStoCSAlias,
- óδ ñ«½ª¡δ Ñú« «ßó«í«ñ¿Γ∞ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ FreeSelector.
-
- éδ ñ«½ª¡δ íδΓ∞ «ßë᫪¡δ ¿ ¡Ñ ¿ß»«½∞º«óáΓ∞ ßÑ½Ñ¬Γ«α,
- ó«ºóαáΘáѼδ⌐ Σπ¡¬µ¿Ñ⌐ AllocDStoAlias, Ñß½¿ ¿¼ÑÑΓß∩ óÑα«∩Γ¡«ßΓ∞
- Γ«ú«, τΓ« «¡ íδ½ »ÑαѼÑΘÑ¡. ê¼ÑÑΓß∩ Γ«½∞¬« «ñ¡á 󫺼«ª¡«ßΓ∞
- »αÑñ«ΓóαáΓ¿Γ∞ »ÑαѼÑΘÑ¡¿Ñ ßÑú¼Ñ¡Γá »ÑαÑñ Ñú« ó맮ó«¼, ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ GlobalFix, ¬«Γ«αá∩ Σ¿¬ß¿απÑΓ ßÑú¼Ñ¡Γ ó ½¿¡Ñ⌐¡«¼
- áñαÑß¡«¼ »α«ßΓαá¡ßΓóÑ.
-
- éδ ñ«½ª¡δ íδΓ∞ Γá¬ªÑ πóÑαÑ¡δ ó Γ«¼, τΓ« ßÑú¼Ñ¡Γ ¡Ñ íπñÑΓ
- »ÑαѼÑΘÑ¡, óáΦá »α«úαá¼¼á »«ΓÑα∩ÑΓ π»αáó½Ñ¡¿Ñ, ¿ τΓ« óáΦá
- »α«úαá¼¼á ¡Ñ óδ»«½¡∩ÑΓ ñÑ⌐ßΓó¿⌐ »« óδñѽѡ¿ε »á¼∩Γ¿. Äíδτ¡« φΓ«
- ΓαÑí«óá¡¿Ñ »α¿ó«ñ¿Γ ¬ Γ«¼π, τΓ« óáΦÑ⌐ »α«úαá¼¼Ñ »α¿ñÑΓß∩
- »«½πτáΓ∞ ßÑ½Ñ¬Γ«α »α¿ ¬áªñ«¼ «íαáΘÑ¡¿¿ ¡á óδñѽѡ¿Ñ »á¼∩Γ¿ ¿½¿
- »«ß½Ñ ¬áªñ«ú« ß½πτá∩ »«ΓÑα¿ π»αáó½Ñ¡¿∩. Äñ¡á¬« óδ ¼«ªÑΓÑ
- ¿ºíáó¿Γ∞ß∩ «Γ ¡Ñ«íσ«ñ¿¼«ßΓ¿ Γᬫú« τáßΓ«ú« óδñѽѡ¿∩ ¿
- «ßó«í«ªñÑ¡¿∩ ßÑ½Ñ¬Γ«αá, Ñß½¿ ó«ß»«½∞ºπÑΓÑß∞ óαѼѡ¡δ¼
- ßÑ½Ñ¬Γ«α«¼. öπ¡¬µ¿∩ ChangeSelector »αÑñ«ßΓáó½∩ÑΓ óá¼ πñ«í¡δ⌐
- ß»«ß«í ß«ó¼ÑΘÑ¡¿∩ ß óαѼѡ¡δ¼ ßÑ½Ñ¬Γ«α«¼. Ä¡á »«½πτáÑΓ ñóá
- ßÑ½Ñ¬Γ«αá: óαѼѡ¡δ⌐ ßÑ½Ñ¬Γ«α ¿ ßÑ½Ñ¬Γ«α, ¬«Γ«αδ⌐ óδ σ«Γ¿ΓÑ
- ß«ó¼ÑßΓ¿Γ∞. ùΓ«íδ φëà ßÑ½Ñ¬Γ«α »«ßΓ«∩¡¡« ß«ó¼ÑΘá½ß∩, óδ ñ«½ª¡δ
- ßñѽáΓ∞ ß½ÑñπεΘÑÑ:
-
- 1. éδºóáΓ∞ AllocateSelector ñ½∩ ß«ºñá¡¿∩ óαѼѡ¡«ú«
- ßÑ½Ñ¬Γ«αá.
-
- 2. è«úñá ¡Ñ«íσ«ñ¿¼«, óδºóáΓ∞ Σπ¡¬µ¿ε ChangeSelector,
- »ÑαÑñáó Ñ⌐ óαѼѡ¡δ⌐ ßÑ½Ñ¬Γ«α ¿ ßÑ½Ñ¬Γ«α, ¬«Γ«αδ⌐ óδ
- σ«Γ¿ΓÑ ß«ó¼ÑßΓ¿Γ∞. ū߬«½∞¬π óδ πªÑ óδñѽ¿½¿ ßÑ½Ñ¬Γ«α,
- Γ« ¿ «ßó«í«ªñáΓ∞ Ñú« »ÑαÑñ óδº«ó«¼ Σπ¡¬µ¿¿
- ChangeSelector ¡Ñ ¡πª¡«. éá¼ ½¿Φ∞ ¡πª¡« óδºδóáΓ∞
- Σπ¡¬µ¿ε ChangeSelector ó« óßÑσ ß½πτá∩σ, ó ¬«Γ«αδσ
- ¡Ñ«íσ«ñ¿¼« ß«ó¼ÑßΓ¿Γ∞ ßÑú¼Ñ¡Γδ, Ñß½¿ ßπΘÑßΓóπÑΓ
- óÑα«∩Γ¡«ßΓ∞ Γ«ú«, τΓ« «¡¿ í뫨 »ÑαѼÑΘÑ¡δ.
-
- 3. àß½¿ óá¼ í«½∞ΦÑ ¡Ñ ¡πª¡« ß«ó¼ÑΘáΓ∞ ßÑú¼Ñ¡Γδ, óδ ñ«½ª¡δ
- «ßó«í«ñ¿Γ∞ óαѼѡ¡δ⌐ ßÑ½Ñ¬Γ«α ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- FreeSelector.
- 16.1.4 è«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ Windows ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ
- »α«µÑßß«αá 80386.
-
- àß½¿ ó »«½∞º«óáΓѽ∞߬«⌐ ß¿ßΓÑ¼Ñ ¿¼ÑÑΓß∩ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ
- 2îí ñ«ßΓπ»¡«⌐ αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿ ¿ »α«µÑßß«α 80386, Γ« Windows
- ¿ »α¿¬½áñ¡δÑ »α«úαá¼¼δ Windows αáí«ΓáεΓ ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ
- »α«µÑßß«αá 80386. ¥Γ« ó¿ñ ºáΘ¿ΘÑ¡¡«ú« αѪ¿¼á. é φΓ«¼ αѪ¿¼Ñ
-
- Windows 3.0/pg/3#3 = 21 =
-
- Windows, ¿ß»«½∞ºπ∩ ߻ѵ¿á½∞¡δÑ ßαÑñßΓóá »α«µÑßß«αá 80386,
- αÑ὿ºπÑΓ ß¿ßΓѼπ π»αáó½Ñ¡¿∩ ó¿αΓπá½∞¡«⌐ »á¼∩Γ∞ε, ¿ß»«½∞ºπ∩
- »«ñ¬áτ¬π ß ñ¿ß¬á. é αѺπ½∞ΓáΓÑ «íΩѼ ñ«ßΓπ»¡«⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ »á¼∩Γ¿ ¼«ªÑΓ ó ¡Ñ߬«½∞¬« αẠ»αÑóδΦáΓ∞ «íΩѼ
- ñ«ßΓπ»¡«⌐ αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿ ó ß¿ßΓѼÑ. ÆÑ«αÑΓ¿τÑ߬¿ ó φΓ«¼
- αѪ¿¼Ñ Windows »«ºó«½∩ÑΓ áñαÑß«óáΓ∞ ñ« 4 ú¿úáíá⌐Γ »á¼∩Γ¿,
- «ñ¡á¬« ó αÑá½∞¡«ßΓ¿ «¡á «úαá¡¿τÑ¡á «íΩѼ«¼ ñ«ßΓπ»¡«⌐
- «»ÑαáΓ¿ó¡«⌐ »á¼∩Γ¿ ¿ »á¼∩Γ¿ ¡á ñ¿ß¬Ñ. îá¬ß¿¼á½∞¡« Windows ¼«ªÑΓ
- óδñѽ¿Γ∞ ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ 80386 «íΩÑ¬Γ αẼÑα«¼ 64îí. é
- αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ »α«µÑßß«αá 80386 óßÑ ßÑú¼Ñ¡Γδ (¬«ñá ¿
- ñá¡¡δσ) »ÑαѼÑΘáѼδ, ΓᬠªÑ ¬á¬ ¿ ½¿ßΓáѼδÑ (ßΓαá¡¿τ¡«⌐
- «αúá¡¿ºáµ¿¿).
-
- Åα¿¼Ñτá¡¿Ñ: ū߬«½∞¬π ó αÑßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ 80386
- ¿ß»«½∞ºπÑΓ ó«º¼«ª¡«ßΓ¿ ºáΘ¿ΘÑ¡¡«ú« αѪ¿¼á, Γ« «úαá¡¿τÑ¡¿∩ »«
- ¿ß»«½∞º«óá¡¿ε »á¼∩Γ¿ ßΓá¡ñáαΓ¡«ú« αѪ¿¼á Γá¬ªÑ »α¿¼Ñ¡¿¼δ ¬
- αáßΦ¿αÑ¡¡«¼π αѪ¿¼π.
-
- ì¿ªÑ «»¿ßá¡á ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ
- »α«µÑßß«αá 80386:
-
- - ⽫íá½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿ »αÑñßΓáó½∩ÑΓ
- ß«í«⌐ «ñ¡« í«½∞Φ«Ñ ó¿αΓπá½∞¡«Ñ áñαÑß¡«Ñ »α«ßΓαá¡ßΓó«. é
- «Γ½¿τ¿Ñ «Γ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ ß EMS 4.0, Windows ¡Ñ
- «Γ«íαáªáÑΓ ¬«ñ ¿ ñá¡¡δÑ ¼Ñªñπ áñαÑß¡δ¼ »α«ßΓαá¡ßΓó«¼ ó 1
- îí ¿ óΓ«α¿τ¡«⌐ »á¼∩Γ∞ε. é¼ÑßΓ« φΓ«ú« óßÑ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ αáºñѽ∩εΓ «ñ¡« ¿ Γ« ªÑ ó¿αΓπá½∞¡«Ñ áñαÑß¡«Ñ
- »α«ßΓαá¡ßΓó«.
-
- - ÄíΩѼ ú½«íá½∞¡«ú« ó¿αΓπá½∞¡«ú« áñαÑß¡«ú« »α«ßΓαá¡ßΓóá ¡Ñ
- «úαá¡¿τÑ¡ «íΩѼ«¼ αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿. ä¿ß¬ ¿ß»«½∞ºπÑΓß∩
- ó ¬áτÑßΓóÑ óΓ«α¿τ¡«⌐ »á¼∩Γ¿, αáßΦ¿α∩εΘÑ⌐ ó¿αΓπá½∞¡«Ñ
- áñαÑß¡«Ñ »α«ßΓαá¡ßΓó«.
-
- è«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ »α«µÑßß«αá í«½∞ΦÑ
- ¡á»«¼¿¡áÑΓ íẫóπε ¬«¡Σ¿úπαáµ¿ε »á¼∩Γ¿, τѼ ¬«¡Σ¿úπαᵿε ß EMS
- 4.0, ¿½¿ ßΓá¡ñáαΓ¡πε ¬«¡Σ¿úπαᵿε. ìá α¿ßπ¡¬Ñ 16.5
- ßΓαáó¡¿óáÑΓß∩ íẫóá∩ ¬«¡Σ¿úπαᵿ∩ ¿ ¬«¡Σ¿úπαᵿ∩ ó αáßΦ¿αÑ¡¡«¼
- αѪ¿¼Ñ »α«µÑßß«αá 80386.
-
- üẫóá∩ ¬«¡Σ¿úπαᵿ∩ »á¼∩Γ¿.
- ┌────────────────────────────────────────┐ \ A000H (640K)
- │ æíαáßδóáѼδÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ │ │
- │ │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │ │ ⽫íá½∞¡á∩
- │ ÅÑαѼÑΘáѼδÑ ßÑú¼Ñ¡Γδ (¬«ñá ¿ ñá¡¡δσ) │ \ ñ¿¡á¼¿τÑ߬á∩
- │ ¿ │ / «í½áßΓ∞ ñá¡¡δσ
- │ ßíαáßδóáѼδÑ ßÑú¼Ñ¡Γδ ñá¡¡δσ │ │
- │ │ │
- │ │ │
- │ │ │ │
- │ ö¿¬ß¿α«óá¡¡δÑ ßÑú¼Ñ¡Γδ (¬«ñá ¿ │ │
- │ ñá¡¡δσ) │ │
- ├────────────────────────────────────────┤ /
- │ ÉѺ¿ñÑ¡Γ¡δÑ »α«úαá¼¼δ │
- │ äαá⌐óÑαδ πßΓα«⌐ßΓó │
- │ MS-DOS │
- │ Äí½áßΓ∞ ñá¡¡δσ BIOS │
- │ Æáí½¿µá óÑ¬Γ«α«ó »αÑαδóá¡¿⌐ │
- └────────────────────────────────────────┘ 0000H
-
- Windows 3.0/pg/3#3 = 22 =
-
-
-
- è«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ »α«µÑßß«αá 80386.
-
- ┌────────────────────────────────────────┐ \ éÑαΦ¿¡á
- │ æíαáßδóáѼδÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ │ │ αáßΦ¿αÑ¡¡«⌐
- │ │ │ │ »á¼∩Γ¿
- │ │ │
- . . │
- . . │
- . . │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │
- │ │ │ ⽫íá½∞¡á∩
- │ │ \ ñ¿¡á¼¿τÑ߬á∩
- │ │ / «í½áßΓ∞ ñá¡¡δσ
- │ │ │ ó ó¿αΓπá½∞¡«¼
- │ │ │ áñαÑß¡«¼ »α«ßΓ-
- │ │ │ αá¡ßΓóÑ
- │ │ │ │
- │ ÅÑαѼÑΘáѼδÑ ßÑú¼Ñ¡Γδ (¬«ñá ¿ ñá¡¡δσ) │ │
- │ ¿ │ │
- │ ßíαáßδóáѼδÑ ßÑú¼Ñ¡Γδ ñá¡¡δσ │ │
- │ │ │
- │ │ │ │
- │ ö¿¬ß¿α«óá¡¡δÑ ßÑú¼Ñ¡Γδ (¬«ñá ¿ │ │
- │ ñá¡¡δσ) │ │
- ├────────────────────────────────────────┤ /
- . .
- . .
- . .
- ├────────────────────────────────────────┤
- │ ÉѺ¿ñÑ¡Γ¡δÑ »α«úαá¼¼δ │
- │ äαá⌐óÑαδ πßΓα«⌐ßΓó │
- │ MS-DOS │
- │ Äí½áßΓ∞ ñá¡¡δσ BIOS │
- │ Æáí½¿µá óÑ¬Γ«α«ó »αÑαδóá¡¿⌐ │
- └────────────────────────────────────────┘ 0000H
-
-
- é íẫó«⌐ ¬«¡Σ¿úπαᵿ¿ ¿ ó ¬«¡Σ¿úπαᵿ¿ αáßΦ¿αÑ¡¡«ú«
- αѪ¿¼á »α«µÑßß«αá 80386 Σ¿¬ß¿α«óá¡¡δ⌐ ¬«ñ ¿ ñá¡¡δÑ αẼÑΘáεΓß∩
- ó ¡¿ª¡¿σ áñαÑßáσ ßÑú¼Ñ¡Γ«ó. ìÑßíαáßδóáѼδÑ »ÑαѼÑΘáѼδÑ
- ßÑú¼Ñ¡Γδ ¬«ñá ¿ ñá¡¡δσ ¿ ßíαáßδóáѼδÑ ßÑú¼Ñ¡Γδ ñá¡¡δσ
-
- Windows 3.0/pg/3#3 = 23 =
-
- αáß»«½áúáεΓß∩ ¡áñ Σ¿¬ß¿α«óá¡¡δ¼¿ ßÑú¼Ñ¡ΓἿ. æíαáßδóáѼδÑ
- ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ αáß»«½áúáεΓß∩ ó ßΓáαΦ¿σ áñαÑßáσ »á¼∩Γ¿.
- Windows »α¿ αáí«ΓÑ »α¿ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ αáßΦ¿αÑ¡¡«ú« αѪ¿¼á
- »α«µÑßß«αá 80386 ¼¿¡¿¼¿º¿απÑΓ Σαáú¼Ñ¡Γáµ¿ε »á¼∩Γ¿ »« ßαáó¡Ñ¡¿ε
- ß íẫó«⌐ ¬«¡Σ¿úπαᵿÑ⌐.
-
- è«¡Σ¿úπαᵿ∩ »á¼∩Γ¿ ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ »α«µÑßß«αá 80386
- «Γ½¿τáÑΓß∩ «Γ «ßΓá½∞¡δσ ¬«¡Σ¿úπαᵿ⌐ ΓѼ, τΓ« ó ¡Ñ⌐ Windows
- »α«¿ºó«ñ¿Γ «í¼Ñ¡ ßÑú¼Ñ¡ΓἿ ¬«ñá ¿ ñá¡¡δσ ¼Ñªñπ »á¼∩Γ∞ε ¿
- ñ¿ß¬«¼. é ñαπú¿σ ¬«¡Σ¿úπαᵿ∩σ Windows ¼«ªÑΓ πñ὿Γ∞ ¿º »á¼∩Γ¿
- ßíαáßδóáѼδÑ ßÑú¼Ñ¡Γδ, ¡« ¡Ñ ¼«ªÑΓ ß«σαá¡¿Γ∞ ñá¡¡δÑ ¡á ñ¿ß¬Ñ,
- τΓ«íδ ó ñá½∞¡Ñ⌐ΦѼ ¿σ ó«ßßΓá¡«ó¿Γ∞.
-
- Windows ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ »α«µÑßß«αá 386 »α«ñ«½ªáÑΓ
- óδñѽ∩Γ∞ Σ¿º¿τÑ߬πε »á¼∩Γ∞, »«¬á φΓ« ¡Ñ«íσ«ñ¿¼«. çáΓѼ Windows
- ñ½∩ «ßó«í«ªñÑ¡¿∩ »á¼∩Γ¿ ¡áτ¿¡áÑΓ »ÑαѼÑΘáΓ∞ ßΓαá¡¿µδ αẼÑα«¼
- 4è ¬«ñá ¿ ñá¡¡δσ ¿º »á¼∩Γ¿ ¡á ñ¿ß¬. Windows óδ»«½¡∩ÑΓ «»Ñαᵿ¿
- ½¿ßΓá¡¿∩ í½«¬á¼¿ »« 4è, á ¡Ñ í½«¬á¼¿ αạ«ú« αẼÑαá,
- ß««ΓóÑΓßΓóπεΘÑú« αẼÑα𠬫ñ«óδσ ßÑú¼Ñ¡Γ«ó ¿ ßÑú¼Ñ¡Γ«ó ñá¡¡δσ.
- ¥Γ«Γ í½«¬ ¼«ªÑΓ ß«ñÑαªáΓ∞ Γ«½∞¬« τáßΓ∞ ßÑú¼Ñ¡Γá ¬«ñá ¿½¿ ñá¡¡δσ
- ¿½¿ »ÑαÑßѬáΓ∞ úαá¡¿µδ ñóπσ ¿½¿ í«½ÑÑ ßÑú¼Ñ¡Γ«ó.
-
- ¥Γá ßΓαá¡¿τ¡á∩ «αúá¡¿ºáµ¿∩ ñ½∩ »α¿¬½áñ¡δσ »α«úαá¼¼
- »α«ºαáτ¡á. àß½¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á »δΓáÑΓß∩ «ßπΘÑßΓó¿Γ∞
- ñ«ßΓπ» ¬ ßÑú¼Ñ¡Γπ ñá¡¡δσ ¿½¿ ¬«ñá, ¬«Γ«αδ⌐ ßíα«ΦÑ¡ ¡á ñ¿ß¬, Γ«
- »α«µÑßß«α 80386 óδαáíáΓδóáÑΓ ñ½∩ Windows »αÑαδóá¡¿Ñ "«Φ¿í¬á
- ßΓαá¡¿µδ". Windows «ßπΘÑßΓó½∩ÑΓ »«ñ¬áτ¬π ¡Ñ«íσ«ñ¿¼δσ »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ ßΓαá¡¿µ ¿ ßíα«ß ¡Ñ¡πª¡δσ ¡á ñ¿ß¬. Windows óδí¿αáÑΓ
- ßΓαá¡¿µδ, ¬«Γ«αδÑ íπñπΓ ßíα«ΦÑ¡δ ¡á ñ¿ß¬, »«½∞ºπ∩ß∞ á½ú«α¿Γ¼«¼
- LRU ("¡á¿í«½ÑÑ ñáó¡« ¡Ñ ¿ß»«½∞ºπѼδ⌐").
-
- Æá¬á∩ ß¿ßΓѼá ó¿αΓπá½∞¡«⌐ »á¼∩Γ¿ »αÑñ«ßΓáó½∩ÑΓ
- ñ«»«½¡¿Γѽ∞¡πε »á¼∩Γ∞, «íΩѼ ¬«Γ«α«⌐ «úαá¡¿τÑ¡ Γ«½∞¬« αẼÑα«¼
- Σá⌐½á »«ñ¬áτ¬¿ Windows, ¬«Γ«αδ⌐ αѺÑαó¿απÑΓß∩ ¡á ñ¿ß¬Ñ. Windows
- «»αÑñѽ∩ÑΓ ¡Ñ«íσ«ñ¿¼δ⌐ αẼÑα Σá⌐½á »«ñ¬áτ¬¿ ¡á «ß¡«óÑ
- ¿¡Σ«α¼áµ¿¿ «í «íΩÑ¼Ñ ñ«ßΓπ»¡«⌐ Σ¿º¿τÑ߬«⌐ »á¼∩Γ¿ ¿ ñ«ßΓπ»¡«ú«
- »α«ßΓαá¡ßΓóá ¡á ñ¿ß¬Ñ. Å«½∞º«óáΓѽ∞ ¼«ªÑΓ ¿º¼Ñ¡¿Γ∞ αẼÑα Σá⌐½á
- »«ñ¬áτ¬¿, «»αÑñѽ¿ó Ñú« ó ß««ΓóÑΓßΓóπεΘѼ φ½Ñ¼Ñ¡ΓÑ ó Σá⌐½Ñ
- SYSTEM.INI, ¿ ¼«ªÑΓ «»αÑñѽ¿Γ∞ »«ßΓ«∩¡¡δ⌐ Σá⌐½ »«ñ¬áτ¬¿ ß
- »«¼«Θ∞ε ß½πªÑí¡«⌐ »α«úαá¼¼δ SWAPFILE.
-
- çá»α«ßδ Windows ¡á ºáúαπº¬π ßÑú¼Ñ¡Γ«ó ¬«ñá ¿ ñá¡¡δσ
- αáí«ΓáεΓ ¡á óÑαΦ¿¡Ñ ßσѼδ ßΓαá¡¿τ¡«⌐ «αúá¡¿ºáµ¿¿ ó¿αΓπá½∞¡«⌐
- »á¼∩Γ¿ Windows. Æá¬¿¼ «íαẫ¼ Windows αáßß¼áΓα¿óáÑΓ ó¿αΓπá½∞¡πε
- »á¼∩Γ∞ ¬á¬ ¿¼ÑεΘπε 640è íẫó«⌐ »á¼∩Γ¿, ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓß∩
- ñ½∩ «»αÑñѽѡ¿∩ ¬á¬¿Ñ ßÑú¼Ñ¡Γδ ¬«ñá ¿½¿ ñá¡¡δσ ¡Ñ«íσ«ñ¿¼«
- ßíα«ß¿Γ∞. Äñ¡á¬« Windows πñá½∩ÑΓ ßíαáßδóáѼδÑ ßÑú¼Ñ¡Γδ Γ«½∞¬« ó
- ß½πτáÑ ¿ßτÑα»á¡¿∩ ó¿αΓπá½∞¡«⌐ »á¼∩Γ¿.
-
- ÅαÑñ«ΓóαáΘÑ¡¿Ñ ßíα«ßá ßΓαá¡¿µ »á¼∩Γ¿ ¡á ñ¿ß¬.
-
- ê¡«úñá 󫺡¿¬áÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ó Γ«¼, τΓ«íδ ¡Ñ¬«Γ«αá∩
- «í½áßΓ∞ »á¼∩Γ¿ óßÑúñá ¡áσ«ñ¿½áß∞ ó »á¼∩Γ¿ ¿ ¡Ñ ßíαáßδóá½áß∞ ¡á
-
- Windows 3.0/pg/3#3 = 24 =
-
- ñ¿ß¬. ìá»α¿¼Ñα, »α«µÑñπαá í¿í½¿«ΓѬ¿ DLL ñ«½ª¡á óßÑúñá
- ¡áσ«ñ¿Γ∞ß∩ ó »á¼∩Γ¿, τΓ«íδ «¡á íδ½á óδºóá¡á ßαáºπ ªÑ ó «ΓóÑΓ ¡á
- »αÑαδóá¡¿Ñ íѺ «ª¿ñá¡¿∩ Γ«ú«, τΓ« ß¿ßΓÑ¼á ºáúαπº¿Γ ¡Ñ«íσ«ñ¿¼δÑ
- ßÑú¼Ñ¡Γδ. é Γᬿσ ß½πτá∩σ ¼«ª¡« ºáí½«¬¿α«óáΓ∞ í½«¬ »á¼∩Γ¿ ñ½∩
- »αÑñ«ΓóαáΘÑ¡¿∩ Ñú« ßíα«ßá ¡á ñ¿ß¬.
-
- ä½∩ í½«¬¿α«ó¬¿ ó맮ó¿ΓÑ Σπ¡¬µ¿ε GlobalPageLock, »ÑαÑñáó Ñ⌐
- ó ¬áτÑßΓóÑ »áαá¼ÑΓαá ú½«íá½∞¡δ⌐ ßÑ½Ñ¬Γ«α í½«¬¿απѼ«ú« ßÑú¼Ñ¡Γá.
- ¥Γá Σπ¡¬µ¿∩ πóѽ¿τ¿óáÑΓ ßτÑΓτ¿¬ í½«¬¿α«óá¡¡δσ í½«¬«ó ñá¡¡«ú«
- ßÑú¼Ñ¡Γá. ä« ΓÑσ »«α, »«¬á φëà ßτÑΓτ¿¬ ¡Ñ αáóÑ¡ ¡π½ε, ßÑú¼Ñ¡Γ
- «ßΓáÑΓß∩ »« ΓѼ ªÑ Σ¿º¿τÑ߬¿¼ áñαÑßá¼ ¿ ¡Ñ ßíαáßδóáÑΓß∩ ¡á
- ñ¿ß¬. Å«ß½Ñ Γ«ú«, ¬á¬ í½«¬¿α«ó¬á πªÑ ¡Ñ ¡πª¡á, ó맮ó¿ΓÑ Σπ¡¬µ¿ε
- GlobalPageUnlock ñ½∩ π¼Ñ¡∞ΦÑ¡¿∩ ßτÑΓτ¿¬á í½«¬¿α«óá¡¡δσ ßΓαá¡¿µ.
- é ñαπú¿σ αѪ¿¼áσ φΓ¿ Σπ¡¬µ¿¿ ¡Ñ óδ»«½¡∩εΓ ¡¿¬á¬«⌐ αáí«Γδ.
-
- Åα¿¼Ñτá¡¿Ñ: ü½«¬¿α«óá¡¿Ñ »á¼∩Γ¿ ¼«ªÑΓ »α¿¼Ñ¡∩Γ∞ß∩ Γ«½∞¬« ó
- ¬α¿Γ¿τÑ߬¿σ ß¿Γπᵿ∩σ. ìÑ í½«¬¿απ⌐ΓÑ ó »á¼∩Γ¿ ¡á»α¿¼Ñα
- φ½Ñ¬Γα«¡¡πε Γáí½¿µπ, í½«¬¿α«óá¡¿Ñ ó½¿∩ÑΓ ¡á σáαá¬ΓÑα¿ßΓ¿¬¿
- αáí«Γδ óßÑσ »α¿¬½áñ¡δσ »α«úαá¼¼, ó¬½ετá∩ óáΦπ.
- 16.2 êß»«½∞º«óá¡¿Ñ »á¼∩Γ¿ ó »α¿¬½áñ¡δσ »α«úαá¼¼áσ Windows.
-
- Windows »«ññÑনóáÑΓ ßѼ∞ Γ¿»«ó ñá¡¡δσ, ¬áªñδ⌐ ¿º ¬«Γ«αδσ
- ¿ß»«½∞ºπÑΓß∩ ó αẽ¿τ¡δσ ß¿Γπᵿ∩σ. ì¿ªÑ «»¿ßá¡δ φΓ¿ Γ¿»δ
- ñá¡¡δσ ¿ »αÑñ½áúáÑΓß∩, ¬á¬«⌐ Γ¿» ó ¬á¬«¼ ß½πτáÑ ¿ß»«½∞º«óáΓ∞.
-
- Æ¿» Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- æΓáΓ¿τÑ߬¿Ñ æΓáΓ¿τÑ߬¿Ñ ñá¡¡δÑ ó¬½ετáεΓ óßÑ »ÑαѼѡ¡δÑ æ,
- ñá¡¡δÑ ¬«Γ«αδÑ ∩ó¡« ¿½¿ ¡Ñ ∩ó¡« «íΩ∩ó½Ñ¡δ ¬á¬ static.
- æΓáΓ¿τÑ߬¿Ñ ñá¡¡δÑ ó¬½ετáεΓ Γá¬ªÑ »ÑαѼѡ¡δÑ,
- «íΩ∩ó½Ñ¡¡δÑ ¬á¬ ó¡ÑΦ¡¿Ñ, ∩ó¡« (ß ¿ß»«½∞º«ó᡿Ѽ
- ¬½ετÑó«ú« ß½«óá extern) ¿½¿ ¡Ñ∩ó¡« («íΩ∩ó½Ñ¡δ
- ó ¡áτá½Ñ Σá⌐½á ß ¿ßσ«ñ¡δ¼ ΓѬßΓ«¼ »ÑαÑñ ΓѽἿ
- Σπ¡¬µ¿⌐).
-
- ÇóΓ«¼áΓ¿τÑ߬¿Ñ ¥Γ« »ÑαѼѡ¡δÑ, óδñѽ∩ѼδÑ ó ßΓÑ¬Ñ »α¿ ó맮óÑ
- ñá¡¡δÑ Σπ¡¬µ¿⌐. è ¡¿¼ «Γ¡«ß∩Γß∩ »áαá¼ÑΓαδ Σπ¡¬µ¿⌐ ¿
- ½«¬á½∞¡« «íΩ∩ó½Ñ¡¡δÑ »ÑαѼѡ¡δÑ. 漫Γα¿ΓÑ αáº-
- ñѽ 16.2.1 "ô»αáó½Ñ¡¿Ñ áóΓ«¼áΓ¿τÑ߬¿¼¿ ßÑú¼Ñ¡-
- ΓἿ ñá¡¡δσ".
-
- 﫬á½∞¡δÑ ñ¿¡á- 﫬á½∞¡δÑ ñ¿¡á¼¿τÑ߬¿Ñ ñá¡¡δÑ óδñѽ∩εΓß∩ ß
- ¼¿τÑ߬¿Ñ ñá¡¡δÑ »«¼«Θ∞ε Σπ¡¬µ¿¿ LocalAlloc. 﫬á½∞¡δÑ ñ¿¡á¼¿-
- τÑ߬¿Ñ ñá¡¡δÑ óδñѽ∩εΓß∩ ó ½«¬á½∞¡«¼ ñ¿¡á¼¿-
- τÑ߬«¼ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ, ñ½∩ ¬«Γ«α«ú« ó »α¿¬-
- ½áñ¡«⌐ »α«úαá¼¼Ñ «»αÑñѽѡ ßÑú¼Ñ¡Γ DS. éδñѽÑ-
- ¡¿Ñ í½«¬«ó »á¼∩Γ¿ ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í-
- ½áßΓ¿ »á¼∩Γ¿ á¡á½«ú¿τ¡« ¿ß»«½∞º«óá¡¿ε Σπ¡¬µ¿¿
- æ malloc ó »α¿¬½áñ¡δσ »α«úαá¼¼áσ ñ½∩ DOS, ¿ß-
- »«½∞ºπεΘ¿σ ¼á½πε ¿ ßαÑñ¡εε ¼«ñѽ¿ »á¼∩Γ¿.
- 漫Γα¿ΓÑ αáºñѽ 16.2.2, "ô»αáó½Ñ¡¿Ñ í½«¬á¼¿ ½«-
- ¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿".
-
- Windows 3.0/pg/3#3 = 25 =
-
-
- ⽫íá½∞¡δÑ ñ¿¡á- ¥Γ« ñá¡¡δÑ, óδñѽ∩ѼδÑ ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑß-
- ¼¿τÑ߬¿Ñ ñá¡¡δÑ ¬«⌐ «í½áßΓ¿ »á¼∩Γ¿ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- GlobalAlloloc. ⽫íá½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞
- »á¼∩Γ¿ - φΓ« ß¿ßΓѼ¡δ⌐ αÑßπαß. éδñѽѡ¿Ñ
- í½«¬«ó »á¼∩Γ¿ ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐
- «í½áßΓ¿ »á¼∩Γ¿ á¡á½«ú¿τ¡« óδñѽѡ¿ε »á¼∩Γ¿ ó
- »α«úαá¼¼áσ »«ñ DOS c »«¼«Θ∞ε ßΓá¡ñáαΓ¡«⌐
- í¿í½¿«ΓÑτ¡«⌐ Σπ¡¬µ¿¿ æ malloc ó í«½∞Φ«⌐ ¿
- ¬«¼»á¬Γ¡«⌐ ¼«ñѽ∩σ »á¼∩Γ¿. ÄΓ½¿τ¿Ñ ß«ßΓ«¿Γ ó
- Γ«¼, τΓ« ó Windows óδ óδñѽ∩ÑΓÑ »á¼∩Γ∞ ó
- «í½áßΓ¿, »«ΓÑ¡µ¿á½∞¡« αáºñѽ∩Ѽ«⌐ ß ñαπú¿¼¿
- »α¿¬½áñ¡δ¼¿ »α«úαἼἿ, Γ«úñá ¬á¬ »«ñ DOS óß∩
- ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿ »αÑñ«ßΓáó½Ñ¡á ó
- óáΦÑ αáß»«α∩ªÑ¡¿Ñ. 漫Γα¿ΓÑ αáºñѽ 16.2.3,
- "ô»αáó½Ñ¡¿Ñ í½«¬á¼¿ ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐
- «í½áßΓ¿ »á¼∩Γ¿".
-
- ä«»«½¡¿Γѽ∞¡δÑ éáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ß«ºñáΓ∞ «¬¡«
- íá⌐Γδ «¬¡á Γᬿ¼ «íαẫ¼, τΓ« ó« ó¡πΓαÑ¡¡Ñ⌐ ßΓαπ¬ΓπαÑ
- «¬¡á, ¬«Γ«απε »«ññÑনóáÑΓ Windows, íπñπΓ
- óδñѽѡδ ñ«»«½¡¿Γѽ∞¡δÑ íá⌐Γδ. ä½∩ φΓ«ú«
- ºáαÑú¿ßΓα¿απ⌐ΓÑ ¬½áßß «¬¡á (ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- RegisterClass), ¿ π¬áª¿ΓÑ, τΓ« ¬áªñ«¼π «¬¡π
- ñá¡¡«ú« ¬½áßßá ñ«½ª¡δ óδñѽ∩Γ∞ß∩
- ñ«»«½¡¿Γѽ∞¡δÑ íá⌐Γδ. ä½∩ φΓ«ú« π¬áª¿ΓÑ
- ¡Ñ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ ó »«½Ñ cbWndExtra ßΓαπ¬Γπαδ
- WNDCLASS, ¬«Γ«απε óδ »ÑαÑñáÑΓÑ Σπ¡¬µ¿¿
- RegisterClass. éδ ºáΓѼ ¼«ªÑΓÑ ºá»¿ßáΓ∞ ¿½¿
- »«½πτ¿Γ∞ ñá¡¡δÑ ¿º φΓ«⌐ «í½áßΓ¿ ß »«¼«Θ∞ε
- Σπ¡¬µ¿⌐ SetWindowWord, SetWindowLong,
- GetWindowWord ¿ GetWindowLong. 漫Γα¿ΓÑ αáºñѽ
- 16.2.4, "ä«»«½¡¿Γѽ∞¡δÑ íá⌐Γδ ó ßΓαπ¬Γπαáσ
- ñá¡¡δσ «¬¡á ¿ ¬½áßßá".
-
- ä«»«½¡¿Γѽ∞¡δÑ è½áßß ¼«ª¡« ß«ºñáΓ∞ Γᬿ¼ «íαẫ¼, τΓ« ñ½∩
- íá⌐Γδ ¬½áßßá ¡Ñú« »«ß½Ñ ßΓαπ¬Γπαδ WNDCLASS íπñπΓ óδñѽѡδ
- ñ«»«½¡¿Γѽ∞¡δÑ íá⌐Γδ. Åα¿ αÑú¿ßΓαᵿ¿ ¬½áßßá
- «¬¡á óδ ¼«ªÑΓÑ π¬áºáΓ∞ ¡Ñ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ ó
- »«½Ñ cbClassExtra. çáΓѼ óδ ¼«ªÑΓÑ ºá»¿ßáΓ∞
- ñá¡¡δÑ ¿½¿ »«½πτ¿Γ∞ ñá¡¡δÑ ¿º φΓ«⌐ «í½áßΓ¿ ß
- »«¼«Θ∞ε Σπ¡¬µ¿⌐ SetClassWord, SetClassLong,
- GetClassWord ¿ GetClassLong. GetWindowLong.
- 漫Γα¿ΓÑ αáºñѽ 16.2.4, "ä«»«½¡¿Γѽ∞¡δÑ íá⌐Γδ
- ó ßΓαπ¬Γπαáσ ñá¡¡δσ «¬¡á ¿ ¬½áßßá".
-
- ÉÑßπαßδ ÉÑßπαßδ - φΓ« ¡Ñ¿º¼Ñ¡∩ѼδÑ ¡áí«αδ ñá¡¡δσ, σαá-
- ¡∩Θ¿Ñß∩ ó «í½áßΓ¿ αÑßπαß«ó óδ»«½¡∩Ѽ«ú« Σá⌐½á.
- ¥Γ¿ ñá¡¡δÑ ºáúαπªáεΓß∩ ó »á¼∩Γ∞, «Γ¬πñá óáΦá
- »α«úαá¼¼á ¼«ªÑΓ ¿σ ¿ß»«½∞º«óáΓ∞. éδ ¼«ªÑΓÑ
- «»αÑñѽ¿Γ∞ ß«íßΓóÑ¡¡δÑ αÑßπαßδ, ¬«Γ«αδÑ íπñπΓ
- ß«ñÑαªáΓ∞ ΓÑ ñá¡¡δÑ (Γ«½∞¬« ñ½∩ τΓÑ¡¿∩),
- ¬«Γ«αδÑ óδ σ«Γ¿ΓÑ ß«σαá¡¿Γ∞. éδ »«ñ¬½ετáÑΓÑ
-
- Windows 3.0/pg/3#3 = 26 =
-
- αÑßπαßδ ¬ ßó«Ñ¼π Σá⌐½π .EXE ¿½¿ .DLL ß »«¼«Θ∞ε
- ¬«¼»¿½∩Γ«αá αÑßπαß«ó. é »Ñα¿«ñ óδ»«½¡Ñ¡¿∩
- »α«úαá¼¼δ óδ »«½πτáÑΓÑ ñ«ßΓπ» ¬ αÑßπαßá¼ τÑαѺ
- αẽ¿τ¡δÑ Σπ¡¬µ¿¿ í¿í½¿«ΓѬ Windows. 漫Γα¿ΓÑ
- αáºñѽ 16.2.5, "ô»αáó½Ñ¡¿Ñ αÑßπαßἿ".
- ───────────────────────────────────────────────────────────────
- 16.2.1 ô»αáó½Ñ¡¿Ñ áóΓ«¼áΓ¿τÑ߬¿¼¿ ßÑú¼Ñ¡ΓἿ ñá¡¡δσ.
-
- èáªñá∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿¼ÑÑΓ «ñ¿¡ ßÑú¼Ñ¡Γ ñá¡¡δσ,
- ¡áºδóáѼδ⌐ "áóΓ«¼áΓ¿τÑ߬¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ", ¬«Γ«αδ⌐ ¼«ªÑΓ ¿¼ÑΓ∞
- αẼÑα ñ« 64è. ÇóΓ«¼áΓ¿τÑ߬¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ ß«ñÑαª¿Γ ß½ÑñπεΘ¿Ñ
- Γ¿»δ ñá¡¡δσ:
-
- Æ¿» Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- çáú«½«ó«¬ ºáñáτ¿ 16 íá⌐Γ ¿¡Σ«α¼áµ¿¿, ¬«Γ«απε Windows »«ññÑন-
- óáÑΓ ñ½∩ ¬áªñ«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. Ä¡¿
- óßÑúñá αẼÑΘáεΓß∩ ó »Ñαóδσ 16 íá⌐Γáσ áóΓ«¼á-
- Γ¿τÑ߬«ú« ßÑú¼Ñ¡Γá ñá¡¡δσ.
-
- æΓáΓ¿τÑ߬¿Ñ éßÑ »ÑαѼѡ¡δÑ æ, ∩ó¡« ¿½¿ ¡Ñ∩ó¡« «íΩ∩ó½Ñ¡¡δÑ
- ñá¡¡δÑ ¬á¬ static ¿½¿ extern ∩ó¡« ¿½¿ ¡Ñ∩ó¡«.
-
- æΓѬ æΓѬ ¿ß»«½∞ºπÑΓß∩ ñ½∩ σαá¡Ñ¡¿∩ áóΓ«¼áΓ¿τÑ߬¿σ
- ñá¡¡δσ. æΓѬ ¿¼ÑÑΓ Σ¿¬ß¿α«óá¡¡δ⌐ αẼÑα, ¡«
- Ñú« á¬Γ¿ó¡á∩ τáßΓ∞ πóѽ¿τ¿óáÑΓß∩ ¿ π¼Ñ¡∞ΦáÑΓß∩
- ó ß««ΓóÑΓßΓó¿¿ ß óδº«ó«¼ Σπ¡¬µ¿⌐ ¿ ó«ºóαáΓ«¼
- ¿º Σπ¡¬µ¿⌐. Åα¿ ¬áªñ«¼ ó맮óÑ Σπ¡¬µ¿¿ áñαÑß
- ó«ºóαáΓá »«¼ÑΘáÑΓß∩ ó á¬Γ¿ó¡πε «í½áßΓ∞ ßΓѬá,
- ΓᬠªÑ ¬á¬ ¿ »áαá¼ÑΓαδ, »ÑαÑñáóáѼδÑ Σπ¡¬µ¿¿.
-
- 﫬á½∞¡á∩ ñ¿¡á- æ«ñÑαª¿Γ óßÑ ½«¬á½∞¡δÑ ñ¿¡á¼¿τÑ߬¿Ñ ñá¡¡δÑ,
- ¼¿τÑ߬á∩ «í½áßΓ∞ ¬«Γ«αδÑ óδñѽ∩εΓß∩ Σπ¡¬µ¿Ñ⌐ LocalAlloc.
- ñá¡¡δσ
- ───────────────────────────────────────────────────────────────
-
- ìá α¿ßπ¡¬Ñ 16.6 »α¿óÑñÑ¡ ó¿ñ áóΓ«¼áΓ¿τÑ߬«ú« ßÑú¼Ñ¡Γá
- ñá¡¡δσ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
-
- ┌───────────────────────────────────┐ \
- │ 﫬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ │ │
- │ ñá¡¡δσ │ │
- ├───────────────────────────────────┤ │
- │ æΓѬ │ \ ä« 64 è
- ├───────────────────────────────────┤ /
- │ æΓáΓ¿τÑ߬¿Ñ ñá¡¡δÑ │ │
- ├───────────────────────────────────┤ │
- │ çáú«½«ó«¬ ºáñáτ¿ │ │
- └───────────────────────────────────┘ /
-
- É¿ßπ¡«¬ 16.6 ÇóΓ«¼áΓ¿τÑ߬¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ.
-
-
- Windows 3.0/pg/3#3 = 27 =
-
- ä½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ αẼÑα ßΓѬá óßÑúñá Σ¿¬ß¿α«óá¡.
- éδ «»αÑñѽ∩ÑΓÑ Ñú« αẼÑα ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ «»ÑαáΓ«α«¼ STACKSIZE. Windows áóΓ«¼áΓ¿τÑ߬¿ óδñѽ∩ÑΓ
- ßΓѬ ¼¿¡¿¼á½∞¡«ú« αẼÑαá 5è. éδ ¼«ªÑΓÑ »«φ¬ß»Ñα¿¼Ñ¡Γ¿α«óáΓ∞ ß«
- ßó«Ñ⌐ »α«úαá¼¼«⌐, τΓ«íδ «»αÑñѽ¿Γ∞ «»Γ¿¼á½∞¡δ⌐ αẼÑα ßΓѬá
- óáΦÑ⌐ »α«úαá¼¼δ. Äñ¡á¬« αѺπ½∞ΓáΓδ »ÑαÑ»«½¡Ñ¡¿∩ ßΓѬá
- ¡Ñ»αÑñ߬áºπѼδ.
-
- ÉẼÑα ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ «»αÑñѽ∩ÑΓß∩
- ó ß««ΓóÑΓßΓó¿¿ ß« º¡áτÑ¡¿Ñ¼, π¬áºá¡¡δ¼ ó «»ÑαáΓ«αÑ HEAPSIZE ó
- Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. 﫬á½∞¡á∩
- ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿ αáßΓÑΓ »α¿ ó맮óÑ Σπ¡¬µ¿¿
- LocalAlloc. êßσ«ñ¡δ⌐ αẼÑα ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿ ñ«½ªÑ¡ »« ¼Ñ¡∞ΦÑ⌐ ¼ÑαÑ ó¼ÑΘáΓ∞ ΓѬπΘ¿Ñ »ÑαѼѡ¡δÑ ßαÑñδ.
- ÉѬ«¼Ñ¡ñπѼδ⌐ ¼¿¡¿¼π¼ αáóÑ¡ 1è. àß½¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ¡Ñ
- ΓαÑíπÑΓß∩ ñ«ßΓπ» ¬ »ÑαѼѡ¡δ¼ ßαÑñδ, Γ« óδ ¼«ªÑΓÑ ß¬«¼»«¡«óáΓ∞
- óáΦπ »α¿¬½áñ¡πε »α«úαá¼¼π ß «íΩÑ¬Γ¡δ¼ Σá⌐½«¼, ¬«Γ«αδ⌐
- »αÑñ«ΓóαáΘáÑΓ »«¼ÑΘÑ¡¿Ñ φΓ«⌐ ¿¡Σ«α¼áµ¿¿ ó ½«¬á½∞¡πε
- ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞ »á¼∩Γ¿. 漫Γα¿ΓÑ ú½áóπ 14, "ƒºδ¬ æ ¿ ∩ºδ¬
- áßßѼí½Ñαá".
-
- àß½¿ áóΓ«¼áΓ¿τÑ߬¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ óáΦÑ⌐ »α«úαá¼¼δ ¡Ñ
- í½«¬¿α«óá¡ ¿½¿ ¡Ñ Σ¿¬ß¿α«óá¡¡δ⌐, Γ« 󫺼«ª¡«, τΓ« «¡ íπñÑΓ
- »ÑαѼÑΘÑ¡, ¬«úñá óáΦá »α«úαá¼¼á ó맮óÑΓ Σπ¡¬µ¿ε LocalAlloc.
- àß½¿ ½«¬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ ñá¡¡δσ ñ«½ª¡á αáßΓ¿, Γ«
- Windows ¿ΘÑΓ ¼ÑßΓ« ó Σ¿º¿τÑ߬«⌐ »á¼∩Γ¿ ñ½∩ αẼÑΘÑ¡¿∩ óßÑú«
- áóΓ«¼áΓ¿τÑ߬«ú« ßÑú¼Ñ¡Γá ñá¡¡δσ ¿ »ÑαѼÑΘáÑΓ Ñú« Γπñá. Å«¬á ñ½∩
- ñ«ßΓπ»á ¬ ñá¡¡δ¼ ¿º áóΓ«¼áΓ¿τÑ߬«ú« ßÑú¼Ñ¡Γá ñá¡¡δσ óáΦá
- »α«úαá¼¼á ¿ß»«½∞ºπÑΓ í½¿ª¡¿Ñ π¬áºáΓѽ¿, ¡¿¬á¬¿σ »α«í½Ñ¼ ¡Ñ
- 󫺡¿¬áÑΓ. é ß½πτáÑ ¡Ñ«íσ«ñ¿¼«ßΓ¿ óδ ¼«ªÑΓÑ »αÑñ«ΓóαáΓ¿Γ∞
- »ÑαѼÑΘÑ¡¿Ñ áóΓ«¼áΓ¿τÑ߬«ú« ßÑú¼Ñ¡Γá ñá¡¡δσ ñáªÑ »α¿ ó맮óÑ
- Σπ¡¬µ¿¿ LocalAlloc ß »«¼«Θ∞ε Σπ¡¬µ¿¿ LockData. Äñ¡á¬«
- í½«¬¿α«óá¡¿Ñ áóΓ«¼áΓ¿τÑ߬«ú« ßÑú¼Ñ¡Γá ñá¡¡δσ ¼«ªÑΓ »α¿óÑßΓ¿ ¬
- Γ«¼π, τΓ« ó맮ó Σπ¡¬µ¿¿ LocalAlloc ºáóÑαΦ¿Γß∩ ¡Ñπñáτ¡«, Ñß½¿
- ßÑú¼Ñ¡Γ ¡Ñ ¼«ªÑΓ íδΓ∞ »ÑαѼÑΘÑ¡ ¿ Ñß½¿ Σ¿¬ß¿α«óá¡¡δ⌐ ßÑú¼Ñ¡Γ
- ¡áσ«ñ¿Γß∩ ¡áñ áóΓ«¼áΓ¿τÑ߬¿¼ ßÑú¼Ñ¡Γ«¼.
-
- àß½¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á ºá»αáΦ¿óáÑΓ í«½∞ΦÑ, τѼ
- ñ«ßΓπ»¡« »á¼∩Γ¿ ¿º ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿, Γ« «¡á
- αáßΓÑΓ ñ« ΓÑσ »«α, »«¬á αẼÑα ßÑú¼Ñ¡Γá ¡Ñ ñ«ßΓ¿ú¡ÑΓ 64è.
- Äñ¡á¬« »α¿ «ßó«í«ªñÑ¡¿¿ «íΩÑ¬Γ«ó ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐
- «í½áßΓ¿ »á¼∩Γ¿ «¡á ¡Ñ ߪ¿¼áÑΓß∩. éδ ¼«ªÑΓÑ ßñѽáΓ∞ φΓ« óαπτ¡πε
- Σπ¡¬µ¿Ñ⌐ LocalShrink. ¥Γá Σπ¡¬µ¿∩ ó¡áτá½Ñ ߪ¿¼áÑΓ ½«¬á½∞¡πε
- ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞ »á¼∩Γ¿ ¿ ºáΓѼ «íαѺáÑΓ áóΓ«¼áΓ¿τÑ߬¿⌐
- ßÑú¼Ñ¡Γ ñ« ¡Ñ«íσ«ñ¿¼«ú« αẼÑαá. LocalShrink ¡Ñ ¼«ªÑΓ «íαѺáΓ∞
- ¡¿ ¡¿ªÑ »«ß½Ññ¡Ñú« óδñѽѡ¡«ú« «íΩѬΓá, ¡¿ ¡¿ªÑ π¬áºá¡¡«ú«
- αẼÑαá ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
- é Σá⌐½Ñ «»¿ßá¡¿∩ ¼«ñπ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ óδ ¼«ªÑΓÑ
- π¬áºáΓ∞, τΓ« áóΓ«¼áΓ¿τÑ߬¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ ñ«½ªÑ¡ íδΓ∞
- Σ¿¬ß¿α«óá¡¡δ¼ ¿½¿ »ÑαѼÑΘáѼδ¼, á¡á½«ú¿τ¡« ñαπú¿¼ ßÑú¼Ñ¡Γá¼.
- éδ ñ«½ª¡δ «»¿ßáΓ∞ áóΓ«¼áΓ¿τÑ߬¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ ¬á¬
- »ÑαѼÑΘáѼδ⌐ ¿ ¼¡«ªÑßΓóÑ¡¡δ⌐, Ñß½¿ π óáß ¡ÑΓ óÑ߬¿σ »α¿τ¿¡,
-
- Windows 3.0/pg/3#3 = 28 =
-
- τΓ«íδ ¡Ñ ñѽáΓ∞ φΓ«ú«. ÇóΓ«¼áΓ¿τÑ߬¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ »«
- π¼«½τá¡¿ε ¿¼ÑÑΓ »áαá¼ÑΓα PRELOAD. ì¿ªÑ »α¿óÑñÑ¡ »α¿¼Ñα
- «íΩ∩ó½Ñ¡¿∩ áóΓ«¼áΓ¿τÑ߬«ú« ßÑú¼Ñ¡Γá ñá¡¡δσ ó Σá⌐½Ñ «»¿ßá¡¿∩
- ¼«ñπ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ:
-
- DATA MOVEABLE MULTIPLE
-
- Ä»αÑñѽ¿ó áóΓ«¼áΓ¿τÑ߬¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ ¬á¬ »ÑαѼÑΘáѼδ⌐,
- óδ »«ºó«½∩ÑΓÑ Windows »ÑαѼÑΘáΓ∞ Ñú« »α¿ ¿º¼Ñ¡Ñ¡¿¿ αẼÑαá.
- àß½¿ «¡ íπñÑΓ Σ¿¬ß¿α«óá¡¡δ¼, Γ« Windows óδñѽ∩ÑΓ »á¼∩Γ∞ Γ«½∞¬«
- ó ß½πτáÑ, Ñß½¿ ñ«ßΓπ»¡« ñ«ßΓáΓ«τ¡« »á¼∩Γ¿. Æá¬¿¼ «íαẫ¼, Ñß½¿
- óδ ¿ß»«½∞ºπÑΓÑ Σ¿¬ß¿α«óá¡¡δ⌐ ßÑú¼Ñ¡Γ, Γ« óδ ñ«½ª¡δ ºáñáΓ∞ ó
- «»ÑαáΓ«αÑ HEAPSIZE ñ«ßΓáΓ«τ¡δ⌐ αẼÑα ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿.
-
- ùΓ«íδ ¬áªñδ⌐ φ¬ºÑ¼»½∩α óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ »«½πτ¿½
- ßó«⌐ áóΓ«¼áΓ¿τÑ߬¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ, ¡Ñ«íσ«ñ¿¼« «»αÑñѽ¿Γ∞ Ñú«
- ¬á¬ ¼¡«ªÑßΓóÑ¡¡δ⌐ (MULTIPLE). ÇΓα¿íπΓ SINGLE »α¿¼Ñ¡¿¼ Γ«½∞¬« ¬
- áóΓ«¼áΓ¿τÑ߬¿¼ ßÑú¼Ñ¡Γá¼ ñá¡¡δσ DLL. öá¬Γ¿τÑ߬¿ DLL ñ«½ª¡δ íδΓ∞
- «»αÑñѽѡδ ß φΓ¿¼ áΓα¿íπΓ«¼, »«ß¬«½∞¬π DLL ñ«½ª¡δ ¿¼ÑΓ∞ Γ«½∞¬«
- «ñ¿¡ φ¬ºÑ¼»½∩α.
- 16.2.2 ô»αáó½Ñ¡¿Ñ í½«¬á¼¿ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿.
-
- é Windows ½«¬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ ñá¡¡δσ ¼«ªÑΓ
- αáß»«½áúáΓ∞ß∩ ó ½εí«¼ ßÑú¼Ñ¡ΓÑ. Äñ¡á¬« τáΘÑ óßÑú« «¡á
- αáß»«½áúáÑΓß∩ ó áóΓ«¼áΓ¿τÑ߬«¼ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ.
-
- öπ¡¬µ¿∩ LocalInit «»αÑñѽ∩ÑΓ π¬áºá¡¡πε «í½áßΓ∞ ó¡πΓα¿
- ßÑú¼Ñ¡Γá ñá¡¡δσ ó ¬áτÑßΓóÑ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿. é맮ó Σπ¡¬µ¿¿ LocalAlloc ¿ ñαπú¿σ Σπ¡¬µ¿⌐ ñ½∩ αáí«Γδ ß
- ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ∞ε »á¼∩Γ¿ αáí«ΓáÑΓ ß ßÑú¼Ñ¡Γ«¼, ¡á
- ¬«Γ«αδ⌐ π¬áºδóáÑΓ αÑú¿ßΓα DS. öπ¡¬µ¿¿ αáí«Γδ ß ½«¬á½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ∞ε »á¼∩Γ¿ αáí«ΓáεΓ, Ñß½¿ «¡á íδ½á
- ¿¡¿µ¿á½¿º¿α«óá¡á LocalInit.
-
- àß½¿ óδ αáºαáíáΓδóáÑΓÑ DLL, ¬«Γ«α«⌐ ΓαÑíπÑΓß∩ ½«¬á½∞¡á∩
- ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿, Γ« óδ ñ«½ª¡δ óδºóáΓ∞ LocalInit ó
- »α«µÑßßÑ ¿¡¿µ¿á½¿ºáµ¿¿ í¿í½¿«ΓѬ¿. ìÑ«íσ«ñ¿¼« «Γ¼ÑΓ¿Γ∞, τΓ«
- LocalInit í½«¬¿απÑΓ ßÑú¼Ñ¡Γ ñá¡¡δσ. Å«φΓ«¼π, »«ß½Ñ ó맮óá
- LocalInit ñ½∩ í¿í½¿«ΓѬ¿ óá¼, 󫺼«ª¡«, »«¡áñ«í¿Γß∩ ßñѽáΓ∞
- ßÑú¼Ñ¡Γ »ÑαѼÑΘáѼδ¼. éδ ¼«ªÑΓÑ ßñѽáΓ∞ φΓ« ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- UnlockData.
-
- àß½¿ óδ αáºαáíáΓδóáÑΓÑ »α¿¬½áñ¡πε »α«úαá¼¼π Windows, Γ« ó
- »α«Γ¿ó«»«½«ª¡«ßΓ∞ DLL óá¼ ¡Ñ ¡πª¡« ñ½∩ áóΓ«¼áΓ¿τÑ߬«ú« ßÑú¼Ñ¡Γá
- ñá¡¡δσ óδºδóáΓ∞ Σπ¡¬µ¿ε LocalInit. Windows ßἫßΓ«∩Γѽ∞¡«
- óδºδóáÑΓ LocalInit, ¿ß»«½∞ºπ∩ ¿¡Σ«α¼áµ¿ε « αẼÑΘÑ¡¿¿ «ßΓá½∞¡δσ
- ñá¡¡δσ ó áóΓ«¼áΓ¿τÑ߬«¼ ßѼúÑ¡ΓÑ ñá¡¡δσ (ºáú«½«ó«¬ ºáñáτ¿,
- ßΓáΓ¿τÑ߬¿Ñ ñá¡¡δÑ, ßΓѬ) ¿ ¿¡Σ«α¼áµ¿ε « αẼÑαÑ ½«¬á½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿, π¬áºá¡¡πε ó Σá⌐½Ñ «»¿ßá¡¿∩ ¼«ñπ½∩
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
-
- Windows 3.0/pg/3#3 = 29 =
-
-
- Äαúá¡¿ºáµ¿∩ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿
- á¡á½«ú¿τ¡á «αúá¡¿ºáµ¿¿ ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿:
-
- - ö¿¬ß¿α«óá¡¡δÑ í½«¬¿ αẼÑΘáεΓß∩ ¡á ñ¡Ñ ½«¬á½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
- - ÅÑαѼÑΘáѼδÑ, ¡ÑßíαáßδóáѼδÑ í½«¬¿ αẼÑΘáεΓß∩ ¡áñ
- Σ¿¬ß¿α«óá¡¡δ¼¿ í½«¬á¼¿.
-
- - æíαáßδóáѼδÑ í½«¬¿ óδñѽ∩εΓß∩ «Γ óÑαΦ¿¡δ ú½«íá½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
-
-
- Windows 3.0/pg/3#3 = 30 =
-
- äá¡¡á∩ «αúá¡¿ºáµ¿∩ »α¿óÑñÑ¡á ¡á α¿ßπ¡¬Ñ 16.7.
-
- ┌──────────────────────────────────┐ éÑαΦ¿¡á
- │ æíαáßδóáѼδÑ í½«¬¿ │
- │ │ │
- │ │
- │ │
- │ │
- │ │
- │ │
- │ │ │
- │ ÅÑαѼÑΘáѼδÑ í½«¬¿ │
- │ │
- │ │ │
- │ ö¿¬ß¿α«óá¡¡δÑ í½«¬¿ │
- └──────────────────────────────────┘ ä¡«
-
- É¿ßπ¡«¬ 16.7 Äαúá¡¿ºáµ¿∩ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿.
-
- è«úñá Windows ñ«íáó½∩ÑΓ ¡«óδÑ í½«¬¿ ¬ ½«¬á½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, »ÑαѼÑΘáѼδÑ
- í½«¬¿ ¼«úπΓ »ÑαѼÑΘáΓ∞ß∩ ñ½∩ π¼Ñ¡∞ΦÑ¡¿∩ αẼÑαá ñ¿¡á¼¿τÑ߬«⌐
- «í½áßΓ¿ »á¼∩Γ¿. èα«¼Ñ φΓ«ú« Windows ¼«ªÑΓ πñá½∩Γ∞ ßíαáßδóáѼδÑ
- í½«¬¿ ñ½∩ «ßó«í«ªñÑ¡¿∩ ¼ÑßΓá ñ½∩ ¡«óδσ. Windows ¡Ñ »ÑαѼÑΘáÑΓ
- Σ¿¬ß¿α«óá¡¡δÑ í½«¬¿ ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
- éδñѽѡ¿Ñ »á¼∩Γ¿ ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
- öπ¡¬µ¿∩ LocalAlloc »«ºó«½∩ÑΓ óá¼ óδñѽ¿Γ∞ í½«¬ »á¼∩Γ¿
- π¬áºá¡¡«ú« αẼÑαá ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ ¿
- «»αÑñѽ¿Γ∞ σáαá¬ΓÑα¿ßΓ¿¬¿ í½«¬á. òáαá¬ΓÑα¿ßΓ¿¬¿ «»αÑñѽ∩εΓ,
- ∩ó½∩ÑΓß∩ ½¿ í½«¬ »ÑαѼÑΘáÑ¼δ¼ ¿½¿ Σ¿¬ß¿α«óá¡¡δ¼, ¿ ¼«ªÑΓ ½¿
- »ÑαѼÑΘáѼδ⌐ í½«¬ ßíαáßδóáΓ∞ß∩. ä«»πßΓ¿¼δ ß½ÑñπεΘ¿Ñ ¬«¼í¿¡áµ¿¿
- Σ½áú«ó:
-
- - LMEM_FIXED
-
- - LMEM_MOVEABLE
-
- - LMEM_MOVEABLE ¿ LMEM_DISCARDABLE
-
- Åα¿ óδñѽѡ¿¿ í½«¬á ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- ñá¡¡δσ ñαπú¿Ñ í½«¬¿ ¼«úπΓ »ÑαѼÑΘáΓ∞ß∩ ¿½¿ ßíαáßδóáΓ∞ß∩. é
- ¡Ñ¬«Γ«αδσ ß½πτá∩σ 󫺼«ª¡« óδ ºáσ«Γ¿ΓÑ, τΓ«íδ »α¿ óδñѽѡ¿¿
- ¡«ó«ú« í½«¬á »á¼∩Γ¿ ¡Ñ »α«¿ßσ«ñ¿½á αÑ«αúá¡¿ºáµ¿∩ ½«¬á½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿. 髺¼«ª¡« óá¼ ¡Ñ«íσ«ñ¿¼«
- úáαá¡Γ¿α«óáΓ∞, τΓ« π¬áºáΓѽ¿ ¡á »ÑαѼÑΘáѼδÑ í½«¬¿ »á¼∩Γ¿
- «ßΓá¡πΓß∩ óÑα¡δ¼¿. ùΓ«íδ úáαá¡Γ¿α«óáΓ∞, τΓ« í½«¬¿ ¡Ñ íπñπΓ
- ßíα«ΦÑ¡δ »α¿ óδñѽѡ¿¿ ¡«ó«ú«, π¬áª¿ΓÑ »α¿ ó맮óÑ LocalAlloc ó
- »áαá¼ÑΓαÑ wFlags º¡áτÑ¡¿Ñ LMEM_NODISCARD. ùΓ«íδ úáαá¡Γ¿α«óáΓ∞,
- τΓ« í½«¬¿ ¡Ñ íπñπΓ ¡¿ ßíα«ΦÑ¡δ, ¡¿ »ÑαѼÑΘÑ¡δ, π¬áª¿ΓÑ º¡áτÑ¡¿Ñ
- LMEM_NOCOMPACT.
-
- Windows 3.0/pg/3#3 = 31 =
-
-
- LocalAlloc ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α ½«¬á½∞¡«ú« í½«¬á »á¼∩Γ¿.
- àß½¿ ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ ¡Ñ σóáΓáÑΓ »á¼∩Γ¿, Γ«
- Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ NULL. Åα¿ ¿ß»«½∞º«óá¡¿¿ «ßΓá½∞¡δσ Σπ¡¬µ¿⌐
- αáí«Γδ ß í½«¬á¼¿ »á¼∩Γ¿, ¬«Γ«αδÑ «»¿ßá¡δ ¡¿ªÑ, óδ »«½∞ºπÑΓÑß∞
- ñÑß¬α¿»Γ«α«¼, »«½πτÑ¡¡δ¼ «Γ Σπ¡¬µ¿¿ LocalAlloc.
-
- ü½«¬¿α«óá¡¿Ñ ¿ αáºí½«¬¿α«óá¡¿Ñ í½«¬«ó »á¼∩Γ¿.
-
- ä½∩ ¼¡«ú¿σ »α«úαá¼¼¿ßΓ«ó ¡á æ, »α¿óδ¬Φ¿σ ¬ ¿ß»«½∞º«óá¡¿ε
- Σπ¡¬µ¿¿ malloc, αáí«Γá ß ñÑß¬α¿»Γ«αἿ »á¼∩Γ¿ ¼«ªÑΓ «¬áºáΓ∞ß∩
- ¡«ó«⌐. Æ.¬. óδñѽ∩ѼδÑ ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿
- «íΩѬΓδ ¼«úπΓ »ÑαѼÑΘáΓ∞ß∩ »α¿ ñ«íáó½Ñ¡¿¿ ¡«óδσ «íΩÑ¬Γ«ó, Γ« óδ
- ¡Ñ ¼«ªÑΓÑ »«ñαáºπ¼ÑóáΓ∞, τΓ« π¬áºáΓѽ¿ ¡á φΓ¿ «íΩѬΓδ
- «ßΓá¡πΓß∩ óÑα¡δ¼¿. äÑß¬α¿»Γ«αδ »αÑñ«ßΓáó½∩εΓ óá¼ ¬«¡ßΓá¡Γ¡πε
- ßß佬π ¡á »ÑαѼÑΘáѼδ⌐ «íΩѬΓ.
-
- ū߬«½∞¬π ñÑß¬α¿»Γ«α ∩ó½∩ÑΓß∩ ¡Ñ »α∩¼δ¼ π¬áºáΓѽѼ, Γ« Ñú«
- ¡Ñ«íσ«ñ¿¼« "αáºαÑΦ¿Γ∞" ñ½∩ »«½πτÑ¡¿∩ áñαÑßá ½«¬á½∞¡«ú« «íΩѬΓá.
- ¥Γ« ñѽáÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ LocalLock. LocalLock óαѼѡ¡«
- Σ¿¬ß¿απÑΓ «íΩÑ¬Γ ó «»αÑñѽѡ¡«¼ ¼ÑßΓÑ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐
- «í½áßΓ¿ »á¼∩Γ¿. Æá¬¿¼ «íαẫ¼ úáαá¡Γ¿απÑΓß∩, τΓ« í½¿ª¡¿⌐
- áñαÑß, ó«ºóαáΘáѼδ⌐ Σπ¡¬µ¿Ñ⌐ LocalLock, íπñÑΓ «»αÑñѽ∩Γ∞ ñá¡¡δ⌐
- «íΩÑ¬Γ ñ« ΓÑσ »«α, »«¬á óδ ¡Ñ ó맮ó¿ΓÑ LocalUnlock. æ½ÑñπεΘ¿⌐
- »α¿¼Ñα ñѼ«¡ßΓα¿απÑΓ, ¬á¬ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ LocalLock ñ½∩
- »«½πτÑ¡¿∩ áñαÑßá »ÑαѼÑΘáѼ«ú« «íΩѬΓá.
-
- HANDLE hLocalObject;
- char NEAR * pcLocalObject; /* ó ßαÑñ¡Ñ⌐ ¿ ¼á½«⌐ ¼«ñѽ¿
- NEAR ¼«ª¡« ¡Ñ π¬áºδóáΓ∞ */
-
- if(hLocalObject = LocalAlloc(LMEM_MOVEABLE,32))
- {
- if(pcLocalObject = LocalLock(hLocalObject))
- {
- /* pcLocalObject ¿ß»«½∞ºπÑΓß∩ ¬á¬ í½¿ª¡¿⌐ π¬áºá-
- Γѽ∞ ¡á ½«¬á½∞¡δ⌐ «íΩÑ¬Γ */
- .
- .
- .
- LocalUnlock(hLocalObject);
- else
- {
- /* ÉÑᬵ¿∩ ¡á ¡Ñ󫺼«ª¡«ßΓ∞ í½«¬¿α«ó¬¿ */
- }
- }
- else
- {
- /* ìÑ󫺼«ª¡« óδñѽ¿Γ∞ ¼ÑßΓ« »«ñ 32 íá⌐Γá */
- }
-
- àß½¿ óδ óδñѽ∩ÑΓÑ í½«¬ »á¼∩Γ¿ ß áΓα¿íπΓ«¼ LMEM_FIXED, Γ«
- πªÑ úáαá¡Γ¿απÑΓß∩, τΓ« í½«¬ ¡Ñ íπñÑΓ »ÑαѼÑΘáΓ∞ß∩ ó »á¼∩Γ¿.
-
- Windows 3.0/pg/3#3 = 32 =
-
- æ½Ññ«óáΓѽ∞¡«, óδ ¡Ñ ñ«½ª¡δ óδºδóáΓ∞ Σπ¡¬µ¿ε LocalLock ñ½∩
- í½«¬¿α«óá¡¿∩ Σ¿¬ß¿α«óá¡¡«ú« í½«¬á »á¼∩Γ¿. æ½Ññ«óáΓѽ∞¡«, óδ ¡Ñ
- ¼«ªÑΓÑ »«½πτ¿Γ∞ áñαÑßá «íΩѬΓá ß »«¼«Θ∞ε Σπ¡¬µ¿¿ LocalLock.
- é¼ÑßΓ« φΓ«ú« ó ¬áτÑßΓóÑ í½¿ª¡Ñú« áñαÑßá ¿ß»«½∞ºπÑΓß∩
- ñÑß¬α¿»Γ«α, ó«ºóαáΘáѼδ⌐ Σπ¡¬µ¿Ñ⌐ LocalAlloc. ì¿ªÑ »α¿óÑñÑ¡
- »α¿¼Ñα:
-
- char NEAR * pcLocalObject; /* ó ßαÑñ¡Ñ⌐ ¿ ¼á½«⌐ ¼«ñѽ¿
- NEAR ¼«ª¡« ¡Ñ π¬áºδóáΓ∞ */
-
- if(ºßLocalObject = LocalAlloc(LMEM_MOVEABLE,32))
- {
- /* pcLocalObject ¿ß»«½∞ºπÑΓß∩ ¬á¬ í½¿ª¡¿⌐ π¬áºá-
- Γѽ∞ ¡á ½«¬á½∞¡δ⌐ «íΩѬΓ
- ìÑ ¡πª¡« í½«¬¿α«óáΓ∞ ¿ αáºí½«¬¿α«óáΓ∞
- Σ¿¬ß¿α«óá¡¡δ⌐ «íΩÑ¬Γ */
- .
- .
- .
- }
- else
- {
- /* ìÑ󫺼«ª¡« óδñѽ¿Γ∞ ¼ÑßΓ« »«ñ 32 íá⌐Γá */
- }
-
- éδ ñ«½ª¡δ ¿ºíÑúáΓ∞ Γ«ú«, τΓ«íδ ó ¼«¼Ñ¡Γ, ¬«úñá ¡Ñ«íσ«ñ¿¼«
- óδñѽ¿Γ∞ ¡«óδ⌐ í½«¬, »ÑαѼÑΘáѼδ⌐ «íΩÑ¬Γ «ßΓáóá½ß∩
- í½«¬¿α«óá¡¡δ¼ ó »á¼∩Γ¿. ¥Γ« π¼Ñ¡∞ΦáÑΓ φΣΣÑ¬Γ¿ó¡«ßΓ∞ αáí«Γδ
- ß¿ßΓѼδ π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε Windows. Windows óδ¡πªñÑ¡ αáí«ΓáΓ∞
- ó«¬απú í½«¬¿α«óá¡¡«ú« «íΩѬΓá, τΓ«íδ óδñѽ¿Γ∞ »á¼∩Γ∞ ó «í½áßΓ¿
- »ÑαѼÑΘáѼδσ í½«¬«ó »á¼∩Γ¿.
-
- 꺼ѡѡ¿Ñ í½«¬á ½«¬á½∞¡«⌐ »á¼∩Γ¿.
-
- ä½∩ ¿º¼Ñ¡Ñ¡¿∩ αẼÑαá í½«¬á »á¼∩Γ¿ íѺ »«ΓÑα¿ Ñú«
- ß«ñÑন¼«ú« óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε LocalRealloc. àß½¿
- óδ π¬áªÑΓÑ ¼Ñ¡∞Φ¿⌐ αẼÑα, Windows «íαѪÑΓ í½«¬. àß½¿ π¬áªÑΓÑ
- í«½∞Φ¿⌐ αẼÑα, Γ« ó ß½πτáÑ ºáñá¡¿∩ áΓα¿íπΓá LMEM_ZEROINIT,
- «ßΓáóΦá∩ß∩ τáßΓ∞ í½«¬á íπñÑΓ ºá»«½¡Ñ¡á ¡π½∩¼¿, ó »α«Γ¿ó¡«¼
- ß½πτáÑ ß«ñÑন¼«Ñ «ßΓáóΦÑ⌐ß∩ τáßΓ¿ í½«¬á ¡Ñ«»αÑñѽѡ«. Æá¬ªÑ
- ¬á¬ ¿ ó ß½πτáÑ ß LocalAlloc, ó맮ó LocalRealloc ¼«ªÑΓ »α¿óÑßΓ¿
- ¬ »ÑαѼÑΘÑ¡¿ε ¿ ßíα«ßπ í½«¬«ó »á¼∩Γ¿. ä½∩ »αÑñ«ΓóαáΘÑ¡¿∩ ßíα«ßá
- í½«¬«ó, óδ ¼«ªÑΓÑ π¬áºáΓ∞ º¡áτÑ¡¿Ñ LMEM_NODISCARD, ñ½∩
- »αÑñ«ΓóαáΘÑ¡¿∩ ßíα«ßá ¿ »ÑαѼÑΘÑ¡¿∩ ¼«ª¡« π¬áºáΓ∞ º¡áτÑ¡¿Ñ
- LMEM_NOCOMPACT.
-
- éδ ¼«ªÑΓÑ Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ LocalRealloc ñ½∩ ¿º¼Ñ¡Ñ¡¿∩
- áΓα¿íπΓ«ó í½«¬á ß LMEM_MOVEABLE ¡á LMEM_DISCARDABLE ¿ ¡á«í«α«Γ.
- ä½∩ φΓ«ú« óδ ñ«½ª¡δ π¬áºáΓ∞ LMEM_MODIFY:
-
- hLocalObject = LocalAlloc(32,LMEM_MOVEABLE)
- .
- .
-
- Windows 3.0/pg/3#3 = 33 =
-
- .
- hLocalObject = LocalRealloc(hLocalObject,
- 32,
- LMEM_MODIFY | LMEM_DISCARDABLE));
-
- éδ ¡Ñ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ LMEM_MODIFY ß LocalRealloc ñ½∩
- ¿º¼Ñ¡Ñ¡¿∩ áΓα¿íπΓ«ó í½«¬á ß ¿ ¡á LMEM_FIXED.
-
- Äßó«í«ªñÑ¡¿Ñ ¿ ßíα«ß í½«¬«ó ½«¬á½∞¡«⌐ »á¼∩Γ¿.
-
- öπ¡¬µ¿¿ Windows LocalDiscard ¿ LocalFree »«ºó«½∩εΓ
- ß««ΓóÑΓßΓóÑ¡¡« ßíα«ß¿Γ∞ ¿ «ßó«í«ñ¿Γ∞ í½«¬ ½«¬á½∞¡«⌐ »á¼∩Γ¿.
-
- îѪñπ ßíα«ß«¼ ¿ «ßó«í«ªñÑ¡¿Ñ¼ í½«¬á ¿¼ÑÑΓß∩ «Γ½¿τ¿Ñ. Åα¿
- ßíα«ßÑ ½«¬á½∞¡«ú« í½«¬á Ñú« ß«ñÑন¼«Ñ πñá½∩ÑΓß∩ ¿º ½«¬á½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿, «ñ¡á¬« ñÑß¬α¿»Γ«α φΓ«ú« í½«¬á
- «ßΓáÑΓß∩ ¬«ααÑ¬Γ¡δ¼. Åα¿ «τ¿ßΓ¬Ñ í½«¬á »á¼∩Γ¿ πñá½∩ÑΓß∩ ¡Ñ
- Γ«½∞¬« Ñú« ß«ñÑন¼«Ñ, ¡« ¿ Ñú« ñÑß¬α¿»Γ«α ¿º Γáí½¿µδ
- ¬«ααÑ¬Γ¡δσ ñÑß¬α¿»Γ«α«ó. ü½«¬ ½«¬á½∞¡«⌐ »á¼∩Γ¿ ¼«ªÑΓ íδΓ∞
- ßíα«ΦÑ¡ ¿½¿ πñá½Ñ¡ Γ«½∞¬« ó Γ«¼ ß½πτáÑ, Ñß½¿ «¡ ¡Ñ
- ºáí½«¬¿α«óá¡.
-
- àß½¿ óδ ß«í¿αáÑΓÑß∞ ó ñá½∞¡Ñ⌐ΦѼ ¿ß»«½∞º«óáΓ∞ ñÑß¬α¿»Γ«α,
- Γ« óδ ¼«ªÑΓÑ ¡Ñ «τ¿ΘáΓ∞ í½«¬, á ßíα«ß¿Γ∞ Ñú«. ùΓ«íδ »«óΓ«α¡«
- ¿ß»«½∞º«óáΓ∞ ñÑß¬α¿»Γ«α ßíα«ΦÑ¡¡«ú« í½«¬á, π¬áª¿ΓÑ Ñú« ó ó맮óÑ
- Σπ¡¬µ¿¿ LocalRealloc, ó¼ÑßΓÑ ß ¡Ñ¡π½Ñóδ¼ º¡áτÑ¡¿Ñ¼ αẼÑαá
- ¡«ó«ú« í½«¬á. Åα¿ »«óΓ«α¡«¼ ¿ß»«½∞º«óá¡¿¿ ñÑß¬α¿»Γ«αá óδ
- ¿ß¬½ετáÑΓÑ ¡Ñ«íσ«ñ¿¼«ßΓ∞ «ßó«í«ªñáΓ∞ ßΓáαδ⌐ ¿ ß«ºñáóáΓ∞ ¡«óδ⌐
- ñÑß¬α¿»Γ«α. èα«¼Ñ φΓ«ú«, »«óΓ«α¡«Ñ ¿ß»«½∞º«óá¡¿Ñ ñÑß¬α¿»Γ«αá
- »«ºó«½∩ÑΓ óá¼ »ÑαÑñ »«»δΓ¬«⌐ óδñѽ¿Γ∞ í½«¬ ½«¬á½∞¡«⌐ »á¼∩Γ¿
- «»αÑñѽ¿Γ∞ ñ«ßΓπ»¡δ⌐ «íΩѼ »á¼∩Γ¿.
-
- çἫαᪿóá¡¿Ñ »á¼∩Γ¿.
-
- éδ ¼«ªÑΓÑ óαѼѡ¡« ºá¼«α«º¿Γ∞ ½«¬á½∞¡πε »á¼∩Γ∞ ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ LocalFreeze ñ½∩ úáαá¡Γ¿¿ Γ«ú«, τΓ«íδ íδΓ∞ πóÑαÑ¡¡δ¼ ó
- Γ«¼, τΓ« »α¿ »«ß½ÑñπεΘ¿σ ó맮óáσ LocalAlloc ¿ LocalRealloc
- ¡¿¬á¬¿Ñ í½«¬¿ ¡Ñ íπñπΓ »«óΓ«α¡« óδñÑ½Ñ¡δ ¿½¿ ßíα«ΦÑ¡δ. é맮ó
- LocalFreeze á¡á½«ú¿τÑ¡ π¬áºá¡¿ε ó »«ß½ÑñπεΘ¿σ ó맮óáσ
- LocalAlloc ¿ LocalRealloc áΓα¿íπΓá LMEM_NOCOMPACT.
-
- éδ «Γ¼Ñ¡∩ÑΓÑ ºá¼«αᪿóá¡¿Ñ »á¼∩Γ¿ Σπ¡¬µ¿Ñ⌐ LocalMelt.
-
- Å«½πτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ « í½«¬Ñ ½«¬á½∞¡«⌐ »á¼∩Γ¿.
-
- öπ¡¬µ¿¿ LocalSize ¿ LocalFlags »αÑñ«ßΓáó½∩εΓ óá¼
- ¿¡Σ«α¼áµ¿ε « í½«¬áσ ½«¬á½∞¡«⌐ »á¼∩Γ¿. LocalSize ó«ºóαáΘáÑΓ
- αẼÑα í½«¬á. LocalFlags «»αÑñѽ∩ÑΓ, ßíαáßδóáѼδ⌐ ½¿ í½«¬, ¿
- Ñß½¿ ßíαáßδóáѼδ⌐, Γ« ßíα«ΦÑ¡ ½¿ «¡. LocalFlags Γá¬ªÑ ß««íΘáÑΓ
- ß«ßΓ«∩¡¿Ñ ßτÑΓτ¿¬á í½«¬¿α«ó«¬ ñá¡¡«ú« í½«¬á.
-
-
- Windows 3.0/pg/3#3 = 34 =
-
- 16.2.3 ô»αáó½Ñ¡¿Ñ í½«¬á¼¿ ú½«áí½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- ñá¡¡δσ.
-
- ⽫íá½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿ »αÑñßΓáó½∩ÑΓ ß«í«⌐
- ß¿ßΓѼ¡δ⌐ αÑßπαß, ¬«Γ«αδ⌐ αáºñѽ∩ÑΓß∩ αáº¡δ¼¿ »α¿¬½áñ¡δ¼¿
- »α«úαἼἿ. Åਪ½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ºá»α«ß¿Γ∞ Windows
- óδñѽ¿Γ∞ í½«¬ »á¼∩Γ¿ ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ GlobalAlloc. Windows ¿ß»«½∞ºπÑΓ φΓπ ªÑ Σπ¡¬µ¿ε
- ñ½∩ óδñѽѡ¿∩ »á¼∩Γ¿ ñ½∩ ßó«¿σ ß«íßΓóÑ¡¡δσ ¡πªñ. Æá¬¿¼ «íαẫ¼,
- ß »«¼«Θ∞ε Σπ¡¬µ¿⌐, «»¿ßá¡¡δσ ó ñá¡¡«¼ αáºñѽÑ, óδ »«½πτáÑΓÑ
- ñ«ßΓπ» ¬ 󫺼«ª¡«ßΓ∩¼ ß¿ßΓѼδ π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε Windows,
- ¬«Γ«αδÑ Windows ¿ß»«½∞ºπÑΓ ñ½∩ ß«íßΓóÑ¡¡δσ ¡πªñ. èα«¼Ñ φΓ«ú«,
- φΓ¿ Σπ¡¬µ¿¿ »«ºó«½∩εΓ óáΦÑ⌐ »α«úαá¼¼Ñ ¬«¡¬πα¿α«óáΓ∞ ¿½¿
- ß«Γαπñ¡¿τáΓ∞ ß ßἫ⌐ ß¿ßΓѼ«⌐ ¡á Γ«¼ ªÑ πα«ó¡Ñ »α¿ó¿½Ñú¿⌐.
- ìÑ»αáó¿½∞¡«Ñ ¿ß»«½∞º«óá¡¿Ñ φΓ¿σ »α¿ó¿½Ñú¿⌐ π¼Ñ¡∞ΦáÑΓ
- 󫺼«ª¡«ßΓ¿ óáΦÑ⌐ »α«úαá¼¼δ »« óºá¿¼«ñÑ⌐ßΓó¿ε ß Windows ¿ ß
- ñαπú¿¼¿ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ.
-
- æ½ÑñπεΘ¿Ñ «»¿ßá¡¿∩ »«¼«úπΓ óá¼ «»αÑñѽ¿Γ∞, úñÑ ½πτΦÑ
- óδñѽ∩Γ∞ í½«¬ »á¼∩Γ¿ ó ¬áªñ«¼ ¬«¡¬αÑΓ¡«¼ ß½πτáÑ: ó ú½«íá½∞¡«⌐
- ¿½¿ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
- - éδ ñ«½ª¡δ áñαÑß«óáΓ∞ í½«¬, óδñѽѡ¡δ⌐ ó ½«¬á½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿, ß »«¼«Θ∞ε í½¿ª¡Ñú«
- π¬áºáΓѽ∩ (»«ß½Ñ Ñú« αáºαÑΦÑ¡¿∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- LocalLock). æ ñαπú«⌐ ßΓ«α«¡δ, óδ ñ«½ª¡δ áñαÑß«óáΓ∞ í½«¬,
- óδñѽѡ¡δ⌐ ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿, ß
- »«¼«Θ∞ε ñá½∞¡Ñú« π¬áºáΓѽ∩ (»«ß½Ñ Ñú« αáºαÑΦÑ¡¿∩ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ GlobalLock).
-
- - 﫬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ ñá¡¡δσ «Γ¡«ß¿Γѽ∞¡« ¼á½δ⌐
- αÑßπαß, »«ß¬«½∞¬π «¡á αẼÑΘáÑΓß∩ ó áóΓ«¼áΓ¿τÑ߬«¼
- ßÑú¼Ñ¡ΓÑ ñá¡¡δσ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, αẼÑα ¬«Γ«α«ú«
- «úαá¡¿τÑ¡ 64è. ÇóΓ«¼áΓ¿τÑ߬¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ ¬α«¼Ñ
- ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ ó¬½ετáÑΓ ßΓѬ ¿
- ßΓáΓ¿τÑ߬¿Ñ ñá¡¡δÑ. Å«φΓ«¼π ú½«íá½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩
- «í½áßΓ∞ ñá¡¡δσ ¡á¼¡«ú« í«½∞ΦÑ.
-
- àß½¿ «íΩÑ¬Γ »á¼∩Γ¿ óσ«ñ¿Γ ó ΓѬπΘ¿⌐ "αáí«τ¿⌐ ¡áí«α", Γ« óδ
- ñ«½ª¡δ »«»δΓáΓ∞ß∩ αáß»«½«ª¿Γ∞ Ñú« ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐
- «í½áßΓ¿ »á¼∩Γ¿ ß ΓѼ, τΓ«íδ ¿ß»«½∞º«óáΓ∞ »αÑ¿¼πΘÑßΓóá í½¿ª¡Ñ⌐
- áñαÑßᵿ¿. é ΓѬπΘ¿⌐ "αáí«τ¿⌐ ¡áí«α" óσ«ñ∩Γ ñá¡¡δÑ, ¬ ¬«Γ«αδ¼
- óδ ñ«½ª¡δ τáßΓ« «íαáΘáΓ∞ß∩ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ ñ½¿Γѽ∞¡δσ
- «»Ñαᵿ⌐. ÄíΩѬΓδ, ñ«ßΓπ» ¬ ¬«Γ«αδ¼ »α«¿ºó«ñ¿Γß∩ αѪÑ,
- »«¼ÑΘáεΓß∩ ó ú½«íá½∞¡πε ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞ ñá¡¡δσ. é
- ¡Ñ¬«Γ«αδσ »α¿¬½áñ¡δσ »α«úαá¼¼áσ ñ«ó«½∞¡« τπóßΓó¿Γѽѡ «í¼Ñ¡
- ñá¡¡δ¼¿ ¼Ñªñπ ú½«íá½∞¡«⌐ ¿ ½«¬á½∞¡«⌐ «í½áßΓ∩¼¿ »á¼∩Γ¿ »α¿
- ¿º¼Ñ¡Ñ¡¿¿ "αáí«τÑú« ¡áí«αá".
-
- Åα¿ αáºαáí«Γ¬Ñ ßΓαπ¬Γπαδ «íΩÑ¬Γ«ó ú½«íá½∞¡«⌐ »á¼∩Γ¿ óá¼
- τáßΓ« »α¿σ«ñ¿Γß∩ óδí¿αáΓ∞ ¼Ñªñπ 󫺼«ª¡«ßΓ∞ε αáºí¿Γ∞ «íΩÑ¬Γ ¡á
- φ½Ñ¼Ñ¡Γáα¡δÑ »«ñ«íΩѬΓδ ¿½¿ 󫺼«ª¡«ßΓ∞ε ß«Ññ¿¡¿Γ∞ ¡Ñí«½∞Φ¿Ñ
- «íΩѬΓδ ó «ñ¿¡ í«½ÑÑ ß½«ª¡δ⌐. Åα¿ óδí«αÑ, óδ ñ«½ª¡δ »α¿¡¿¼áΓ∞
- ó« ó¡¿¼á¡¿Ñ ß½ÑñπεΘÑÑ:
-
-
- Windows 3.0/pg/3#3 = 35 =
-
- - èáªñδ⌐ ú½«íá½∞¡δ⌐ «íΩÑ¬Γ ΓαÑíπÑΓ ñ«»«½¡¿Γѽ∞¡« »α¿¼Ñα¡«
- 20 íá⌐Γ.
-
- - ⽫íá½∞¡δÑ «íΩѬΓδ óδα«ó¡Ñ¡δ »« úαá¡¿µÑ αáºñѽ«ó »« 32
- íá⌐Γá. ÅÑαóδÑ 16 íá⌐Γ ºáαѺÑαó¿α«óá¡δ »«ñ «íδτ¡δ⌐
- ºáú«½«ó«¬ í½«¬á »á¼∩Γ¿. Åα¿ αáí«ΓÑ Windows ó ßΓá¡ñáαΓ¡«⌐
- ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ ¿½¿ ó ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿
- αáßΦ¿αÑ¡¡«ú« αѪ¿¼á »α«µÑßß«αá 80386 τ¿ß½« ñÑß¬α¿»Γ«α«ó
- »á¼∩Γ¿ «úαá¡¿τÑ¡« 8192, ¿º ¬«Γ«αδσ Γ«½∞¬« τáßΓ∞
- »α¿¡áñ½Ñª¿Γ ¬áªñ«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ.
-
- é «ß¡«ó¡«¼, óá¼ ß½ÑñπÑΓ ¿ºíÑúáΓ∞ óδñѽѡ¿∩ ¡Ñí«½∞Φ¿σ
- «íΩÑ¬Γ«ó. Æá¬«⌐ «íΩÑ¬Γ (128 ¿½¿ ¼Ñ¡∞ΦÑ íá⌐Γ) ¡ÑßÑΓ ÑΘÑ
- ñ«»«½¡¿Γѽ∞¡«⌐ ¿¡Σ«α¼áµ¿¿ 15 »α«µÑ¡Γ«ó, »½εß «ßΓáΓ«¬, »α¿¼Ñα¡«
- 16 íá⌐Γ, ¬«úñá αẼÑα í½«¬á ¡Ñ ∩ó½∩ÑΓß∩ ¬αáΓ¡δ¼ 32. ¥Γá
- ñ«»«½¡¿Γѽ∞¡á∩ ¿¡Σ«α¼áµ¿∩ ¼«ªÑΓ íδΓ∞ óδα«ó¡Ñ¡á, ¡« «¡á óßÑúñá
- »α¿ßπΓßΓóπÑΓ. éδ ñ«½ª¡δ «ß«íÑ¡¡« ¿ºíÑúáΓ∞ óδñѽѡ¿∩ í«½∞Φ«ú«
- τ¿ß½á (¡Ñ߬«½∞¬« ß«ΓÑ¡) ¼Ñ½¬¿σ «íΩÑ¬Γ«ó, Ñß½¿ ¿σ ¼«ª¡«
- «íΩÑñ¿¡¿Γ∞ ó ¡Ñ߬«½∞¬« í«½∞Φ¿σ «íΩÑ¬Γ«ó. ¥Γ« ¡Ñ Γ«½∞¬«
- π¼Ñ¡∞ΦáÑΓ «íΩѼ ñ«»«½¡¿Γѽ∞¡«⌐ ¿¡Σ«α¼áµ¿¿, ¡« Γá¬ªÑ ¿ß¬½ετáÑΓ
- ¡Ñ«íσ«ñ¿¼«ßΓ∞ ¿ß»«½∞º«óá¡¿∩ í«½∞Φ«ú« τ¿ß½á ñÑß¬α¿»Γ«α«ó ¿º
- «úαá¡¿τÑ¡¡«ú« ¡áí«αá.
-
- Åα¿ πτÑΓÑ óδΦÑ»α¿óÑñÑ¡¡δσ ºá¼Ñτá¡¿⌐ óδñѽѡ¿Ñ í½«¬«ó
- »á¼∩Γ¿ ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ á¡á½«ú¿τ¡«
- αáí«ΓÑ ß í½«¬á¼¿ »á¼∩Γ¿ ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿. ô»αáó½Ñ¡¿Ñ ½«¬á½∞¡«⌐ »á¼∩Γ∞ε «»¿ßá¡« ó αáºñÑ½Ñ 16.2.2,
- "ô»αáó½Ñ¡¿Ñ í½«¬á¼¿ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿".
-
- é ß½ÑñπεΘ¿σ αáºñѽáσ »α¿óÑñÑ¡« «»¿ßá¡¿Ñ Σπ¡¬µ¿⌐ π»αáó½Ñ¡¿∩
- ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ »á¼∩Γ∞ε.
-
- éδñѽѡ¿Ñ í½«¬á ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
- öπ¡¬µ¿∩ GlobalAlloc óδñѽ∩ÑΓ í½«¬ »á¼∩Γ¿ π¬áºá¡¡«ú«
- αẼÑαá ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿. Windows
- π»αáó½∩ÑΓ í½«¬á¼¿ »á¼∩Γ¿ ó ß««ΓóÑΓßΓó¿¿ ß Γ«⌐ ªÑ
- ¬½áßß¿Σ¿¬áµ¿Ñ⌐, τΓ« ¿ ó ½«¬á½∞¡«⌐ »á¼∩Γ¿, Γ.Ñ. í½«¬¿ ¼«úπΓ íδΓ∞
- Σ¿¬ß¿α«óá¡¡δÑ, »ÑαѼÑΘáѼδÑ ¿ ßíαáßδóáѼδÑ. Æá¬¿¼ «íαẫ¼,
- ¼«úπΓ íδΓ∞ ºáñá¡δ ß««ΓóÑΓßΓóπεΘ¿Ñ Σ½áú¿:
-
- - GMEM_FIXED
-
- - GMEM_MOVEABLE
-
- - GMEM_MOVEABLE ¿ LMEM_DISCARDABLE
-
- ä½∩ π»αáó½Ñ¡¿∩ ú½«íá½∞¡«⌐ »á¼∩Γ∞ε ¿ß»«½∞ºπÑΓß∩ ëà ªÑ
- ¼Ñσá¡¿º¼, τΓ« ¿ ñ½∩ π»αáó½Ñ¡¿∩ ½«¬á½∞¡«⌐ »á¼∩Γ∞ε. Æá¬¿¼
- «íαẫ¼, óδ ¼«ªÑΓÑ π¬áºáΓ∞ »α¿ ó맮óÑ GlobalAlloc áΓα¿íπΓδ
- GMEM_NODISCARD ¿ GMEM_NOCOMPACT. 漫Γα¿ΓÑ «»¿ßá¡¿Ñ
- LMEM_NOCOMPACT ¿ LMEM_NODISCARD ó αáºñÑ½Ñ "éδñѽѡ¿Ñ »á¼∩Γ¿ ó
- ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿".
-
- Windows 3.0/pg/3#3 = 36 =
-
-
- GlobalAlloc ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α óδñѽѡ¡«ú« ó ú½«íá½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ í½«¬á. àß½¿ ñ½∩ πñ«ó½ÑΓó«αÑ¡¿∩
- ºá»α«ßá ¡Ññ«ßΓáΓ«τ¡« »á¼∩Γ¿, GlobalAlloc ó«ºóαáΘáÑΓ NULL.
- ū߬«½∞¬π ¡Ñ úáαá¡Γ¿απÑΓß∩ πñ«ó½ÑΓó«αÑ¡¿Ñ ºá»α«ßá, Γ« óδ ñ«½ª¡δ
- »α«óÑα∩Γ∞ ó«ºóαáΘáѼ«Ñ Σπ¡¬µ¿Ñ⌐ GlobalAlloc º¡áτÑ¡¿Ñ.
- ü«½∞Φ¿¡ßΓóπ «»¿ßá¡¡δσ ó ß½ÑñπεΘ¿σ αáºñѽáσ Σπ¡¬µ¿⌐ ΓαÑíπÑΓß∩
- ñá¡¡δ⌐ ñÑß¬α¿»Γ«α.
-
- éδñѽѡ¿Ñ í½«¬«ó ú½«íá½∞¡«⌐ »á¼∩Γ¿ ¿º DLL »α¿ αáí«ΓÑ »«ñ
- ¬«¡Σ¿úπαᵿÑ⌐ »á¼∩Γ¿ ß EMS.
-
- Å« π¼«½τá¡¿ε Windows πñ«ó½ÑΓó«α∩ÑΓ ºá»α«ß DLL ¡á óδñѽѡ¿Ñ
- »á¼∩Γ¿ ó ºáó¿ß¿¼«ßΓ¿ «Γ Γ«ú«, ¬á¬¿¼ «íαẫ¼ íδ½á ºáúαπªÑ¡á
- í¿í½¿«ΓѬá. àß½¿ í¿í½¿«ΓѬá íδ½á ºáúαπªÑ¡á ∩ó¡« ß »«¼«Θ∞ε
- ó맮óá Σπ¡¬µ¿¿ LoadModule, Γ« Windows óδñѽ∩ÑΓ ú½«íá½∞¡δÑ í½«¬¿
- ó »á¼∩Γ¿, ¡áσ«ñ∩ΘÑ⌐ß∩ ¡¿ªÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩. ä½∩ í¿í½¿«ΓѬ,
- ºáúαπªÑ¡¡δσ ¡Ñ∩ó¡« «»ÑαáΓ«α«¼ IMPORTS ó Σá⌐½Ñ «»¿ßá¡¿∩ αÑßπαß«ó
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ (.DEF), Windows óδñѽ∩ÑΓ í½«¬ ú½«íá½∞¡«⌐
- »á¼∩Γ¿ óδΦÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩ (Ñß½¿ Windows αáí«ΓáÑΓ ó αѪ¿¼Ñ
- ß í«½∞Φ¿¼ ΣαÑ⌐¼«¼ «Γ«íαáªÑ¡¿∩). àß½¿ Windows αáí«ΓáÑΓ ó αѪ¿¼Ñ
- ß ¼á½δ¼ ΣαÑ⌐¼«¼ «Γ«íαáªÑ¡¿∩, ú½«íá½∞¡δÑ í½«¬¿ »á¼∩Γ¿ óδñѽ∩εΓß∩
- ¡¿ªÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩.
-
- ⽫íá½∞¡δÑ «íΩѬΓδ »á¼∩Γ¿, óδñѽѡ¡δÑ ¡¿ªÑ úαá¡¿µδ
- «Γ«íαáªÑ¡¿∩, ¼«úπΓ ß½πª¿Γ∞ »«¼Ñσ«⌐ ¡Ñ¬«Γ«αδ¼ Γ¿»á¼ í¿í½¿«ΓѬ,
- Γᬿ¼, ¡á»α¿¼Ñα, ¬á¬ ñαá⌐óÑα »α¿¡ΓÑαá, ¬«Γ«αδ¼ ¡Ñ«íσ«ñ¿¼δ
- í«½∞Φ¿Ñ íπΣÑαδ ñ½∩ ñá¡¡δσ. àß½¿ ¼ÑßΓ« »«ñ ¡¿σ íπñÑΓ óδñѽ∩Γ∞ß∩
- ¡¿ªÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩, Γ« φëà «úαá¡¿τÑ¡¡δ⌐ ß¿ßΓѼ¡δ⌐ αÑßπαß
- íπñÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ¡ÑφΣΣÑ¬Γ¿ó¡«. ä½∩ αÑΦÑ¡¿∩ φΓ«⌐ »α«í½Ñ¼δ óδ
- ¼«ªÑΓÑ ¬«¼»¿½¿α«óáΓ∞ óáΦπ DLL ß ¬½ετѼ -e ¬«¼»¿½∩Γ«αá αÑßπαß«ó
- RC. ¥Γ«Γ ¬½ετ »ÑαѬ½ετáÑΓ αẼÑΘÑ¡¿Ñ ú½«íá½∞¡δσ «íΩÑ¬Γ«ó »á¼∩Γ¿
- ß ¿ß»«½∞ºπѼ«ú« »« π¼«½τá¡¿ε αẼÑΘÑ¡¿∩ ¡¿ªÑ úαá¡¿µδ
- «Γ«íαáªÑ¡¿∩ ¡á αẼÑΘÑ¡¿Ñ óδΦÑ úαá¡¿µδ.
-
- ü¿í½¿«ΓѬ¿, ¬«¼»¿½¿απѼδÑ ß ¬½ετѼ -Ñ, ñ«½ª¡δ íδΓ∞
- ¡á»¿ßá¡δ ß πτÑΓ«¼ Γ«ú«, τΓ« »α¿ »ÑαѬ½ετÑ¡¿¿ ß ¬«¡ΓѬßΓá ºáñáτ¿
- ¿σ ú½«íá½∞¡δÑ «íΩѬΓδ íπñπΓ «Γ«íαáªÑ¡δ ó αáßΦ¿αÑ¡¡πε »á¼∩Γ∞.
- 髺¼«ª¡« í¿í½¿«ΓÑ¬Ñ ¡Ñ«íσ«ñ¿¼«, τΓ«íδ ¡Ñ¬«Γ«αδÑ ú½«íá½∞¡δÑ
- «íΩѬΓδ óßÑúñá ¡áσ«ñ¿½¿ß∞ ¡¿ªÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩, ñáªÑ ¬«úñá
- »α«¿ßσ«ñ¿Γ »ÑαѬ½ετÑ¡¿Ñ ¼Ñªñπ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ. é φΓ«¼
- ß½πτáÑ í¿í½¿«ΓÑ¬á ¼«ªÑΓ óδºóáΓ∞ Σπ¡¬µ¿ε GlobalAlloc c áΓα¿íπΓ«¼
- GMEM_NOT_BANKED.
-
- ü½«¬¿α«óá¡¿Ñ ¿ αáºí½«¬¿α«óá¡¿Ñ í½«¬«ó ó ú½«íá½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
- éδ ¼«ªÑΓÑ »«½πτ¿Γ∞ ñá½∞¡¿⌐ áñαÑß í½«¬á ó ú½«íá½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GlobalLock. é
- αÑá½∞¡«¼ αѪ¿¼Ñ φΓá Σπ¡¬µ¿∩ í½«¬¿απÑΓ í½«¬ »á¼∩Γ¿ ó
- «»αÑñѽѡ¡«¼ ¼ÑßΓÑ. é« óßÑσ αѪ¿¼áσ ñá¡¡á∩ Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ
- ñá½∞¡¿⌐ π¬áºáΓѽ∞, ñ½∩ ¬«Γ«α«ú« úáαá¡Γ¿απÑΓß∩, τΓ« ñ« ó맮óá
- GlobalUnlock «¡ «ßΓá¡ÑΓß∩ ¬«ααÑ¬Γ¡δ¼.
-
- Windows 3.0/pg/3#3 = 37 =
-
-
- é αÑá½∞¡«¼ αѪ¿¼Ñ Σπ¡¬µ¿∩ GlobalLock óδ¡πªñÑ¡á í½«¬¿α«óáΓ∞
- «íΩÑ¬Γ ó »á¼∩Γ¿, τΓ«íδ Ñú« π¬áºáΓѽ∞ «ßΓáóá½ß∩ ¬«ααÑ¬Γ¡δ¼ ñ«
- ó맮óá GlobalUnlock. ū߬«½∞¬π »α¿ φΓ«¼ »α«¿ßσ«ñ¿Γ
- ñÑ⌐ßΓó¿Γѽ∞¡«Ñ í½«¬¿α«óá¡¿Ñ «íΩѬΓá, Γ« GlobalLock πóѽ¿τ¿óáÑΓ
- ßτÑΓτ¿¬ í½«¬¿α«ó«¬ «íΩѬΓá. ¥Γ«Γ ßτÑΓτ¿¬ »«ºó«½∩ÑΓ
- úáαá¡Γ¿α«óáΓ∞, τΓ« «íΩÑ¬Γ ¡Ñ íπñÑΓ ßíα«ΦÑ¡ ¿½¿ «τ¿ΘÑ¡ ó Γ«
- óαѼ∩, ¬«úñá «¡ ¿ß»«½∞ºπÑΓß∩.
-
- é ºáΘ¿ΦÑ¡¡«¼ αѪ¿¼Ñ (ßΓá¡ñáαΓ¡«¼ ¿½¿ αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ
- »α«µÑßß«αá 80386) Windows Σ¿¬ß¿απÑΓ «íΩÑ¬Γ ó »á¼∩Γ¿ Γ«½∞¬« ó
- Γ«¼ ß½πτáÑ, Ñß½¿ «¡ ßíαáßδóáѼδ⌐. ô¬áºáΓѽ∞ «ßΓáÑΓß∩
- ¬«ααÑ¬Γ¡δ¼, »«¬á í½«¬ »ÑαѼÑΘáÑΓß∩ ó ½¿¡Ñ⌐¡«⌐ »á¼∩Γ¿. ū߬«½∞¬π
- Windows ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ¡Ñ í½«¬¿απÑΓ «íΩÑ¬Γ ó »á¼∩Γ¿, Γ« ó
- ºáΘ¿ΘÑ¡¡«¼ αѪ¿¼Ñ GlobalLock ¡Ñ πóѽ¿τ¿óáÑΓ ßτÑΓτ¿¬á í½«¬¿α«ó«¬
- ñ½∩ ¡ÑßíαáßδóáѼδσ «íΩÑ¬Γ«ó. GlobalUnlock π¼Ñ¡∞ΦáÑΓ ßτÑΓτ¿¬
- í½«¬¿α«ó«¬, Γ«½∞¬«, Ñß½¿ Σπ¡¬µ¿∩ GlobalLock Ñú« πóѽ¿τ¿½á.
-
- Äñ¡á¬«, óδ óßÑ αáó¡« »α¿ αáí«ΓÑ ó ºáΘ¿ΘÑ¡¡«¼ αѪ¿¼Ñ ñ«½ª¡δ
- óδºóáΓ∞ Σπ¡¬µ¿ε GlobalUnlock »«ß½Ñ Γ«ú«, ¬á¬ π¬áºáΓѽ∞,
- ó«ºóαáΘáѼδ⌐ Σπ¡¬µ¿Ñ⌐ GlobalLock, óá¼ í«½∞ΦÑ ¡Ñ ¡πªÑ¡.
-
- èα«¼Ñ Σπ¡¬µ¿⌐ GlobalLock ¿ GlobalUnloc ¡á ß«ßΓ«∩¡¿Ñ
- ßτÑΓτ¿¬á í½«¬¿α«ó«¬ ó½¿∩εΓ ß½ÑñπεΘ¿Ñ Σπ¡¬µ¿¿:
-
- ôóѽ¿τ¿óáεΓ ß«ñÑন¼«Ñ ßτÑΓτ¿¬á í½«¬¿α«ó«¬
- ──────────────────────────────────────────
- GlobalFix
- GlobalWire
- LockSegment
-
- ô¼Ñ¡∞ΦáεΓ ß«ñÑন¼«Ñ ßτÑΓτ¿¬á í½«¬¿α«ó«¬
- ──────────────────────────────────────────
- GlobalUnfix
- GlobalUnWire
- UnlockSegment
-
- Ä»¿ßá¡¿Ñ φΓ¿σ Σπ¡¬µ¿⌐ ß¼«Γα¿ΓÑ ó æ»αáó«τ¡«¼ απ¬«ó«ñßΓóÑ,
- Γ«¼ 1. öπ¡¬µ¿∩ GlobalFlags ó«ºóαáΘáÑΓ ß«ßΓ«∩¡¿Ñ ßτÑΓτ¿¬á
- í½«¬¿α«ó«¬, πßΓá¡«ó½Ñ¡¡«Ñ φΓ¿¼¿ Σπ¡¬µ¿∩¼¿.
-
- Éá¡∞ΦÑ í佫 ߬áºá¡«, τΓ« ñ½∩ ½«¬á½∞¡δσ «íΩÑ¬Γ«ó,
- óδñѽѡ¡δσ ß áΓα¿íπΓ«¼ LMEM_FIXED, ¡Ñ ¡πª¡« »«½πτáΓ∞ ¿σ áñαÑß ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ LocalLock. Äñ¡á¬« φΓ« ¡Ñ «Γ¡«ß¿Γß∩ ¬ ú½«íá½∞¡δ¼
- Σ¿¬ß¿α«óá¡¡δ¼ «íΩѬΓá¼. ä½∩ »«½πτÑ¡¿∩ áñαÑßá Σ¿¬ß¿α«óá¡¡«ú«
- «íΩѬΓá óßÑ αáó¡« ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε GlobalLock.
-
- æ½ÑñπεΘ¿⌐ »α¿¼Ñα ¿½½εßΓα¿απÑΓ »«½πτÑ¡¿Ñ áñαÑßá ú½«íá½∞¡«ú«
- «íΩѬΓá.
-
- HANDLE hGlobalObject;
- LPSTR lpGlobalObject;
-
-
- Windows 3.0/pg/3#3 = 38 =
-
- if(hGlobalObject = GlobalAlloc(GMEM_MOVEABLE,1024))
- {
- if(lpGlobalObject = GlobalLock(hGlobalObject))
- {
- /* lpGlobalObject ¿ß»«½∞ºπÑΓß∩ ¬á¬ ñá½∞¡¿⌐ π¬áºá-
- Γѽ∞ ¡á «íΩÑ¬Γ ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿ */
- .
- .
- .
- GlobalUnlock(hGlobalObject);
- else
- {
- /* ÉÑᬵ¿∩ ¡á ¡Ñ󫺼«ª¡«ßΓ∞ í½«¬¿α«ó¬¿ */
- }
- }
- else
- {
- /* ìÑ󫺼«ª¡« óδñѽ¿Γ∞ ¼ÑßΓ« »«ñ 1024 íá⌐Γá */
- }
-
- àß½¿ óδ óδñѽ∩ÑΓÑ «íΩѬΓ, αẼÑα ¬«Γ«α«ú« αáóÑ¡ ¿½¿ í«½∞ΦÑ
- 64è, óδ ñ«½ª¡δ ∩ó¡« «»αÑñѽ¿Γ∞ π¬áºáΓѽ∞, ó«ºóαáΘáѼδ⌐
- GlobalLock, ¬á¬ huge. ì¿ªÑ »α¿óÑñÑ¡ »α¿¼Ñα óδñѽѡ¿∩ í½«¬á
- αẼÑα«¼ 128è:
-
- HANDLE hGlobalObject;
- char huge * hpGlobalObject;
-
- if(hGlobalObject = GlobalAlloc(GMEM_MOVEABLE,0x20000L))
- {
- if(hpGlobalObject = GlobalLock(hGlobalObject))
- {
- /* hpGlobalObject ¿ß»«½∞ºπÑΓß∩ ¬á¬ ñá½∞¡¿⌐ π¬áºá-
- Γѽ∞ ¡á «íΩÑ¬Γ ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿ */
- .
- .
- .
- GlobalUnlock(hGlobalObject);
- else
- {
- /* ÉÑᬵ¿∩ ¡á ¡Ñ󫺼«ª¡«ßΓ∞ í½«¬¿α«ó¬¿ */
- }
- }
- else
- {
- /* ìÑ󫺼«ª¡« óδñѽ¿Γ∞ ¼ÑßΓ« »«ñ í½«¬ αẼÑα«¼ 128è */
- }
-
- 꺼ѡѡ¿Ñ í½«¬á ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
- éδ ¼«ªÑΓÑ ¿º¼Ñ¡¿Γ∞ αẼÑα ¿ áΓα¿íπΓδ ú½«íá½∞¡«ú« í½«¬á »α¿
-
- Windows 3.0/pg/3#3 = 39 =
-
- ß«σαá¡Ñ¡¿¿ Ñú« ß«ñÑন¼«ú« ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GlobalRealloc.
- àß½¿ óδ π¬áªÑΓÑ ¼Ñ¡∞Φ¿⌐ αẼÑα, Windows «íαѪÑΓ í½«¬. àß½¿ óδ
- π¬áªÑΓÑ í«½∞Φ¿⌐ αẼÑα ¿ áΓα¿íπΓ GMEM_ZEROINIT, Γ«
- ñ«»«½¡¿Γѽ∞¡á∩ τáßΓ∞ íπñÑΓ ºá»«½¡Ñ¡á ¡π½∩¼¿. æ »«¼«Θ∞ε
- áΓα¿íπΓ«ó GMEM_DISCARD ¿ GMEM_NOCOMPACT óδ ºá»αÑΓ¿ΓÑ Windows
- ßíαáßδóáΓ∞ ¿ »ÑαѼÑΘáΓ∞ í½«¬¿ ñ½∩ πñ«ó½ÑΓó«αÑ¡¿∩ ºá»α«ßá
- GlobalRealloc.
-
- èα«¼Ñ φΓ«ú«, ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GlobalRealloc óδ ¼«ªÑΓÑ
- ¿º¼Ñ¡¿Γ∞ áΓα¿íπΓδ í½«¬á ß« ßíαáßδóáѼ«ú« ¡á ¡ÑßíαáßδóáѼδ⌐ ¿
- ¡á«í«α«Γ. é «Γ½¿τ¿Ñ «Γ LocalRealloc, óδ ¼«ªÑΓÑ ¿º¼Ñ¡¿Γ∞ áΓα¿íπΓ
- í½«¬á ß GMEM_FIXED ¡á GMEM_MOVEABLE ¿½¿ GMEM_DISCARDABLE.
- Äñ¡á¬« óδ ¡Ñ ¼«ªÑΓÑ ¿º¼Ñ¡¿Γ∞ áΓα¿íπΓδ ßíαáßδóáѼ«ú« ¿½¿
- »ÑαѼÑΘáѼ«ú« í½«¬á ¡á GMEM_FIXED. ä½∩ ¿º¼Ñ¡Ñ¡¿∩ áΓα¿íπΓ«ó
- í½«¬á ú½«íá½∞¡«⌐ »á¼∩Γ¿ »α¿ ó맮óÑ GlobalRealloc ¡Ñ«íσ«ñ¿¼«
- Γá¬ªÑ π¬áºáΓ∞ áΓα¿íπΓ GMEM_MODIFY. 漫Γα¿ΓÑ »α¿¼Ñα ó αáºñѽÑ
- 16.2.2, "꺼ѡѡ¿Ñ í½«¬á ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿".
-
- éδ ñ«½ª¡δ »α«∩ó½∩Γ∞ «ßë᫪¡«ßΓ∞ »α¿ πóѽ¿τÑ¡¿¿ αẼÑαá
- ú½«íá½∞¡«ú« í½«¬á, ¬«úñá Ñú« αẼÑα »ÑαÑßѬáÑΓ úαá¡¿µπ, ¬αáΓ¡πε
- 64è. Windows ¼«ªÑΓ óÑα¡πΓ∞ ¡«óδ⌐ ñÑß¬α¿»Γ«α ñ½∩ ¿º¼Ñ¡Ñ¡¡«ú«
- í½«¬á. ¥Γ«, ¡á»α¿¼Ñα, »α«¿ßσ«ñ¿Γ »α¿ ¿º¼Ñ¡Ñ¡¿¿ αẼÑαá í½«¬á ß
- 50è ¡á 70è ¿½¿ ß« 120è ñ« 130è. é ßΓá¡ñáαΓ¡«¼ αѪ¿¼Ñ φΓ«
- »α«¿ßσ«ñ¿Γ »α¿ »ÑαÑßÑτÑ¡¿¿ úαá¡¿µδ 65519 íá⌐Γ, Γ.Ñ. ¡á 17 íá⌐Γ
- ¼Ñ¡∞ΦÑ 64è.
-
- ū߬«½∞¬π »α¿ αáí«ΓÑ ó ßΓá¡ñáαΓ¡«¼ αѪ¿¼Ñ ¿ ó αáßΦ¿αÑ¡¡«¼
- αѪ¿¼Ñ »α«µÑßß«αá 80386 Windows ¿ß»«½∞ºπÑΓ ΓÑσ¡«½«ú¿ε
- "ßÑ½Ñ¬Γ«α«ó ó ßΓδ¬", Γ« »α¿ »ÑαÑßÑτÑ¡¿¿ αẼÑαá í½«¬á úαá¡¿µδ
- ¬αáΓ¡«⌐ 64è, Windows 󫺼«ª¡« «ßπΘÑßΓó¿Γ »«¿ß¬ í«½∞ΦÑú« ¡áí«αá
- ºáó¿ß¿¼δσ ßÑ½Ñ¬Γ«α«ó. àß½¿ Γᬫ⌐ ¡áí«α íπñÑΓ ¡á⌐ñÑ¡, Windows
- óÑα¡ÑΓ »Ñαóδ⌐ ßÑ½Ñ¬Γ«α φΓ«ú« ¡áí«αá. 漫Γα¿ΓÑ αáºñѽ 16.1.3,
- "êß»«½∞º«óá¡¿Ñ í«½∞Φ¿σ í½«¬«ó »á¼∩Γ¿ »α¿ αáí«ΓÑ ó ßΓá¡ñáαΓ¡«⌐
- ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿".
-
- æ½ÑñπεΘ¿⌐ »α¿¼Ñα »«¬áºδóáÑΓ, ¬á¬ ¡Ñ ¡áñ« πóѽ¿τ¿óáΓ∞
- αẼÑα í½«¬á ú½«íá½∞¡«⌐ »á¼∩Γ¿. ¥Γ«Γ ß»«ß«í »«ñσ«ñ¿Γ ñ½∩ αáí«Γδ
- ó íẫó«⌐ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ ¿ ó ¬«¡Σ¿úπαᵿ¿ EMS 4.0., ¡«
- ∩ó½∩ÑΓß∩ ¡ÑóÑα¡δ¼ »α¿ αáí«ΓÑ Windows ó ßΓá¡ñáαΓ¡«⌐ ¬«¡Σ¿úπαᵿ¿
- ¿ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ αáßΦ¿αÑ¡¡«ú« αѪ¿¼á »α«µÑßß«αá 80386.
-
- /* ìà æïàäôëÆà äÇììÄîô ÅÉêîàÉô */
- GlobalRealloc(hHugeObject,
- 0x20000L,
- GMEM_MOVEABLE);
-
- é »αÑñδñπΘѼ »α¿¼ÑαÑ ñÑß¬α¿»Γ«α hHudeObject ¼«ªÑΓ ßΓáΓ∞
- ¡Ñ¬«ααÑ¬Γ¡δ¼ ó ºáó¿ß¿¼«ßΓ¿ «Γ Γ«ú«, ¬á¬ Windows πñ«ó½ÑΓó«α¿½á
- ñá¡¡δ⌐ ºá»α«ß. ì¿ªÑ »α¿óÑñÑ¡ ¬«ααÑ¬Γ¡δ⌐ »α¿¼Ñα ñ½∩ óßÑσ
- ¬«¡Σ¿úπαᵿ⌐ »á¼∩Γ¿ Windows.
-
- /* æïàäôëÆà äÇììÄîô ÅÉêîàÉô */
-
- Windows 3.0/pg/3#3 = 40 =
-
-
- if(hTempHugeObject = GlobalRealloc(hHugeObject,
- 0x20000L,
- GMEM_MOVEABLE);
- {
- hHugeObject = hTempHugeObject;
- }
- else
- {
- /* «íΩÑ¬Γ ¡Ñ ¼«ªÑΓ íδΓ∞ óδñѽѡ */
- }
-
- é φΓ«¼ »α¿¼ÑαÑ ¿ß»«½∞ºπÑΓß∩ óαѼѡ¡δ⌐ ñÑß¬α¿»Γ«α
- hTempHugeObject, ¬«Γ«αδ⌐ »αÑñ«ΓóαáΘáÑΓ ºá¡ÑßÑ¡¿Ñ ó hHugeObject
- NULL, ó«ºóαáΘáѼ«ú« ó ß½πτáÑ ¡Ñπñáτ¡«ú« ºáóÑαΦÑ¡¿∩
- GlobalRealloc.
-
- Äτ¿ßΓ¬á ¿ ßíα«ß í½«¬«ó ú½«íá½∞¡«⌐ »á¼∩Γ¿.
-
- öπ¡¬µ¿¿ GlobalFree ¿ GlobalDiscard ¿ñÑ¡Γ¿τ¡δ Σπ¡¬µ¿∩¼
- LocalFree ¿ LocalDiscard ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« «¡¿ αáí«ΓáεΓ
- ß ú½«íá½∞¡δ¼¿ «íΩѬΓἿ, á ¡Ñ ½«¬á½∞¡δ¼¿. ÄíßπªñÑ¡¿Ñ αáí«Γδ
- Σπ¡¬µ¿⌐ LocalFree ¿ LocalDiscard óδ ¡á⌐ñÑΓÑ ó αáºñÑ½Ñ 16.2.2, ó
- »áαáúαáΣÑ "Äτ¿ΘÑ¡¿Ñ ¿ ßíα«ß í½«¬«ó ½«¬á½∞¡«⌐ »á¼∩Γ¿".
-
- Å«½πτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ « í½«¬áσ ú½«íá½∞¡«⌐ »á¼∩Γ¿.
-
- öπ¡¬µ¿¿ GlobalSize ¿ GlobalFlags »αÑñ«ßΓáó½∩εΓ óá¼
- ¿¡Σ«α¼áµ¿ε « í½«¬áσ ú½«íá½∞¡«⌐ »á¼∩Γ¿. GlobalSize ó«ºóαáΘáÑΓ
- αẼÑα í½«¬á. GlobalFlags «»αÑñѽ∩ÑΓ, ßíαáßδóáѼδ⌐ ½¿ í½«¬, ¿
- Ñß½¿ ßíαáßδóáѼδ⌐, Γ« ßíα«ΦÑ¡ ½¿ «¡. Ä¡á Γá¬ªÑ «»αÑñѽ∩ÑΓ, íδ½
- ½¿ í½«¬ óδñѽѡ ß áΓα¿íπΓἿ GMEM_DDESHARE ¿½¿ GMEM_NOT_BANKED.
-
- ü½«¬¿α«óá¡¿Ñ í½«¬«ó ú½«íá½∞¡«⌐ »á¼∩Γ¿ ¡á ñ½¿Γѽ∞¡δ⌐
- »Ñα¿«ñ.
-
- è«úñá óδ óδºδóáÑΓÑ GLobalLock ñ½∩ »αÑñ«ΓóαáΘÑ¡¿∩
- »ÑαѼÑΘÑ¡¿∩ »ÑαѼÑΘáѼ«ú« «íΩѬΓá ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐
- «í½áßΓ¿ »á¼∩Γ¿, óδ π¼Ñ¡∞ΦáÑΓÑ φΣΣÑ¬Γ¿ó¡«ßΓ∞ π»αáó½Ñ¡¿∩ Windows
- «ßΓá½∞¡δ¼¿ «íΩѬΓἿ ó »á¼∩Γ¿. ä«»π߬áÑΓß∩ í½«¬¿α«óá¡¿Ñ «íΩѬΓá
- Γ«½∞¬« ¡á ¬«α«Γ¬¿⌐ »α«¼ÑªπΓ«¬ óαѼѡ¿. ä½∩ í½«¬¿α«óá¡¿∩ «íΩѬΓá
- ¡á ñ½¿Γѽ∞¡«Ñ óαѼ∩ ó¼ÑßΓ« Σπ¡¬µ¿¿ GlobalLock ¡πª¡«
- ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε GlobalWire. ¥Γá Σπ¡¬µ¿∩ »ÑαѼÑΘáÑΓ
- í½«¬¿απѼδ⌐ «íΩÑ¬Γ ó ¼½áñΦ¿Ñ áñαÑßá, ¬«Γ«αδÑ ºáαѺÑαó¿α«óá¡δ
- »«ñ Σ¿¬ß¿α«óá¡¡δÑ «íΩѬΓδ, ¿ ºáΓѼ í½«¬¿απÑΓ Ñú«. ü½«¬¿α«óá¡¿Ñ
- «íΩѬΓá ó ¼½áñΦ¿σ áñαÑßáσ »«ºó«½∩ÑΓ Windows φΣΣÑ¬Γ¿ó¡«
- ¿ß»«½º«óáΓ∞ »á¼∩Γ∞, ¡« ΓαÑíπÑΓ í«½∞ΦÑ óαѼѡ¿ ¡á »ÑαѼÑΘÑ¡¿Ñ
- «íΩѬΓá. öπ¡¬µ¿∩ GlobalUnWire αáºí½«¬¿απÑΓ «íΩѬΓ. ū߽Ñ
- αáºí½«¬¿α«óá¡¿∩ «íΩѬΓá «¡ »ÑαѼÑΘáÑΓß∩ ¿º «í½áßΓ¿
- Σ¿¬ß¿α«óá¡¡δσ «íΩÑ¬Γ«ó ú½«íá½∞¡«⌐ »á¼∩Γ¿.
-
- ôóÑñ«¼½Ñ¡¿Ñ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ »α¿ ßíα«ßÑ í½«¬á »á¼∩Γ¿.
-
-
- Windows 3.0/pg/3#3 = 41 =
-
- àß½¿ óδ σ«Γ¿ΓÑ, τΓ«íδ Windows »α¿ ßíα«ßÑ í½«¬á ú½«íá½∞¡«⌐
- »á¼∩Γ¿ πóÑñ«¼½∩½á óáΦπ »α«úαá¼¼π, ó맮ó¿ΓÑ Σπ¡¬µ¿ε
- GlobalNotify. ¥Γπ Σπ¡¬µ¿ε ¼«ª¡« ¿ß»«½∞º«óáΓ∞, Ñß½¿, ¡á»α¿¼Ñα,
- óδ »¿Φ¿ΓÑ ß«íßΓóÑ¡¡πε ß¿ßΓѼπ π»αáó½Ñ¡¿∩ ó¿αΓπá½∞¡«⌐ »á¼∩Γ∞ε,
- ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ »«ñ¬áτ¬π ß ¿ ¡á ñ¿ß¬. Åα¿ ó맮óÑ Σπ¡¬µ¿¿ óδ
- «»αÑñѽ∩ÑΓÑ áñαÑß Σπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá, ¬«Γ«αá∩
- »«½πτáÑΓ πóÑñ«¼½Ñ¡¿Ñ « ßíα«ßÑ í½«¬á.
-
- 꺼ѡѡ¿∩, ¬«úñá í½«¬ »á¼∩Γ¿ ßíα«ΦÑ¡.
-
- Åα¿ π»αáó½Ñ¡¿¿ ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ∞ε »á¼∩Γ¿
- Windows ¿ß»«½∞ºπÑΓ á½ú«α¿Γ¼ LRU ñ½∩ «»αÑñѽѡ¿∩ Γ«ú«, ¬á¬«⌐
- í½«¬ ¡πª¡« ßíα«ß¿Γ∞ »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ «ßó«í«ªñÑ¡¿∩ »á¼∩Γ¿. éδ
- ¼«ªÑΓÑ »ÑαѼÑßΓ¿Γ∞ í½«¬ »á¼∩Γ¿ ¡á »«ß½Ññ¡ÑÑ ¼ÑßΓ« ó ß»¿ß¬Ñ LRU
- ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GlobalLRUOldest. ¥Γ« «º¡áτáÑΓ, τΓ« ñá¡¡δ⌐
- «íΩÑ¬Γ íπñÑΓ ¡á¿í«½ÑÑ »«ñσ«ñ∩ΘÑ⌐ ¬á¡ñ¿ñáΓπα«⌐ ¡á ßíαáßδóá¡¿Ñ.
- àß½¿ óá¼ ¡πª¡«, τΓ«íδ «íΩÑ¬Γ íδ½ ¡á¿¼Ñ¡ÑÑ óÑα«∩Γ¡«⌐
- ¬á¡ñ¿ñáΓπα«⌐ ¡á ßíαáßδóá¡¿Ñ, ¼«ª¡« ó«ß»«½∞º«óáΓ∞ß∩ Σπ¡¬µ¿Ñ⌐
- GlobalLRUNewest.
-
- ¥Γ¿ Σπ¡¬µ¿¿ ¿ß»«½∞ºπεΓß∩, ¡á»α¿¼Ñα, »α¿ πñá½Ñ¡¿¿ ¬«ñá
- ¿¡¿µ¿á½¿ºáµ¿¿, ¬«úñá «¡ í«½∞ΦÑ ¡Ñ ¡πªÑ¡. èα«¼Ñ φΓ«ú«, óδ ¼«ªÑΓÑ
- ¿ß»«½∞º«óáΓ∞ φΓ¿ Σπ¡¬µ¿¿ »α¿ ß«ºñá¡¿¿ ß«íßΓóÑ¡¡«⌐ ß¿ßΓѼδ
- π»αáó½Ñ¡¿∩ ó¿αΓπá½∞¡«⌐ »á¼∩Γ∞ε, ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ »«ñ¬áτ¬π ß
- ñ¿ß¬á. æ »«¼«Θ∞ε φΓ¿σ Σπ¡¬µ¿⌐ óδ ¼«ªÑΓÑ ó«ºñÑ⌐ßΓó«óáΓ∞ ¡á Γ«,
- ¬á¬¿Ñ «íΩѬΓδ íπñπΓ ßíα«ΦÑ¡δ ó »Ñαóπε, á ¬á¬¿Ñ ó »«ß½Ññ¡εε
- «τÑαÑñ∞ ñ½∩ ¼¿¡¿¼¿ºáµ¿¿ «íαáΘÑ¡¿∩ ¬ ñ¿ß¬π.
-
- Äτ¿ßΓ¬á ú½«íá½∞¡«⌐ »á¼∩Γ¿ ó ß«ßΓ«∩¡¿¿ ¡Ññ«ßΓáΓ¬á »á¼∩Γ¿.
-
- ⽫íá½∞¡á∩ »á¼∩Γ∞ - φΓ« αáºñѽ∩Ѽδ⌐ αÑßπαß. òáαá¬ΓÑα¿ßΓ¿¬¿
- óßÑσ »α¿¬½áñ¡δσ »α«úαá¼¼ ºáó¿ß∩Γ «Γ ¿σ ú«Γ«ó¡«ßΓ¿ αáºñѽ∩Γ∞
- φëà αÑßπαß. Åα¿ ¡Ññ«ßΓáΓ¬Ñ ß¿ßΓѼ¡«⌐ »á¼∩Γ¿ óáΦá »α¿¬½áñ¡á∩
- »α«úαá¼¼á ñ«½ª¡á íδΓ∞ ß»«ß«í¡á «ßó«í«ñ¿Γ∞ óδñѽѡ¡πε Ñ⌐
- ú½«íá½∞¡πε »á¼∩Γ∞.
-
- Windows »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ WM_COMPACTING óßѼ
- óδß«¬«πα«ó¡Ñóδ¼ «¬¡á¼, ¬«úñá «¡á «»αÑñѽ∩ÑΓ, τΓ« ó ΓÑτÑ¡¿¿
- ¿¡ΓÑαóá½á óαѼѡ¿ «Γ 30 ñ« 60 ßѬπ¡ñ ¡á αÑ«αúá¡¿ºáµ¿ε »á¼∩Γ¿
- ΓαáΓ¿½«ß∞ í«½∞ΦÑ 15 »α«µÑ¡Γ«ó ß¿ßΓѼ¡«ú« óαѼѡ¿. ¥Γ« ß««íΘÑ¡¿Ñ
- ú«ó«α¿Γ « ¡Ññ«ßΓá⪥ »á¼∩Γ¿.
-
- Åα¿ »«½πτÑ¡¿¿ φΓ«ú« ß««íΘÑ¡¿∩ óáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ñ«½ª¡á «ßó«í«ñ¿Γ∞ ¼á¬ß¿¼á½∞¡« 󫺼«ª¡πε τáßΓ∞ »á¼∩Γ¿, »α¿¡¿¼á∩
- ó« ó¡¿¼á¡¿Ñ ΓѬπΘπε á¬Γ¿ó¡«ßΓ∞ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿ τ¿ß½«
- ñαπú¿σ »α¿¬½áñ¡δσ »α«úαá¼¼, αáí«ΓáεΘ¿σ »«ñ Windows. ùΓ«íδ
- «»αÑñѽ¿Γ∞ τ¿ß½« αáí«ΓáεΘ¿σ »«ñ Windows »α¿¬½áñ¡δσ »α«úαá¼¼, óδ
- ¼«ªÑΓÑ ó«ß»«½∞º«óáΓ∞ß∩ Σπ¡¬µ¿Ñ⌐ GetNumTasks.
- 16.2.4 êß»«½∞º«óá¡¿Ñ ñ«»«½¡¿Γѽ∞¡δσ íá⌐Γ Ä¬¡á ¿ ¬½áßßá.
-
- éδ ¼«ªÑΓÑ σαá¡¿Γ∞ ñ«»«½¡¿Γѽ∞¡δÑ ñá¡¡δÑ óáΦÑ⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ ó¼ÑßΓÑ ß« ßΓαπ¬Γπα«⌐ ñá¡¡δσ, «»¿ßδóáεΘÑ⌐ áΓα¿íπΓδ
-
- Windows 3.0/pg/3#3 = 42 =
-
- ¬½áßßá ¿½¿ «¬¡á. ¥Γ¿ ñ«»«½¡¿Γѽ∞¡δÑ ñá¡¡δÑ ¡áºδóáεΓß∩
- ñ«»«½¡¿Γѽ∞¡δÑ íá⌐Γδ ¬½áßßá ¿ ñ«»«½¡¿Γѽ∞¡δÑ íá⌐Γδ «¬¡á.
-
- ¥Γ¿ ß«íßΓóÑ¡¡δÑ ñá¡¡δÑ αẼÑΘáεΓß∩ ó ßΓαπ¬ΓπαÑ ñá¡¡δσ,
- ¬«Γ«απε »«ññÑনóáÑΓ Windows. Åα¿ ó맮óÑ Σπ¡¬µ¿¿ RegisterClass
- »«½Ñ cbWndExtra «»αÑñѽ∩ÑΓ τ¿ß½« ñ«»«½¡¿Γѽ∞¡δσ íá⌐Γ, ¬«Γ«αδÑ
- íπñπΓ »«ññÑনóáΓ∞ß∩ ñ½∩ óßÑσ «¬«¡, »α¿¡áñ½ÑªáΘ¿σ ñá¡¡«¼π
- ¬½áßßπ.
-
- ¥Γ¿ ñá¡¡δÑ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩, ¬«úñá π óáß ¿¼ÑÑΓß∩ ñóá
- ¿½¿ í«½∞ΦÑ «¬¡á, »α¿¡áñ½ÑªáΘ¿σ «ñ¡«¼π ¿ Γ«¼π ªÑ ¬½áßßπ, ¿ óδ
- σ«Γ¿ΓÑ ßó∩ºáΓ∞ ß ¬áªñδ¼ «¬¡«¼ π¡¿¬á½∞¡δ⌐ ¡áí«α ñá¡¡δσ. üѺ
- ñá¡¡«⌐ 󫺼«ª¡«ßΓ¿ óá¼ »α¿Φ½«ß∞ íδ »«ññÑনóáΓ∞ ß»¿ß«¬ ßΓαπ¬Γπα
- ñá¡¡δσ ñ½∩ ¬áªñ«ú« «¬¡á. çáΓѼ, »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ñ«ßΓπ»á ¬
- ñá¡¡δ¼ «»αÑñѽѡ¡«ú« «¬¡á óá¼ »α¿Φ½«ß∞ íδ «»αÑñѽ∩Γ∞
- ß««ΓóÑΓßΓóπεΘ¿⌐ φ½Ñ¼Ñ¡Γ ó ß»¿ß¬Ñ. Åα¿ ¿ß»«½∞º«óá¡¿¿
- ñ«»«½¡¿Γѽ∞¡δσ íá⌐Γ «¬¡á óδ ¼«ªÑΓÑ ¡á»α∩¼πε «ßπΘÑßΓó½∩Γ∞ ñ«ßΓπ»
- ¬ ñá¡¡δ¼, ¿ß»«½∞ºπ∩ ñÑß¬α¿»Γ«α «¬¡á, ¿ ¡Ñ ºáó«ñ¿Γ∞ «Γñѽ∞¡«ú«
- ᯨ᪠.
-
- ä½∩ ºá»¿ß¿ ñá¡¡δσ ó «í½áßΓ∞ ñ«»«½¡¿Γѽ∞¡δσ ñá¡¡δσ «¬¡á óδ
- ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε SetWindowWord ¿ SetWindowLong. ÄíÑ
- φΓ¿ Σπ¡¬µ¿¿ »«½πτáεΓ ß¼ÑΘÑ¡¿Ñ íá⌐Γá ó¡πΓα¿ «í½áßΓ¿
- ñ«»«½¡¿Γѽ∞¡δσ ñá¡¡δσ, Γ«τ¬¿, ó ¬«Γ«απε ¡Ñ«íσ«ñ¿¼« ºá»¿ßáΓ∞
- ñá¡¡δÑ. ìπ½Ñó«Ñ ß¼ÑΘÑ¡¿Ñ «»αÑñѽ∩ÑΓ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ Γ¿»á WORD
- ¿½¿ LONG. æ¼ÑΘÑ¡¿Ñ 2 «»αÑñѽ∩ÑΓ óΓ«α«⌐ φ½Ñ¼Ñ¡Γ Γ¿»á WORD ó φΓ«⌐
- «í½áßΓ¿. æ¼ÑΘÑ¡¿Ñ 4 «»αÑñѽ∩ÑΓ ΓαÑΓ¿⌐ φ½Ñ¼Ñ¡Γ Γ¿»á WORD ¿
- óΓ«α«⌐ Γ¿»á LONG. ìÑ«íσ«ñ¿¼« «Γ¼ÑΓ¿Γ∞, τΓ« Σπ¡¬µ¿¿
- SetWindowWord ¿ SetWindowLong »«½πτáεΓ Γá¬ªÑ Γá¬¿Ñ ¬«¡ßΓá¡Γδ,
- ¬á¬ GWW_STYLE ¿ GWW_ENDPROC, «»αÑñѽѡ¡δÑ ó WINDOWS.H. ¥Γ¿
- ¬«¡ßΓá¡Γδ ß«ñÑαªáΓ «Γα¿µáΓѽ∞¡δÑ ß¼ÑΘÑ¡¿∩ ó¡πΓα¿ ßΓαπ¬Γπαδ
- ñá¡¡δσ «¬¡á. 使¡á ßΓαπ¬Γπαδ ñá¡¡δσ (¼¿¡πß αẼÑα «í½áßΓ¿
- ñ«»«½¡¿Γѽ∞¡δσ ñá¡¡δσ) Γᬿ¼ «íαẫ¼ ñ«íáó½∩ÑΓß∩ ¬ ß¼ÑΘÑ¡¿ε,
- »ÑαÑñáóáѼ«¼π »α¿ ó맮óÑ SetWindowWord ¿ SetWindowLong, ñ½∩
- «»αÑñѽѡ¿∩ ñÑ⌐ßΓó¿Γѽ∞¡«ú« ß¼ÑΘÑ¡¿∩ «Γ¡«ß¿Γѽ∞¡« ¡áτá½á
- ßΓαπ¬Γπαδ ñá¡¡δσ.
-
- ä½∩ τΓÑ¡¿∩ ñá¡¡δσ ¿º «í½áßΓ¿ ñ«»«½¡¿Γѽ∞¡δσ ñá¡¡δσ «¬¡á
- ¿ß»«½∞ºπεΓß∩ Σπ¡¬µ¿¿ GetWindowWord ¿ GetWindowLong. æ¼ÑΘÑ¡¿Ñ
- π¬áºδóáÑΓß∩ ¬á¬ ¿ ó Σπ¡¬µ¿∩σ SetWindowWord ¿ SetWindowLong.
-
- é ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ EMS ßΓαπ¬Γπαδ ñá¡¡δσ «¬¡á óδñѽ∩εΓß∩
- ó «Γ¡«ß¿Γѽ∞¡« «úαá¡¿τÑ¡¡«⌐ «í½áßΓ¿ »á¼∩Γ¿ ¡¿ªÑ úαá¡¿µδ
- «Γ«íαáªÑ¡¿∩. àß½¿ óδ σ«Γ¿ΓÑ ßó∩ºáΓ∞ ß «¬¡«¼ í«½∞Φ«⌐ «íΩѼ
- ñ«»«½¡¿Γѽ∞¡δσ ñá¡¡δσ (í«½∞ΦÑ 10 íá⌐Γ), Γ« ½πτΦÑ ó «í½áßΓ¿
- ñ«»«½¡¿Γѽ∞¡δσ ñá¡¡δσ σαá¡¿Γ∞ ú½«íá½∞¡δ⌐ ñÑß¬α¿»Γ«α, á ¡Ñ ßἿ
- ñá¡¡δÑ. ¥Γ« »«ºó«½∩ÑΓ π¼Ñ¡∞Φ¿Γ∞ «í½áßΓ∞ ñ«»«½¡¿Γѽ∞¡δσ ñá¡¡δσ
- ñ« 2 íá⌐Γ, ¡Ñ«íσ«ñ¿¼δσ ñ½∩ σαá¡Ñ¡¿∩ ú½«íá½∞¡«ú« ñÑß¬α¿»Γ«αá.
-
- Æá¬ªÑ, ¬á¬ óδ ¼«ªÑΓÑ ßó∩ºáΓ∞ ñ«»«½¡¿Γѽ∞¡δÑ ñá¡¡δÑ ß
- «¬¡«¼, óδ ¼«ªÑΓÑ ßó∩ºáΓ∞ ñ«»«½¡¿Γѽ∞¡δÑ ñá¡¡δÑ ¿ ß ¬½áßß«¼. ä½∩
- ñ«ßΓπ»á ¬ φΓ¿¼ ñá¡¡δ¼ ¿ß»«½∞ºπεΓß∩ Σπ¡¬µ¿¿ SetClassWord,
- SetClassLong, GetClassWord ¿ GetClassLong. 髺¼«ª¡δ ß¿Γπᵿ¿,
-
- Windows 3.0/pg/3#3 = 43 =
-
- ¬«úñá ¡πª¡« »α¿ßó«¿Γ∞ ñá¡¡δÑ, «Γ¡«ß∩Θ¿Ñß∩ ¬« óßÑ¼π ¬½áßßπ ¬á¬ ¬
- «ñ¡«¼π µÑ½«¼π, ¿ ¬«Γ«αδÑ «íΘ¿Ñ ñ½∩ óßÑσ «¬«¡ «ñ¡«ú« ¬½áßßá.
- 16.2.5 ô»αáó½Ñ¡¿Ñ αÑßπαßἿ.
-
- ÉÑßπαßδ - φΓ« ñá¡¡δÑ, »αÑñ¡áº¡áτÑ¡¡δÑ Γ«½∞¬« ñ½∩ τΓÑ¡¿∩,
- σαá¡∩Θ¿Ñß∩ ó .EXE Σá⌐½Ñ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿½¿ Σá⌐½Ñ .DLL
- í¿í½¿«ΓѬ¿, ¿ ¬«Γ«αδÑ Windows ºáúαπªáÑΓ »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿. Ä¡¿
- ó¬½ετáεΓ αáßΓα«óδÑ ¬áαΓδ, ¿¬«¡δ, ¬παß«αδ, »á¡Ñ½¿ ñ¿á½«úá ¿
- Φα¿ΣΓδ. éδ ¼«ªÑΓÑ ¿σ ß«ºñáΓ∞ ß »«¼«Θ∞ε αÑñá¬Γ«α«ó αÑßπαß«ó
- SDKPAINT, DIALOG ¿ FONTEDIT. ÉÑßπαßδ »«ñß«Ññ¿¡∩εΓß∩ ¬ Σá⌐½π
- .EXE ¿½¿ .DLL ß »«¼«Θ∞ε ¬«¼»¿½∩Γ«αá αÑßπαß«ó (RC). éδ
- ¿ß»«½∞ºπÑΓÑ º¡á¡¿Ñ Windows Σ«α¼áΓ«ó φΓ¿σ αÑßπαß«ó, «»Ñα¿απ∩ ß
- ¡¿¼¿ ß »«¼«Θ∞ε ߻ѵ¿á½∞¡δσ Σπ¡¬µ¿⌐, Γᬿσ ¬á¬ LoadIcon ¿½¿
- CreateDialog.
-
- Windows ºáúαπªáÑΓ αÑßπαßδ ó »á¼∩Γ∞ ó ó¿ñÑ «ñ¡«ú« ßÑú¼Ñ¡Γá.
- ÉÑßπαß ¼«ªÑΓ íδΓ∞ «»¿ßá¡ ¬á¬ »ÑαѼÑΘáѼδ⌐, Σ¿¬ß¿α«óá¡¡δ⌐ ¿½¿
- ßíαáßδóáѼδ⌐. Åα¿ «»αÑñѽѡ¿¿ Γ«ú«, ¬á¬«⌐ ñ«½ªÑ¡ íδΓ∞ αÑßπαß,
- Γ.Ñ. ßíαáßδóáѼδ⌐, Σ¿¬ß¿α«óá¡¡δ⌐ ¿½¿ »ÑαѼÑΘáѼδ⌐, óδ ñ«½ª¡δ
- »α¿¡¿¼áΓ∞ ó« ó¡¿¼á¡¿Ñ ΓÑ ªÑ »α¿τ¿¡δ, τΓ« ¿ »α¿ «»αÑñѽѡ¿¿
- áΓα¿íπΓ«ó ú½«íá½∞¡δσ í½«¬«ó »á¼∩Γ¿.
-
- àß½¿ óδ «íΩ∩ó½∩ÑΓÑ αÑßπαß ß ¬½ετѼ PRELOAD, Windows
- ºáúαπº¿Γ Ñú« ó« óαѼ∩ ºá»πß¬á »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. ê¡áτÑ,
- Windows ºáúαπº¿Γ Ñú« Γ«½∞¬« ¬«úñá «¡ »«¡áñ«í¿Γ∞ß∩ (¬½ετ
- LOADONCALL). ¥Γ¿ ¬½ετ¿ «ß«íÑ¡¡« óáª¡δ »α¿ αáí«ΓÑ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ ó ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ EMS ß ¡Ñí«½∞Φ¿¼ ΣαÑ⌐¼«¼
- «Γ«íαáªÑ¡¿∩. 漫Γα¿ΓÑ αáºñѽ 16.6.4, "ū߽Ññ«óáΓѽ∞¡«ßΓ∞
- ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó ó .DEF Σá⌐½Ñ", ó ¬«Γ«α«¼ ñáÑΓß∩
- ñ«»«½¡¿Γѽ∞¡á∩ ¿¡Σ«α¼áµ¿∩ »« »«ó«ñπ ºáúαπº¬¿ αÑßπαß«ó »α¿
- αáí«ΓÑ ó ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ EMS ß ¼á½δ¼ ΣαÑ⌐¼«¼ «Γ«íαáªÑ¡¿∩.
-
- èα«¼Ñ αѼπαß«ó, Σ«α¼áΓ ¬«Γ«αδσ αáß»«º¡áÑΓ Windows, óδ
- ¼«ªÑΓÑ ß«ºñáΓ∞ ßó«¿ ß«íßΓóÑ¡¡δÑ αÑßπαßδ, αáß»«º¡áóáѼδÑ Γ«½∞¬«
- óáΦÑ⌐ »α«úαá¼¼«⌐. äá¡¡δÑ ó φΓ«¼ ß½πτáÑ ¼«úπΓ ¿¼ÑΓ∞ ½εí«⌐
- Σ«α¼áΓ, ó¬½ετá∩ ΓѬßΓ ASCII, ñó«¿τ¡δÑ ñá¡¡δÑ ¿½¿ ¿σ ß¼Ñß∞.
-
- ÉÑΦá∩ ó«»α«ß « »αÑñßΓó½Ñ¡¿¿ ñá¡¡δσ ¬á¬ «Γñѽ∞¡δ⌐ Σá⌐½ ¿½¿
- ¬á¬ αÑßπαßδ, óδ ñ«½ª¡δ »α¿¡¿¼áΓ∞ ó« ó¡¿¼á¡¿Ñ ß½ÑñπεΘÑÑ:
-
- - Åα¿ ¬«¼»¿½∩µ¿¿ αÑßπαß«ó ¬ óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ óδ
- óßÑ ñá¡¡δÑ »«¼ÑΘáÑΓÑ ó .EXE-Σá⌐½. ì¿ óá¼ ¡¿ óáΦѼπ
- »«½∞º«óáΓÑ½ε ¡Ñ »α¿ñÑΓß∩ íÑß»«¬«¿Γ∞ß∩ «í ¿¡ßΓá½½¿α«óá¡¿¿
- ñ«»«½¡¿Γѽ∞¡δσ Σá⌐½«ó ñá¡¡δσ ó¼ÑßΓÑ ß .EXE-Σá⌐½«¼.
-
- - æ ñαπú«⌐ ßΓ«α«¡δ ¿ß»«½∞º«óá¡¿Ñ ñá¡¡δσ ó ó¿ñÑ αÑßπαß«ó
- «º¡áτáÑΓ, τΓ« »α¿ ¿º¼Ñ¡Ñ¡¿¿ ñá¡¡δσ Σá⌐½ »α¿ñÑΓß∩
- ¬«¼»¿½¿α«óáΓ∞ ºá¡«ó«. àß½¿ óδ ¡Ñ σ«Γ¿ΓÑ ñ½∩ ¬áªñ«ú«
- »«½∞º«óáΓѽ∩ ¬«¼»¿½¿α«óáΓ∞ »α«úαá¼¼π ß αáº¡δ¼¿
- αÑßπαßἿ, Γ« πñ«í¡ÑÑ íπñÑΓ ¿ß»«½∞º«óáΓ∞ αạδÑ Σá⌐½δ
- ñá¡¡δσ, á ¡Ñ αạδÑ .EXE-Σá⌐½δ.
-
-
- Windows 3.0/pg/3#3 = 44 =
-
- ÿáú¿, ¡Ñ«íσ«ñ¿¼δÑ ñ½∩ »α¿ß«Ññ¿¡Ñ¡¿∩ ¬ EXE ¿ DLL - Σá⌐½á¼
- αÑßπαß«ó, «»αÑñѽ∩Ѽδσ óἿ, «»¿ßá¡δ ó "Tools".
-
- é ß½ÑñπεΘ¿σ αáºñѽáσ «»¿ßá¡δ Σπ¡¬µ¿¿, ¿ß»«½∞ºπѼδÑ ñ½∩
- ñ«ßΓπ»á ¬ «»αÑñѽ∩Ñ¼δ¼ óἿ αÑßπαßá¼.
-
- Ä»αÑñѽѡ¿Ñ ¼ÑßΓ«»«½«ªÑ¡¿∩ «»αÑñѽ∩Ѽδσ óἿ αÑßπαß«ó.
-
- öπ¡¬µ¿∩ FindResource «»αÑñѽ∩ÑΓ ¼ÑßΓ«»«½«ªÑ¡¿Ñ αÑßπαßá »«
- Ñú« ¿¼Ñ¡¿ ó «»¿ßá¡¿¿ αÑßπαßá. öπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α,
- ¬«Γ«αδ⌐ óδ ¼«ªÑΓÑ ó ñá½∞¡Ñ⌐ΦѼ ¿ß»«½∞º«óáΓ∞ ñ½∩ ºáúαπº¬¿
- αÑßπαßá ß »«¼«Θ∞ε Σπ¡¬µ¿¿ LoadResource. äÑß¬α¿»Γ«α αÑßπαßá,
- ó«ºóαáΘáѼδ⌐ Σπ¡¬µ¿Ñ⌐ FindResource, «»αÑñѽ∩ÑΓ ¿¡Σ«α¼áµ¿ε,
- ¬«Γ«αá∩ «»¿ßδóáÑΓ Ñú« Γ¿», «íΩ∩ó½Ñ¡¡δ⌐ ó Σá⌐½Ñ «»¿ßá¡¿∩
- αÑßπαß«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¼ÑßΓ«¡áσ«ªñÑ¡¿Ñ ó EXE- ¿½¿
- DLL-Σá⌐½Ñ ¿ αẼÑα αÑßπαßá.
-
- ìá»α¿¼Ñα, »αÑñ»«½«ª¿¼, óδ σ«Γ¿ΓÑ ó ¬áτÑßΓóÑ αÑßπαßá
- »«ññÑনóáΓ∞ ΓѬßΓ«óδ⌐ Σá⌐½ ó ¬«ñÑ ASCII ß ¿¼Ñ¡Ñ¼ MYTEXT.EXE.
- ê¼∩ αÑßπαßá "mytext", á 󫺼«ª¡«Ñ ¿¼∩ Γ¿»á "TEXT". Ä»¿ßá¡¿Ñ
- Γᬫú« αÑßπαßá ó Σá⌐½Ñ «»¿ßá¡¿∩ αÑßπαß«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ
- íπñÑΓ óδú½∩ñÑΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- mytext TEXT mytext.txt
-
- é »α«úαá¼¼Ñ óδ ¼«ªÑΓÑ »«½πτ¿Γ∞ ñÑß¬α¿»Γ«α αÑßπαßá ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ FindResource:
-
- HANDLE hMyTextResLoc;
- .
- .
- .
- hMyTextResLoc = FindResource(hInstance, "TEXT","mytext");
-
- çáúαπº¬á ß«íßΓóÑ¡¡δσ αÑßπαß«ó.
-
- öπ¡¬µ¿∩ FindResource ¡Ñ ºáúαπªáÑΓ αÑßπαß ¿º Σá⌐½á ó
- »á¼∩Γ∞. Ä¡á Γ«½∞¬« «»αÑñѽ∩ÑΓ Ñú« ¼ÑßΓ«»«½«ªÑ¡¿Ñ ó Σá⌐½Ñ ¿
- ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α, ¬«Γ«αδ⌐ «»αÑñѽ∩ÑΓ ¿¡Σ«α¼áµ¿ε « Ñú«
- αẻ«½«ªÑ¡¿¿. ä½∩ ºáúαπº¬¿ αÑßπαßá ó »á¼∩Γ∞ óδ ñ«½ª¡δ óδºóáΓ∞
- LoadResource, ¬á¬ »«¬áºá¡« ¡¿ªÑ:
-
- HANDLE hMyTextResLoc;
- HANDLE hMyTextRes;
- .
- .
- .
- hMyTextResLoc = FindResource(hInstance, "TEXT","mytext");
- if(!hMyTextRes = LoadResource(hInstance,hMyTextResLoc))
- {
- /* «íαáí«Γ¬á ß«íδΓ¿∩, ¬«úñá ñ½∩ ºáúαπº¬¿ αÑßπαßá
- ¡Ññ«ßΓáΓ«τ¡« »á¼∩Γ¿ */
- }
-
- Windows 3.0/pg/3#3 = 45 =
-
-
- öπ¡¬µ¿∩ LoadResource ßἫßΓ«∩Γѽ∞¡« óδºδóáÑΓ GlobalAlloc
- ñ½∩ óδñѽѡ¿∩ »á¼∩Γ¿ ñ½∩ αÑßπαß«ó ¿ ºáΓѼ ¬«»¿απÑΓ ¿σ ¿º Σá⌐½á
- ó »á¼∩Γ∞.
-
- ü½«¬¿α«óá¡¿Ñ ¿ αáºí½«¬¿α«óá¡¿Ñ ß«íßΓóÑ¡¡δσ αÑßπαß«ó.
-
- ä½∩ ñ«ßΓπ»á ¬ ñá¡¡δ¼ αÑßπαß«ó, ¡áσ«ñ∩Θ¿¼ß∩ ó í½«¬Ñ
- ú½«íá½∞¡«⌐ »á¼∩Γ¿, óδ ñ«½ª¡δ óδºóáΓ∞ Σπ¡¬µ¿ε LockResource ñ½∩
- í½«¬¿α«óá¡¿∩ »á¼∩Γ¿ ¿ »«½πτÑ¡¿∩ ñá½∞¡Ñú« π¬áºáΓѽ∩ ¡á ñá¡¡δÑ.
- ¥Γ« φ¬ó¿óá½Ñ¡Γ¡« ¿ß»«½∞º«óá¡¿ε GlobalLock ñ½∩ »«½πτÑ¡¿∩ áñαÑßá
- í½«¬á »á¼∩Γ¿, óδñѽѡ¡«ú« ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GlobalLock. 쿪Ñ
- »α¿ó«ñ¿Γß∩ »α«ñ«½ªÑ¡¿Ñ »αÑñδñπΘÑú« »α¿¼Ñαá:
-
- LPSTR lpstrMyText;
- .
- .
- .
- lpstrMyText = LockResource(hMyTextRes);
-
- Å«ß½Ñ »«½πτÑ¡¿∩ ñá½∞¡Ñú« áñαÑßá αÑßπαßá óδ ¼«ªÑΓÑ τ¿ΓáΓ∞
- ¿º ¡Ñú« ñá¡¡δÑ ΓᬠªÑ, ¬á¬ ¿º í½«¬á »á¼∩Γ¿, ºáí½«¬¿α«óá¡¡«ú«
- Σπ¡¬µ¿Ñ⌐ GlobalLock. é «Γ½¿τ¿Ñ «Γ GlobalLock, Σπ¡¬µ¿∩
- LockResource ó ß½πτáÑ ßíα«ßá í½«¬á »á¼∩Γ¿ ß αÑßπαß«¼
- ßἫßΓ«∩Γѽ∞¡« óδºδóáÑΓ Σπ¡¬µ¿ε LoadResource ñ½∩ Ñú« »«óΓ«α¡«⌐
- ºáúαπº¬¿.
-
- è«úñá ñ«ßΓπ» ¬ αÑßπαßá¼ óá¼ í«½∞ΦÑ ¡Ñ ¡πªÑ¡ óδ ñ«½ª¡δ
- óδºóáΓ∞ Σπ¡¬µ¿ε UnlockResource. ¥Γá Σπ¡¬µ¿∩ φ¬ó¿óá½Ñ¡Γ¡á
- GlobalUnlock. àß½¿ óδ «íΩ∩󿽿 αÑßπαß ¬á¬ ßíαáßδóáѼδ⌐ ¿½¿
- »ÑαѼÑΘáѼδ⌐, φΓ« »αÑñ«ßΓáó½∩ÑΓ Windows 󫺼«ª¡«ßΓ∞ »ÑαѼÑΘáΓ∞
- ¿½¿ ßíαáßδóáΓ∞ í½«¬ »á¼∩Γ¿, ß«ñÑαªáΘ¿⌐ αÑßπαß, »α¿
- ¡Ñ«íσ«ñ¿¼«ßΓ¿ πñ«ó½ÑΓó«αÑ¡¿∩ ñαπú¿σ ºá»α«ß«ó ¡á óδñѽѡ¿Ñ
- »á¼∩Γ¿.
-
- Äτ¿ßΓ¬á ß«íßΓóÑ¡¡δσ αÑßπαß«ó.
-
- öπ¡¬µ¿∩ FreeResource á¡á½«ú¿τ¡á GlobalFRee. Ä¡á ßíαáßδóáÑΓ
- í½«¬ »á¼∩Γ¿, ¿ß»«½∞ºπѼδ⌐ ñ½∩ σαá¡Ñ¡¿∩ ñá¡¡δσ αÑßπαßá, ¿
- ñÑß¬α¿»Γ«α, ¿ß»«½∞ºπѼδ⌐ ñ½∩ ñ«ßΓπ»á ¬ ñá¡¡«¼π αÑßπαßπ. àß½¿
- 󫺡¿¬¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ß¡«óá ºáúαπº¿Γ∞ αÑßπαß, óδ ñ«½ª¡δ φΓ«
- ßñѽáΓ∞ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ LoadResource, ¿ß»«½∞ºπ∩ ñÑß¬α¿»Γ«α
- Ñú« ¼ÑßΓ«»«½«ªÑ¡¿∩, ¬«Γ«αδ⌐ óδ »«½πτ¿½¿ ó ¡áτá½Ñ ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ FindResource.
-
-
-
- Windows 3.0/pg/3#3 = 46 =
-
- 16.3 êß»«½∞º«óá¡¿Ñ ¼«ñѽÑ⌐ »á¼∩Γ¿.
-
- Åਪ½áñ¡δÑ »α«úαá¼¼δ Windows, ΓᬠªÑ ¬á¬ ¿ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ DOS, ¼«úπΓ ¿¼ÑΓ∞ «ñ¿¡ ¿½¿ ¡Ñ߬«½∞¬« ßÑú¼Ñ¡Γ«ó ñá¡¡δσ
- ¿ «ñ¿¡ ¿½¿ ¡Ñ߬«½∞¬« ßÑú¼Ñ¡Γ«ó ¬«ñá. î«ñѽ∞ »á¼∩Γ¿, ¬«Γ«απε óδ
- π¬áºδóáÑΓÑ »α¿ ¬«¼»¿½∩µ¿¿ ¿ßσ«ñ¡δσ ¼«ñπ½Ñ⌐, «»αÑñѽ∩ÑΓ, íπñÑΓ
- ½¿ ¬«¼»¿½∩Γ«α ¿ß»«½∞º«óáΓ∞ ñá½∞¡¿Ñ ¿½¿ í½¿ª¡¿Ñ áñαÑßá. àß½¿ óδ
- π¬áºδóáÑΓÑ ¼«ñѽ∞ »á¼∩Γ¿, ó ¬«Γ«α«⌐ »α«úαá¼¼á ¿¼ÑÑΓ «ñ¿¡
- ßÑú¼Ñ¡Γ ¬«ñá ¿½¿ ñá¡¡δσ, Γ« ¬«¼»¿½∩Γ«α íπñÑΓ úÑ¡Ñα¿α«óáΓ∞
- í½¿ª¡¿Ñ áñαÑßá ñ½∩ ñ«ßΓπ»á ß««ΓóÑΓßΓóÑ¡¡« ¬ ¬«ñπ ¿½¿ ñá¡¡δ¼.
- àß½¿ óδ ¿ß»«½∞ºπÑΓÑ ¼«ñѽ∞ »á¼∩Γ¿ ß ¡Ñ߬«½∞¬¿¼¿ ßÑú¼Ñ¡ΓἿ ¬«ñá
- ¿½¿ ñá¡¡δσ, Γ« ¬«¼»¿½∩Γ«α íπñÑΓ ß««ΓóÑΓßΓóÑ¡¡« úÑ¡Ñα¿α«óáΓ∞
- ñá½∞¡¿Ñ áñαÑßá ñ½∩ ñ«ßΓπ»á ¬ ¬«ñπ ¿½¿ ñá¡¡δ¼. É¿ßπ¡«¬ 16.8
- ¿½½εßΓα¿απÑΓ ó½¿∩¡¿Ñ ¼«ñѽ¿ »á¼∩Γ¿ ¡á Γ«, ¬á¬¿¼ «íαẫ¼
- »α¿¬½áñ¡á∩ »α«úαá¼¼á áñαÑßπÑΓ ¬«ñ ¿ ñá¡¡δÑ.
-
- ù¿ß½« ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó
-
- Äñ¿¡ ìÑ߬«½∞¬«
- ┌──────────────┬──────────────┐
- ù¿ß½« │ îá½á∩ │ æαÑñ¡∩∩ │
- ßÑú¼Ñ¡Γ«ó Äñ¿¡ │ ¼«ñѽ∞ │ ¼«ñѽ∞ │
- ñá¡¡δσ │ »á¼∩Γ¿ │ »á¼∩Γ¿ │
- ├──────────────┼──────────────┤
- │ 諼»á¬Γ¡á∩ │ ü«½∞Φá∩ │
- ìÑ߬«½∞¬« │ ¼«ñѽ∞ │ ¼«ñѽ∞ │
- │ »á¼∩Γ¿ │ »á¼∩Γ¿ │
- └──────────────┴──────────────┘
-
- É¿ßπ¡«¬ 16.8 î«ñѽ¿ »á¼∩Γ¿ ¬«¼»¿½∩Γ«αá Microsoft.
-
- äóÑ ¼«ñѽ¿ »á¼∩Γ¿: í«½∞Φá∩ ¿ huge, ¬«Γ«αδÑ úÑ¡Ñα¿απεΓ
- ñá½∞¡¿Ñ áñαÑßá »α¿ «íαáΘÑ¡¿¿ ¬á¬ ¬ ñá¡¡δ¼ Γᬠ¿ ¬ ¬«ñπ. é
- í«½∞Φ«⌐ ¼«ñѽ¿ »á¼∩Γ¿ ñá½∞¡¿Ñ áñαÑßá ¼«úπΓ πóѽ¿τ¿óáΓ∞ß∩ Γ«½∞¬«
- ó »αÑñѽáσ 64 èíá⌐Γ«ó«ú« ßÑú¼Ñ¡Γá. é ¼«ñѽ¿ »á¼∩Γ¿ huge áñαÑßá
- ¼«úπΓ πóѽ¿τ¿óáΓ∞ß∩ ¿ »ÑαÑßѬáΓ∞ úαá¡¿µδ ßÑú¼Ñ¡Γ«ó, Γ.¬. ñ½∩
- ¡¿σ »α«¿ºó«ñ¿Γß∩ πóѽ¿τÑ¡¿Ñ ¡Ñ Γ«½∞¬« ß¼ÑΘÑ¡¿∩, ¡« ¿ áñαÑßá
- ßÑú¼Ñ¡Γá. Æá¬ªÑ, Ñß½¿ ¼«ñπ½∞ ¬«¼»¿½¿απÑΓß∩ ó í«½∞Φ«⌐ ¼«ñѽ¿
- »á¼∩Γ¿, Γ« ó αÑá½∞¡«¼ αѪ¿¼Ñ Ñú« ßÑú¼Ñ¡Γ ñá¡¡δσ óßÑúñá
- Σ¿¬ß¿α«óá¡, ¿ ó« óßÑσ αѪ¿¼áσ Windows ¼«ªÑΓ ºáúαπº¿Γ∞ Γ«½∞¬«
- «ñ¿¡ φ¬ºÑ¼»½∩α φΓ«ú« ¼«ñπ½∩.
-
- é «íΘѼ, ½πτΦÑ óßÑú« ñ½∩ »α¿¬½áñ¡δσ »α«úαá¼¼ Windows
- ¿ß»«½∞º«óáΓ∞ ¼á½πε ¼«ñѽ∞ »á¼∩Γ¿. Åα¿ αáí«ΓÑ Windows ó íẫó«⌐
- ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ ¿ ¬«¡Σ¿úπαᵿ¿ EMS, τΓ« »α¿ó«ñ¿Γ ¬ Γ«¼π,
- τΓ« ñá½∞¡¿Ñ ßÑú¼Ñ¡Γδ ñá¡¡δσ »α«úαá¼¼, «Γ¬«¼»¿½¿α«óá¡¡δσ ó
- ¬«¼»á¬Γ¡«⌐, í«½∞Φ«⌐ ¿ hude ¼«ñѽ∩σ »á¼∩Γ¿, ßΓá¡«ó∩Γß∩
- Σ¿¬ß¿α«óá¡¡δ¼¿, τΓ« πσπñΦáÑΓ σáαá¬ΓÑα¿ßΓ¿¬¿ ß¿ßΓѼδ π»αáó½Ñ¡¿∩
- »á¼∩Γ¿ Windows. äá½∞¡¿Ñ ßÑú¼Ñ¡Γδ ñá¡¡δσ ñ«½ª¡δ íδΓ∞
- Σ¿¬ß¿α«óá¡δ, »«ß¬«½∞¬π Windows ¡Ñ ß«ñÑαª¿Γ ¼Ñσá¡¿º¼á
- »ÑαѡạáτÑ¡¿∩ ñá½∞¡¿σ ßß佫¬ ¡á »ÑαѼÑΘáѼδÑ ó »á¼∩Γ¿
- ßÑú¼Ñ¡Γδ. Äñ¡á¬« Windows ß«ñÑαª¿Γ ¼Ñσá¡¿º¼ »ÑαѡạáτÑ¡¿∩
- ßß佫¬ ¡á áóΓ«¼áΓ¿τÑ߬¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿
-
- Windows 3.0/pg/3#3 = 47 =
-
- ¡á ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ, ¬«úñá «¡¿ »ÑαѼÑΘáεΓß∩.
-
- àß½¿ óδ ¿ß»«½∞ºπÑΓÑ Microsoft C Compiler, Γ« ¬«¼»¿½¿απ⌐ΓÑ
- »α¿¬½áñ¡δÑ »α«úαá¼¼δ ß ¬½ετѼ -AS ñ½∩ ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿ ¿ -AM
- ñ½∩ ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- Windows »«ºó«½∩ÑΓ óá¼ ¿ß»«½∞º«óáΓ∞ "ß¼Ñß∞" ¼«ñѽÑ⌐ »á¼∩Γ¿.
- é ß¼ÑΦá¡¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿ óδ ¬«¼»¿½¿απÑΓÑ ¼«ñπ½¿, ¿ß»«½∞ºπ∩
- ¬½ετ -AS ¿ ñ½∩ ΓÑσ ¼«ñπ½Ñ⌐, ¬«Γ«αδÑ óδ σ«Γ¿ΓÑ »«¼ÑßΓ¿Γ∞ ó «ñ¿¡
- ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ óδ π¬áºδóáÑΓÑ «ñ¡« ¿ Γ« ªÑ ¿¼∩ ßÑú¼Ñ¡Γá, á ñ½∩
- ΓÑσ ¼«ñπ½Ñ⌐, ¬«Γ«αδÑ ñ«½ª¡δ ¡áσ«ñ¿Γ∞ß∩ ó ñαπú¿σ ßÑú¼Ñ¡Γáσ,
- π¬áºδóáÑΓÑ «Γ½¿τ¡δÑ ¿¼Ñ¡á ßÑú¼Ñ¡Γ«ó. ä½∩ »α¿ßó«Ñ¡¿∩ ßÑú¼Ñ¡Γπ
- ¿¼Ñ¡¿ ¿ß»«½∞ºπÑΓß∩ ¬½ετ -NT. öπ¡¬µ¿¿, óδºδóáѼδÑ ¿º αạδσ
- ßÑú¼Ñ¡Γ«ó, ñ«½ª¡δ íδΓ∞ «íΩ∩ó½Ñ¡δ ó ¼«ñπ½Ñ, ¬«Γ«αδ⌐ «ßπΘÑßΓó½∩ÑΓ
- ¿σ ó맮ó ¬á¬ ñá½∞¡¿Ñ (far), ¬á¬ »«¬áºá¡« ¡¿ªÑ:
-
- WORD FAR PASCAL FuncInAnotherCodeSeg(WORD,LONG);
- WORD wReturn;
- .
- .
- .
- wReturn = FuncInAnotherCodeSeg(0,0L);
-
- ÅαÑ¿¼πΘÑßΓó« ß¼ÑΦá¡¡«⌐ ¼«ñѽ¿ ºá¬½ετáÑΓß∩ ó Γ«¼, τΓ«
- ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ ñá½∞¡¿Ñ ó맮óδ Γ«½∞¬« ¼Ñªñπ ßÑú¼Ñ¡ΓἿ.
- öπ¡¬µ¿¿, «íΩ∩ó½Ñ¡¡δÑ ¬á¬ far, ΓαÑíπεΓ í«½∞ΦÑ ¼ÑßΓá ¿ ¿σ ó맮ó
- «ßπΘÑßΓó½∩ÑΓß∩ ¼Ññ½Ñ¡¡ÑÑ.
-
- é ñαπú«⌐ Σ«α¼Ñ ß¼ÑΦá¡¡«⌐ ¼«ñѽ¿ óδ ¼«ªÑΓÑ ¬«¼»¿½¿α«óáΓ∞ ß
- ¿ß»«½∞º«ó᡿Ѽ ¬½ετá -AM, ¬«Γ«αδ⌐ ºáßΓáó½∩ÑΓ ¬«¼»¿½∩Γ«α
- úÑ¡Ñα¿α«óáΓ∞ »« π¼«½τá¡¿ε ñá½∞¡¿Ñ ó맮óδ. çáΓѼ, ΓÑ Σπ¡¬µ¿¿,
- óδº«ó ¬«Γ«αδσ «ßπΘÑßΓó½∩ÑΓß∩ ¿º φΓ«ú« ªÑ ßÑú¼Ñ¡Γá, «»¿ßδóáεΓß∩
- ¬á¬ í½¿ª¡¿Ñ (near). ìÑñ«ßΓáΓ¬«¼ φΓ«ú« ¼ÑΓ«ñá ∩ó½∩ÑΓß∩ Γ«, τΓ«
- Σπ¡¬µ¿¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ Γá¬ªÑ íπñπΓ ñá½∞¡¿¼¿.
- 16.4 êß»«½∞º«óá¡¿Ñ ñá¡¡δσ Γ¿»á huge.
-
- é »α«úαá¼¼áσ ¡á æ óδ ¼«ªÑΓÑ «íΩ∩ó¿Γ∞ ñá¡¡δÑ ¬á¬ huge. é
- φΓ«¼ ß½πτáÑ ¬«¼»¿½∩Γ«α æ íπñÑΓ ¬«ααÑ¬Γ¡« óδ»«½¡∩Γ∞
- áα¿Σ¼ÑΓ¿τÑ߬¿Ñ ñÑ⌐ßΓó¿∩ ß π¬áºáΓѽ∩¼¿ Γᬿ¼ «íαẫ¼, τΓ«íδ «¡¿
- ¼«ú½¿ »ÑαÑßѬáΓ∞ úαá¡¿µδ ßÑú¼Ñ¡Γ«ó. éδ ¼«ªÑΓÑ »«ßδ½áΓ∞
- π¬áºáΓѽ¿ Γ¿»á huge Σπ¡¬µ¿∩¼ í¿í½¿«ΓѬ¿ Windows ¿½¿ ß«íßΓóÑ¡¡δ¼
- Σπ¡¬µ¿∩¼, ¬«Γ«αδÑ ñ«½ª¡δ »«½πτáΓ∞ ñá½∞¡¿Ñ π¬áºáΓѽ¿, ¡« Γ«½∞¬«
- Ñß½¿ Σπ¡¬µ¿∩ ¡Ñ óδ»«½¡∩ÑΓ ó¡πΓαÑ¡¡Ñú« πóѽ¿τÑ¡¿∩ π¬áºáΓѽ∩, ñ½∩
- π¬áºá¡¿∩ «íΩѬΓá, ¬«Γ«αδ⌐ »ÑαѬαδóáÑΓ úαá¡¿µπ ßÑú¼Ñ¡Γ«ó.
- ìá»α¿¼Ñα, ¡¿ªÑ»α¿óÑñÑ¡¡δ⌐ »α¿¼Ñα ñ«»πßΓ¿¼, »«ß¬«½∞¬π 16
- ∩ó½∩ÑΓß∩ ¬«φΣΣ¿µ¿Ñ¡Γ«¼ 64è (65536).
-
- char huge Record[10000][16];
- int i;
-
- TextOut(hDC,x,y,(LPSTR)Record[i],16);
-
-
- Windows 3.0/pg/3#3 = 48 =
-
- æ½ÑñπεΘ¿⌐ »α¿¼Ñα ¡áαπΦáÑΓ φΓ« «úαá¡¿τÑ¡¿Ñ, Γ.¬. π¬áºáΓѽ∞,
- »«ßδ½áѼδ⌐ Σπ¡¬µ¿¿ TextOut, π¬áºδóáÑΓ ¡á «íΩѬΓ, ¬«Γ«αδ⌐ ó
- ¬«¡µÑ ¬«¡µ«ó »ÑαÑßÑτÑΓ úαá¡¿µπ 64è:
-
- char huge Record[10000][15];
- int i;
-
- TextOut(hDC,x,y,(LPSTR)Record[i],15);
- /* ¡Ñ ñѽá⌐ΓÑ Γᬠ*/
-
- ū߬«½∞¬π 15 ¡Ñ ∩ó½∩ÑΓß∩ ñѽ¿ΓѽѼ 64è, Γ« ó ¬«¡µÑ ¬«¡µ«ó
- π¬áºáΓѽ∞ »ÑαÑßÑτÑΓ úαá¡¿µπ ßÑú¼Ñ¡Γá.
- 16.5. ùeú« ß½ÑñπÑΓ ¿ºíÑúáΓ∞ »α¿ αáí«ΓÑ ß ñá¡¡δ¼¿
-
- é »αÑñδñπΘ¿σ αáºñѽáσ »α¿óÑñÑ¡á «ß¡«ó¡á∩ ¿¡Σ«α¼áµ¿∩ «
- Γ«¼, ¬á¬ αáí«ΓáÑΓ ß¿ßΓѼá π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε Windows. äá¡δ
- ß«óÑΓδ »« »«ó«ñπ Γ«ú«, ¬á¬¿¼ «íαẫ¼ óδñѽ∩Γ∞ »á¼∩Γ∞ ¿ ¬á¬
- φΣΣÑ¬Γ¿ó¡« ¿ß»«½∞º«óáΓ∞ αẽ¿τ¡δÑ ¼ÑΓ«ñδ ñ½∩ óδñѽѡ¿∩ »á¼∩Γ¿.
-
- é ñá¡¡«¼ αáºñÑ½Ñ ¼δ ß«ßαÑñ«Γ«τ¿¼ ó¡¿¼á¡¿Ñ ¡á «ß¡«ó¡δσ
- «Φ¿í¬áσ »α«úαá¼¼¿α«óá¡¿∩ ó ßαÑñÑ Windows, ¬«Γ«αδÑ óδ ñ«½ª¡δ
- ¿ºíÑúáΓ∞ ó ßó«¿σ »α«úαá¼¼áσ. àß½¿ óδ »«¡¿¼áÑΓÑ, ¬á¬ αáí«ΓáÑΓ
- ß¿ßΓѼá π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε Windows, Γ« ß½ÑñπεΘ¿Ñ ß«óÑΓδ íπñπΓ
- »α«ºαáτ¡δ.
-
- ìÑ »αÑñ»«½áúá⌐ΓÑ, τΓ« πα«óÑ¡∞ »α¿ó¿½Ñú¿⌐, ¡á ¬«Γ«α«¼
- αáí«ΓáÑΓ óáΦá »α«úαá¼¼á, «ßΓá¡ÑΓß∩ ¡Ñ¿º¼Ñ¡¡δ¼.
-
- üπñπΘ¿Ñ óÑαß¿¿ Windows íπñπΓ ¿º¼Ñ¡∩Γ∞ πα«óÑ¡∞ »α¿ó¿½Ñú¿⌐,
- ¡á ¬«Γ«α«¼ αáí«ΓáεΓ »α¿¬½áñ¡δÑ »α«úαá¼¼δ.
-
- ìÑ ¿ß»«½∞ºπ⌐ΓÑ ñá½∞¡¿Ñ π¬áºáΓѽ¿ ¡á ßΓáΓ¿τÑ߬¿Ñ ñá¡¡δÑ ó
- ¼á½«⌐ ¿ ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- ÅαÑñ»«½«ª¿¼, ¼«ñπ½∞ ß«ñÑαª¿Γ ß½ÑñπεΘ¿Ñ «íΩ∩ó½Ñ¡¿∩:
-
- static LPSTR lpstrDlgName = "MyDlg";
- /* ìà æïàäôëÆà äÇììÄîô ÅÉêîàÉô */
- .
- .
- .
- hDlg = CreateDialog(hInstance,
- lpstrDlgName,
- hWndParent,
- lpDlgFunction);
-
- ô¬áºáΓѽ∞ LPSTR (char FAR *) πßΓá¡áó½¿óáÑΓß∩ »α¿ ºáúαπº¬Ñ
- »α«úαá¼¼δ ó »á¼∩Γ∞ ¿ ¼«ªÑΓ ßΓáΓ∞ ¡Ñ¬«ααÑ¬Γ¡δ¼, Ñß½¿ Windows
- »ÑαѼÑßΓ¿Γ áóΓ«¼áΓ¿τÑ߬¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ, ¬«Γ«αδ⌐ ß«ñÑনΓ
- ßΓ᫬π "MyDlg" (¬«¡Ñτ¡« φΓ«ú« ¡Ñ »α«¿º«⌐ñÑΓ, Ñß½¿
- áóΓ«¼áΓ¿τÑ߬¿⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ íπñÑΓ Σ¿¬ß¿α«óá¡¡δ¼).
-
-
- Windows 3.0/pg/3#3 = 49 =
-
- ÅαÑñδñπΘ¿⌐ »α¿¼Ñα ¼«ª¡« ¿ß»αáó¿Γ∞, Ñß½¿ «íΩ∩ó¿Γ∞ í½¿ª¡¿⌐
- π¬áºáΓѽ∞ ¡á ßΓ᫬π, PSTR (char NEAR *), ¿ »α¿óÑßΓ¿ Ñú« ¬ Γ¿»π
- LPSTR ó ó맮óÑ Σπ¡¬µ¿¿ CreateDialog, ¬á¬ »«¬áºá¡« ó ß½ÑñπεΘѼ
- »α¿¼ÑαÑ:
-
- static PSTR pstrDlgName = "MyDlg";
- /* æïàäôëÆà äÇììÄîô ÅÉêîàÉô */
- .
- .
- .
- hDlg = CreateDialog(hInstance,
- (LPSTR)pstrDlgName,
- hWndParent,
- lpDlgFunction);
-
- ƒó¡«Ñ »α¿óÑñÑ¡¿Ñ ¬ Γ¿»π ñá½∞¡Ñú« π¬áºáΓѽ∩ ó ¼«¼Ñ¡Γ ó맮óá
- Σπ¡¬µ¿¿ »α¿óÑñÑΓ ¬ Γ«¼π, τΓ« ß«ñÑন¼«Ñ αÑú¿ßΓαá DS íπñÑΓ
- »«¼ÑΘÑ¡« ó ßΓѬ ó ¼«¼Ñ¡Γ ó맮óá Σπ¡¬µ¿¿, á ¡Ñ ó ¼«¼Ñ¡Γ ºáúαπº¬¿
- »α«úαá¼¼δ.
-
- ìÑ »«ßδ½á⌐ΓÑ ñá¡¡δÑ ñαπú«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ τÑαѺ
- ú½«íá½∞¡δ⌐ ñÑß¬α¿»Γ«α.
-
- ä½∩ αáºñѽѡ¿∩ ñá¡¡δσ ß ñαπú«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ ¡Ñ
- ¿ß»«½∞ºπ⌐ΓÑ ú½«íá½∞¡δ⌐ ñÑß¬α¿»Γ«α, Γ.¬. óδ ñ«½ª¡δ
- »«ñαáºπ¼ÑóáΓ∞, τΓ« óáΦá ¿ ñαπú¿Ñ »α«úαá¼¼δ ¿¼ÑεΓ αáºí¿Γ«Ñ ¡á
- τáßΓ¿ áñαÑß¡«Ñ »α«ßΓαá¡ßΓó«. ìá»α¿¼Ñα, Ñß½¿ óáΦá »α¿¬½áñ¡á∩
- »α«úαá¼¼á αáí«ΓáÑΓ »α¿ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ EMS ß í«½∞Φ¿¼
- ΣαÑ⌐¼«¼ «ΓαíαáªÑ¡¿∩. ÇñαÑß , ó«ºóαáΘáѼδ⌐ »α¿ αáºαÑΦÑ¡¿¿
- ñÑß¬α¿»Γ«αá, «»αÑñѽ∩ÑΓ í½«¬ ó «í½áßΓ¿ «Γ«íαáªÑ¡¿∩. àß½¿ óáΦá
- »α¿¬½áñ¡á∩ »α«úαá¼¼á »«ßδ½áÑΓ ºáΓѼ φëà ñÑß¬α¿»Γ«α ñαπú«⌐
- »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ, Γ« »α¿ »«»δ⪥ »«½πτ¿Γ∞ áñαÑß í½«¬á
- »á¼∩Γ¿ (ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GlobalLock), ó αѺπ½∞ΓáΓÑ óδ »«½πτ¿ΓÑ
- áñαÑß ó «ñ¡«¼Ñú«íá⌐Γ«ó«¼ Σ¿º¿τÑ߬«¼ áñαÑß¡«¼ »α«ßΓαá¡ßΓóÑ.
- Äñ¡á¬« φëà ñÑß¬α¿»Γ«α π¬áºδóáÑΓ ¡á ñá¡¡δÑ, «Γ«íαáªÑ¡¡δÑ ó
- «í½áßΓ∞ «Γ«íαáªÑ¡¿∩ EMS ñ½∩ ñαπú«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, á ¡Ñ
- ñá¡¡δÑ óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
-
- Éáßß¼«Γα¿¼ ß½ÑñπεΘ¿⌐ ¡ÑóÑα¡δ⌐ »α¿¼Ñα:
-
- WORD wMyMsg;
- HANDLE hGlobalObject;
- .
- .
- .
- wMyMsg = RegisterWindowMessage((LPSTR)"MyMessage");
- hGlobalHandle = GlobalAlloc(GMEM_FIXED,100H);
- .
- .
- .
- PostMessage(-1,wMyMsg,hGlobalObject,0L);
- /* ìà æïàäôëÆà äÇììÄîô ÅÉêîàÉô */
-
-
- Windows 3.0/pg/3#3 = 50 =
-
- é ñá¡¡«¼ »α¿¼ÑαÑ óßѼ «¬¡á¼ (¿ ñαπú¿σ »α¿¬½áñ¡δσ »α«úαá¼¼)
- »ÑαÑñáÑΓß∩ ߻ѵ¿á½∞¡« ºáαÑú¿ßΓα¿α«óá¡¡«Ñ ß««íΘÑ¡¿Ñ. àß½¿ ñαπúá∩
- »α«úαá¼¼á ºáαÑú¿ßΓα¿α«óá½á ß««íΘÑ¡¿Ñ ß Γᬿ¼ ªÑ ¿¼Ñ¡Ñ¼
- "MyMessage", Γ« «¡á Γá¬ªÑ ß¼«ªÑΓ αáß»«º¡áΓ∞ ñá¡¡«Ñ ß««íΘÑ¡¿Ñ ó
- «ñ¡«⌐ ¿º Σπ¡¬µ¿⌐ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ «¬¡á. àß½¿ ºáΓѼ φΓá
- »α«úαá¼¼á »«»δΓáÑΓß∩ »«½πτ¿Γ∞ áñαÑß «íΩѬΓá, «»αÑñѽ∩Ѽ«ú«
- ñÑß¬α¿»Γ«α«¼ hGlobalObject, Γ« »α¿ αáí«ΓÑ »α¿ ¬«¡Σ¿úπαᵿ¿
- »á¼∩Γ¿ EMS ß í«½∞Φ¿¼ ΣαÑ⌐¼«¼ «Γ«íαáªÑ¡¿∩, áñαÑß, ó«ºóαáΘáѼδ⌐
- Σπ¡¬µ¿Ñ⌐ GlobalLock, íπñÑΓ ¡ÑóÑα¡δ¼. äáªÑ ΓÑ ñá¡¡δÑ, ¬«Γ«αδÑ
- óδñѽѡδ ß áΓα¿íπΓ«¼ GMEM_FIXED, óßÑ αáó¡« ó ñá¡¡«⌐
- ¬«¡Σ¿úπαᵿ¿ «Γ«íαáªáεΓß∩ ó αáßΦ¿αÑ¡¡πε »á¼∩Γ∞.
-
- èα«¼Ñ Γ«ú«, ó íπñπΘ¿σ óÑαß¿∩σ Windows »α¿ αáí«ΓÑ ó
- ßΓá¡ñáαΓ¡«⌐ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ ¿ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿
- αáßΦ¿αÑ¡¡«ú« αѪ¿¼á »α«µÑßß«αá 80386 áñαÑß¡«Ñ »α«ßΓαá¡ßΓó«
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ íπñÑΓ αáºñѽѡ¡δ¼ ¡á τáßΓ¿.
-
- Windows »«ññÑনóáÑΓ ß½ÑñπεΘ¿Ñ ¼ÑΓ«ñδ «í¼Ñ¡á ñá¡¡δ¼¿ ¼Ñªñπ
- »α¿¬½áñ¡δ¼¿ »α«úαἼἿ - φΓ« ß¿ßΓѼ¡δ⌐ íπΣÑα ¿ »α«Γ«¬«½
- ñ¿¡á¼¿τÑ߬«ú« «í¼Ñ¡á ñá¡¡δ¼¿ (DDE). àß½¿ óδ »«ßδ½áÑΓÑ τÑαѺ DDE
- ú½«íá½∞¡δ⌐ ñÑß¬α¿»Γ«α, Γ« «¡ ñ«½ªÑ¡ ¿¼ÑΓ∞ áΓα¿íπΓ
- GMEM_DDESHARE. Åα¿ αáºñѽѡ¿¿ »á¼∩Γ¿ óδ óßÑúñá ñ«½ª¡δ
- »«½∞º«óáΓ∞ß∩ DDE.
-
- éδ ¼«ªÑΓÑ »«½∞º«óáΓ∞ß∩ »α«Γ«¬«½«¼ DDE ñ½∩ »ÑαÑñáτ¿
- ú½«íá½∞¡«ú« ñÑß¬α¿»Γ«αá »«Γ«¼π, τΓ« ñ½∩ Γᬿσ ñÑß¬α¿»Γ«α«ó
- Windows óδ»«½¡∩ÑΓ ñ«»«½¡¿Γѽ∞¡πε «íαáí«Γ¬π. è«úñá óΓ«αá∩
- »α¿¬½áñ¡δ∩ »α«úαá¼¼á »δΓáÑΓß∩ »«½πτ¿Γ∞ áñαÑß Γᬫú« í½«¬á
- »á¼∩Γ¿, Windows ºáúαπªáÑΓ Ñú« ¿º αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿ »Ñαó«⌐
- »α«úαá¼¼δ ó« óαѼѡ¡δ⌐ ú½«íá½∞¡δ⌐ í½«¬ ó «í½áßΓ¿ «Γ«íαáªÑ¡¿∩
- óΓ«α«⌐ »α«úαá¼¼δ. 髺óαáΘáѼδ⌐ Σπ¡¬µ¿Ñ⌐ GlobalLock áñαÑß Γᬿ¼
- «íαẫ¼ π¬áºδóáÑΓ ¡á φëà óαѼѡ¡δ⌐ ú½«íá½∞¡δ⌐ í½«¬. Åਪ½áñ¡á∩
- »α«úαá¼¼á, ¬«Γ«αá∩ ó ¡áßΓ«∩Θ¿⌐ ¼«¼Ñ¡Γ «Γ«íαáªÑ¡á ¡á Σ¿º¿τÑ߬πε
- »á¼∩Γ∞, ¼«ªÑΓ Γ«½∞¬« τ¿ΓáΓ∞ φΓ¿ ñá¡¡δÑ. è«úñá »α«úαá¼¼á
- óδºδóáÑΓ Σπ¡¬µ¿ε GlobalUnlock, Windows πñá½∩ÑΓ φëà óαѼѡ¡δ⌐
- í½«¬ ¿º ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ óΓ«α«⌐
- »α«úαá¼¼δ.
-
- ìÑ »«ñαáºπ¼Ñóá⌐ΓÑ ºáó¿ß¿¼«ßΓ¿ ¼Ñªñπ ñÑß¬α¿»Γ«α«¼ ¿ ñá½∞¡¿¼
- π¬áºáΓѽѼ ó αạδσ αѪ¿¼áσ.
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ ú½«íá½∞¡δσ í½«¬«ó »á¼∩Γ¿ ñ½∩ »«½πτÑ¡¿∩
- áñαÑßá í½«¬á ¡Ñ«íσ«ñ¿¼« óßÑúñá »«½∞º«óáΓ∞ß∩ Σπ¡¬µ¿Ñ⌐
- GlobalLock, ¡Ñºáó¿ß¿¼« «Γ αѪ¿¼á, ó ¬«Γ«α«¼ αáí«ΓáÑΓ Windows.
-
- ìÑ ºáúαπªá⌐ΓÑ ó ßÑú¼Ñ¡Γ¡δÑ αÑú¿ßΓαδ º¡áτÑ¡¿∩, «Γ½¿τáεΘ¿Ñß∩
- «Γ ΓÑσ, τΓ« ºáúαπªÑ¡δ Windows ¿½¿ DOS.
-
- Åα¿ αáí«ΓÑ Windows ó ßΓá¡ñáαΓ¡«⌐ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ ¿ ó
- ¬«¡Σ¿úπαᵿ¿ αáßΦ¿αÑ¡¡«ú« αѪ¿¼á »α«µÑßß«αá 80386 ßÑú¼Ñ¡Γ¡δÑ
- αÑú¿ßΓαδ αáßß¼áΓα¿óáεΓß∩ ¬á¬ ßÑ½Ñ¬Γ«αδ, á ¡Ñ ¬á¬ áñαÑßá
- »áαáúαáΣ«ó. Æá¬¿¼ «íαẫ¼, ¡Ñ ¡áñ« »δΓáΓ∞ß∩ ßτ¿ΓáΓ∞ Γáí½¿µπ
- »αÑαδóá¡¿⌐, πßΓá¡«ó¿ó ó 0 αÑú¿ßΓα DS ¿½¿ ES. êß»«½∞ºπ⌐ΓÑ Γ«½∞¬«
-
- Windows 3.0/pg/3#3 = 51 =
-
- Σπ¡¬µ¿¿ DOS ñ½∩ ºáσóáΓá »αÑαδóá¡¿⌐.
-
- ìÑ óδ»«½¡∩⌐ΓÑ ßἫßΓ«∩Γѽ∞¡« ßÑú¼Ñ¡Γ¡πε áα¿Σ¼ÑΓ¿¬π.
-
- ìÑ »δΓá⌐ΓÑß∞ πóѽ¿τ¿Γ∞ ßÑú¼Ñ¡Γ¡δ⌐ áñαÑß ñá½∞¡Ñú«
- π¬áºáΓѽ∩. ¥Γá ΓÑσ¡¿¬á ¡Ñ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡á, ¬«úñá
- Windows αáí«ΓáÑΓ ó ßΓá¡ñáαΓ¡«⌐ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ ¿½¿ ó
- ¬«¡Σ¿úπαᵿ¿ αáßΦ¿αÑ¡¡«ú« αѪ¿¼á »α«µÑßß«αá 80386. 漫Γα¿ΓÑ
- »áαáúαáΣ "ü½«¬¿α«óá¡¿Ñ ¿ αáºí½«¬¿α«óá¡¿Ñ í½«¬«ó ú½«íá½∞¡«⌐
- »á¼∩Γ¿" ó αáºñÑ½Ñ 16.2.3.
-
- ìÑ ßαáó¡¿óá⌐ΓÑ áñαÑßá ßÑú¼Ñ¡Γ«ó.
-
- ìÑ ßαáó¡¿óá⌐ΓÑ º¡áτÑ¡¿∩ ßÑ½Ñ¬Γ«α«ó ñ½∩ «»αÑñѽѡ¿∩ Γ«ú«,
- ¬á¬«⌐ ßÑú¼Ñ¡Γ ¡áσ«ñ¿Γß∩ ó ¼½áñΦ¿σ áñαÑßáσ. ¥Γá ΓÑσ¡¿¬á ¡Ñ ¼«ªÑΓ
- íδΓ∞ ¿ß»«½∞º«óá¡á, ¬«úñá Windows αáí«ΓáÑΓ ó ßΓá¡ñáαΓ¡«⌐
- ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ ¿½¿ ó ¬«¡Σ¿úπαᵿ¿ αáßΦ¿αÑ¡¡«ú« αѪ¿¼á
- »α«µÑßß«αá 80386.
-
- ìÑ τ¿Γá⌐ΓÑ ¿ ¡Ñ »¿Φ¿ΓÑ ºá ¬«¡µ«¼ «íΩѬΓá »á¼∩Γ¿.
-
- ì¿ »α¿ ¬á¬¿σ «íßΓ«∩Γѽ∞ßΓóáσ ¡Ñ »δΓá⌐ΓÑß∞ »¿ßáΓ∞ ¿½¿
- τ¿ΓáΓ∞ ñá¡¡δÑ ºá ¬«¡µ«¼ «íΩѬΓá »á¼∩Γ¿. ò«Γ∩ ó ¬«¡Σ¿úπαᵿ∩σ
- »á¼∩Γ¿ φΓ« ¡Ñ «Γ½áó½¿óáÑΓß∩, ¡« »α¿ αáí«ΓÑ Windows ó
- ßΓá¡ñáαΓ¡«⌐ ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ ¿½¿ ó ¬«¡Σ¿úπαᵿ¿ αáßΦ¿αÑ¡¡«ú«
- αѪ¿¼á »α«µÑßß«αá 80386 φΓ« »α¿ó«ñ¿Γ ¬ 󫺡¿¬¡«óÑ¡¿ε
- ¡ÑπßΓαá¡¿¼«⌐ «Φ¿í¬¿ (GP).
-
- 16.6 ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε ñ½∩ ¬«ñá »α«úαá¼¼δ.
-
- éδ ñ«½ª¡δ »½á¡¿α«óáΓ∞, ¬á¬ Windows íπñÑΓ π»αáó½∩Γ∞
- ¬«ñ«ó묨 ßÑú¼Ñ¡ΓἿ, ¬«Γ«αδÑ ß«ßΓáó½∩εΓ óδ»«½¡∩Ѽπε τáßΓ∞ óáΦÑ⌐
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿½¿ í¿í½¿«ΓѬ¿. ¥Γ« »½á¡¿α«óá¡¿Ñ ñ«½ª¡«
- ó¬½ετáΓ∞ ß½ÑñπεΘÑÑ:
-
- - 䫽ª¡δ ½¿ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ íδΓ∞ Σ¿¬ß¿α«óá¡¡δ¼¿,
- »ÑαѼÑΘáÑ¼δ¼¿ ¿½¿ πñá½∩Ñ¼δ¼¿.
-
- - 䫽ª¡á ½¿ óáΦá »α«úαá¼¼á ¿½¿ í¿í½¿«ΓѬá ß«ñÑαªáΓ∞ «ñ¿¡
- ¿½¿ ¡Ñ߬«½∞¬« ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó.
-
- - èᬠ»«ññÑনóáΓ∞ íá½á¡ß ¼Ñªñπ αẼÑαἿ ¬«ñ«óδσ
- ßÑú¼Ñ¡Γ«ó ¿ ñá½∞¡¿¼¿ ó맮óἿ ¼Ñªñπ ¡¿¼¿.
-
- - Å«α∩ñ«¬, ó ¬«Γ«α«¼ Windows ñ«½ª¡á ºáúαπªáΓ∞ ¬«ñ«óδÑ
- ßÑú¼Ñ¡Γδ.
-
- é ñá¡¡«¼ αáºñÑ½Ñ »α¿ó«ñ¿Γß∩ ¿¡Σ«α¼áµ¿∩ « Γ«¼, ¬á¬ Windows
- π»αáó½∩ÑΓ ¬«ñ«¼ »α¿¬½áñ¡δσ »α«úαá¼¼ ¿ í¿í½¿«ΓѬ, á Γá¬ªÑ ñáεΓß∩
- ß«óÑΓδ « Γ«¼, ¬á¬ »¿ßáΓ∞ »α«úαá¼¼δ ß πτÑΓ«¼ ñá¡¡«⌐ ¿¡Σ«α¼áµ¿¿.
- 16.6.1 êß»«½∞º«óá¡¿Ñ áΓα¿íπΓ«ó ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó.
-
-
- Windows 3.0/pg/3#3 = 52 =
-
- ä½∩ π»αáó½Ñ¡¿∩ ¬«ñ«ó묨 ßÑú¼Ñ¡ΓἿ Windows ¿ß»«½∞ºπÑΓ ΓÑ
- ªÑ ß»«ß«íδ, τΓ« ¿ ñ½∩ π»αáó½Ñ¡¿∩ ßÑú¼Ñ¡ΓἿ ñá¡¡δσ. éδ ¼«ªÑΓÑ ¿
- τáßΓ« ñ«½ª¡δ αáºñѽ¿Γ∞ óáΦπ »α¿¬½áñ¡πε »α«úαá¼¼π ¡á «Γñѽ∞¡δÑ
- ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ. éδ ¼«ªÑΓÑ «íΩ∩ó¿Γ∞, τΓ« «»αÑñѽѡ¡δ⌐ ¬«ñ«óδ⌐
- ßÑ»ú¼Ñ¡Γ ñ«½ªÑ¡ íδΓ∞ Σ¿¬ß¿α«óá¡¡δ¼, »ÑαѼÑΘáÑ¼δ¼ ¿½¿
- ßíαáßδóáѼδ¼, ΓᬠªÑ ¬á¬ óδ φΓ« ñѽáÑΓÑ ñ½∩ áóΓ«¼áΓ¿τÑ߬«ú«
- ßÑú¼Ñ¡Γá ñá¡¡δσ ¿½¿ ñ½∩ ú½«íá½∞¡δσ «íΩÑ¬Γ«ó.
-
- é Σá⌐½Ñ «»¿ßá¡¿∩ ¼«ñπ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ (.DEF) ß
- »«¼«Θ∞ε «»ÑαáΓ«αá CODE ¼«ª¡« π¬áºáΓ∞, τΓ« »« π¼«½τá¡¿ε ¬«ñ«óδÑ
- ßÑú¼Ñ¡Γδ íπñπΓ Σ¿¬ß¿α«óá¡¡δ¼¿, »ÑαѼÑΘáÑ¼δ¼¿ ¿½¿ ßíαáßδóáÑ¼δ¼¿.
- ìá»α¿¼Ñα, ó ß½ÑñπεΘѼ »α¿¼ÑαÑ «íΩ∩ó½∩ÑΓß∩, τΓ« ñ½∩ ¬«ñ«óδσ
- ßÑú¼Ñ¡Γ«ó »« π¼«½τá¡¿ε íπñÑΓ »α¿¼Ñ¡∩Γ∞ß∩ áΓα¿íπΓ MOVEABLE:
-
- CODE MOVEABLE;
-
- éδ ¼«ªÑΓÑ «»αÑñѽ¿Γ∞ ñαπú¿Ñ áΓα¿íπΓδ ñ½∩ ¬«¡¬αÑΓ¡«ú«
- ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá, ¿ß»«½∞ºπ∩ ¼ÑΓ«ñ, «»¿ßá¡¡δ⌐ ó αáºñÑ½Ñ 16.6.2,
- "êß»«½∞º«óá¡¿Ñ ¡Ñ߬«½∞¬¿σ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó".
-
- àß½¿ óδ «íΩ∩ó¿ΓÑ ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ ¬á¬ ßíαáßδóáѼδ⌐, Γ«
- Windows ¼«ªÑΓ ßíα«ß¿Γ∞ Ñú«, Ñß½¿ »«¡áñ«í¿Γß∩ »á¼∩Γ∞ ñ½∩
- πñ«ó½ÑΓó«αÑ¡¿∩ ºá»α«ßá ¡Ñ ÑÑ óδñѽѡ¿Ñ. ū߬«½∞¬π ¬«ñ«óδ⌐
- ßÑú¼Ñ¡Γ ¡Ñ¿º¼Ñ¡∩Ѽδ⌐, Γ« »α¿ ßíα«ßÑ ßÑú¼Ñ¡Γá ¡Ñ ¡πª¡« «»áßáΓ∞ß∩
- »«ΓÑα¿ ñá¡¡δσ. Åα¿ ó맮óÑ ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá, «ΓßπΓßΓóπεΘÑú« ó
- »á¼∩Γ¿, Windows ºáúαπªáÑΓ Ñú« ¿º .EXE-Σá⌐½á. Äñ¡á¬«, Ñß½¿
- ßíαáßδóáѼ«ú« ßÑú¼Ñ¡Γá ¡ÑΓ ó »á¼∩Γ¿, Γ« ñ½∩ Ñú« ó맮óá
- ΓαÑíπÑΓß∩ ñ«»«½¡¿Γѽ∞¡«Ñ óαѼ∩, ¡Ñ«íσ«ñ¿¼«Ñ Windows ñ½∩ Ñú«
- ºáúαπº¬¿ ó »á¼∩Γ∞. æ ñαπú«⌐ ßΓ«α«¡δ, φΓ« ñ«ó«½∞¡« ß½áíδ⌐
- ¡Ññ«ßΓáΓ«¬, Γ.¬. ñ½∩ ßíα«ßá ßÑú¼Ñ¡Γ«ó Windows ¿ß»«½∞ºπÑΓ
- á½ú«α¿Γ¼ LRU, ¿ Γᬿ¼ «íαẫ¼ τáßΓ« ¿ß»«½∞ºπѼδÑ ßÑú¼Ñ¡Γδ ¡Ñ
- íπñπΓ ßíα«ΦÑ¡δ.
- 16.6.2 êß»«½∞º«óá¡¿Ñ ¡Ñ߬«½∞¬¿σ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó.
-
- ü«½∞Φ¿¡ßΓó« »α¿¬½áñ¡δσ »α«úαá¼¼ Windows ñ«½ª¡«
- ¬«¼»¿½¿α«óáΓ∞ß∩ ó ß¼ÑΦá¡¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿. è«ñ ñ«½ªÑ¡ íδΓ∞
- αáºñѽѡ ¡á «Γ¡«ß¿Γѽ∞¡« ¡Ñí«½∞Φ¿Ñ (»α¿¼Ñα¡« 4è) ßÑú¼Ñ¡Γδ. ¥Γ«
- »«ºó«½∩ÑΓ Windows ½Ñú¬« »ÑαѼÑΘáΓ∞ ¿σ ó »á¼∩Γ¿. ê¡Σ«α¼áµ¿ε «
- ß¼ÑΦá¡¡«⌐ ¼«ñѽ¿ óδ ¡á⌐ñÑΓÑ ó αáºñÑ½Ñ 16.3, "êß»«½∞º«óá¡¿Ñ
- ¼«ñѽÑ⌐ »á¼∩Γ¿".
-
- è«úñá óδ ¬«¼»¿½¿απÑΓÑ ¼«ñπ½∞ ¡á ∩ºδ¬Ñ æ, ¬«ñ«ó«¼π ßÑú¼Ñ¡Γπ
- »« π¼«½τá¡¿ε »α¿ßóá¿óáÑΓß∩ ¿¼∩ _TEXT. éδ ¼«ªÑΓÑ »α¿ßó«¿Γ∞
- ¬«ñ«ó«¼π ßÑú¼Ñ¡Γπ ñαπú«Ñ ¿¼∩ ß »«¼«Θ∞ε ¬½ετá -NT ó ¬«¼á¡ñÑ cl.
- éδ ñѽ¿ΓÑ ¬«ñ ¡á αẽ¿τ¡δÑ ßÑú¼Ñ¡Γδ, »α¿ßóá¿óá∩ αẽ¿τ¡δÑ ¿¼Ñ¡á
- ßÑú¼Ñ¡Γ«ó αáº¡δ¼ ¼«ñπ½∩¼. æ½ÑñπεΘá∩ ¬«¼á¡ñá ß«ºñáÑΓ ¬«ñ«óδ⌐
- ßÑú¼Ñ¡Γ ß ¿¼Ñ¡Ñ¼ CODESEG1.
-
- cl -u -c -AS -Gsw -Oas -Zpe -NT CODESEG1 module1.c
-
- ä½∩ ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá ¼«ª¡« π¬áºáΓ∞ áΓα¿íπΓδ, «Γ½¿τ¡δÑ «Γ
- πßΓá¡áó½¿óáѼδσ »« π¼«½τá¡¿ε «»ÑαáΓ«α«¼ CODE ó Σá⌐½Ñ «»¿ßá¡¿∩
-
- Windows 3.0/pg/3#3 = 53 =
-
- ¼«ñπ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. ìá»α¿¼Ñα, ß½ÑñπεΘ¿⌐ Σá⌐½ «»¿ßá¡¿∩
- ¼«ñπ½∩ «íΩ∩ó½∩ÑΓ óßÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ »ÑαѼÑΘáÑ¼δ¼¿, ºá
- ¿ß¬½ετÑ¡¿Ñ¼ ßÑú¼Ñ¡Γá ß ¿¼Ñ¡Ñ¼ CODESEG1, ¬«Γ«αδ⌐ «íΩ∩ó½∩ÑΓß∩
- ßíαáßδóáѼδ¼:
-
- CODE LOADONCALL MOVEABLE
-
- SEGMENTS
- CODESEG1 MOVEABLE DISCARDABLE
-
- 16.6.3 üá½á¡ß¿α«óá¡¿Ñ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó.
-
- ò«Γ∩ ¼δ ú«ó«α¿½¿ « Γ«¼, τΓ« ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ ñ«½ª¡δ íδΓ∞
- ¼á½Ñ¡∞¬¿¼¿, ¡Ñ«íσ«ñ¿¼« »αÑñóáα¿Γѽ∞¡« «µÑ¡¿Γ∞, ó« τΓ« óδ½∞εΓß∩
- ñá½∞¡¿Ñ ó맮óδ ¼Ñªñπ ßÑú¼Ñ¡ΓἿ »« ßαáó¡Ñ¡¿ε ß í½¿ª¡¿¼¿ ó¡πΓα¿
- ßÑú¼Ñ¡Γ«ó. ä½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Windows ñá½∞¡¿⌐ ó맮ó
- «íσ«ñ¿Γß∩ ¡á¼¡«ú« ñ«α«ªÑ, τѼ ó DOS. èáªñδ⌐ ó맮ó ΓαÑíπÑΓ «Γ
- Windows ñ«»«½¡¿Γѽ∞¡«⌐ «íαáí«Γ¬¿, Γ.¬. Ñú« ¡Ñ«íσ«ñ¿¼« ¡á»αáó¿Γ∞
- ó ßÑú¼Ñ¡Γ, ¬«Γ«αδ⌐ ¼«ú íδΓ∞ »ÑαѼÑΘÑ¡ ¿½¿ ßíα«ΦÑ¡.
-
- çáñáτá íá½á¡ß¿α«ó¬¿ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó ó »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ ºá¬½ετáÑΓß∩ ó ¼¿¡¿¼¿ºáµ¿¿ ñá½∞¡¿σ ó맮ó«ó ¼Ñªñπ
- ßÑú¼Ñ¡ΓἿ, αẼÑα ¬«Γ«αδσ ¡Ñ »αÑóδΦáÑΓ º¡áτ¿Γѽ∞¡« 4è.
- öπ¡¬µ¿¿, τáßΓ« óδºδóáεΘ¿Ñ ñαπú ñαπúá, ñ«½ª¡δ »«¼ÑΘáΓ∞ß∩ ó «ñ¿¡
- ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ ß πτÑΓ«¼ αẼÑαá ßÑú¼Ñ¡Γá.
- 16.6.4 Å«α∩ñ«¬ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó ó Σá⌐½Ñ «»αÑñѽѡ¿∩
- ¼«ñπ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ (.DEF).
-
- é ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ EMS ß ¼á½δ¼ ΣαÑ⌐¼«¼ «Γ«íαáªÑ¡¿∩
- ßÑú¼Ñ¡Γδ ¿ αÑßπαßδ ºáúαπªáεΓß∩ óδΦÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩ ó
- ß««ΓóÑΓßΓó¿¿ ß »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ε ¿σ ºáúαπº¬¿ ó »á¼∩Γ∞
- Windows. àß½¿ ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ ºáúαπªÑ¡ óδΦÑ úαá¡¿µδ
- «Γ«íαáªÑ¡¿∩, «¡ ¡Ñ ¼«ªÑΓ íδΓ∞ ßíα«ΦÑ¡.
-
- ùΓ«íδ ¼á¬ß¿¼á½∞¡« ¿ß»«½∞º«óáΓ∞ »αÑ¿¼πΘÑßΓóá αáßΦ¿αÑ¡¡«⌐
- »á¼∩Γ¿, óδ ñ«½ª¡δ «»¿ßáΓ∞ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩ ¬á¬
- PRELOAD ¿ MOVEABLE ßÑú¼Ñ¡Γδ, ¬ ¬«Γ«αδ¼ »α«¿ßσ«ñ¿Γ τáßΓ«Ñ
- «íαáΘÑ¡¿Ñ. ¥Γ¿ ßÑú¼Ñ¡Γδ ñ«½ª¡δ íδΓ∞ π¬áºá¡δ ó ß»¿ß¬Ñ ó ¡áτá½Ñ,
- Γ.¬. «¡¿ ñ«½ª¡δ íδΓ∞ ºáúαπªÑ¡δ »Ñαó묨. àß½¿ óδ φΓ«ú« ¡Ñ
- ßñѽáÑΓÑ, Γ« óδΦÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩ ¼«úπΓ »«»áßΓ∞ ¼Ñ¡ÑÑ
- ó᪡δÑ ßÑú¼Ñ¡Γδ. ìá»α¿¼Ñα, ¬«ñ ¿¡¿µ¿á½¿ºáµ¿¿, ¬«Γ«αδ⌐ ¡Ñ«íσ«ñ¿¼
- Γ«½∞¬« ó ¼«¼Ñ¡Γ ºáúαπº¬¿ »α«úαá¼¼δ, íπñÑΓ »«¼ÑΘÑ¡ ó αáßΦ¿αÑ¡¡πε
- »á¼∩Γ∞ ¡á óßÑ óαѼ∩ αáí«Γδ »α«úαá¼¼δ. ¥Γ« «º¡áτáÑΓ, τΓ« ñαπú¿Ñ
- ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ, «íαáΘÑ¡¿Ñ ¬ ¬«Γ«αδ¼ »α«¿ßσ«ñ¿Γ τáßΓ«, ¼«úπΓ
- «¬áºáΓ∞ß∩ ¡¿ªÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩ ¿ íπñπΓ ßíα«ΦÑ¡δ »α¿
- óδñѽѡ¿¿ ñ«»«½¡¿Γѽ∞¡«⌐ »á¼∩Γ¿.
-
- ä½∩ «»αÑñѽѡ¿∩ ¡á¿í«½ÑÑ τáßΓ« ¿ß»½«½∞ºπѼδσ ßÑú¼Ñ¡Γ«ó
- ¼«ª¡« ¿ß»«½∞º«óáΓ∞ Profiler. 漫Γα¿ΓÑ "Tools".
-
- Äí∩ó½Ñ¡¿Ñ ßÑú¼Ñ¡Γá ¬á¬ MOVEABLE ¿½¿ DISCARDABLE ¡Ñ ó½¿∩ÑΓ,
- Ñß½¿ ßÑú¼Ñ¡Γ íπñÑΓ ºáúαπªÑ¡ óδΦÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩ ó
-
- Windows 3.0/pg/3#3 = 54 =
-
- ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ EMS ß ¼á½δ¼ ΣαÑ⌐¼«¼ «Γ«íαáªÑ¡¿∩. éδ ¡Ñ
- ñ«½ª¡δ «íΩ∩ó½∩Γ∞ ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ ¬á¬ FIXED, ¡« φΓ« ¡Ñ «º¡áτáÑΓ,
- τΓ« óδ ¼«ªÑΓÑ φΓ« ñѽáΓ∞ ñ½∩ ñαπú¿σ ¬«¡Σ¿úπαᵿ⌐ »á¼∩Γ¿,
- ¡á»α¿¼Ñα, ñ½∩ EMS ß í«½∞Φ¿¼ ΣαÑ⌐¼«¼ «Γ«íαáªÑ¡¿∩.
-
- ÉÑßπαßδ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ΓᬠªÑ ¼«úπΓ αáß»«½áúáΓ∞ß∩
- óδΦÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩. éδ ¼«ªÑΓÑ ó½¿∩Γ∞ ¡á φΓ« ΓᬠªÑ, ¬á¬
- óδ φΓ« ñѽáÑΓÑ ó ß½πτáÑ ß ¬«ñ«ó묨 ßÑú¼Ñ¡ΓἿ. ä½∩ φΓ«ú«
- ¡Ñ«íσ«ñ¿¼« «íΩ∩ó¿Γ∞ αÑßπαß ó Σá⌐½Ñ «»¿ßá¡¿∩ αÑßπαß«ó ß
- »áαá¼ÑΓα«¼ PRELOAD ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- mycursor CURSOR PRELOAD point.cur
-
- çá¼ÑΓ¿¼, τΓ« ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ ñ«½ª¡δ íδΓ∞ ºáúαπªÑ¡δ »ÑαÑñ
- αÑßπαßἿ.
- 16.7 çᬽετÑ¡¿Ñ.
-
- Windows π»αáó½∩ÑΓ »á¼∩Γ∞ε, »δΓá∩ß∞ «íÑß»Ñτ¿Γ∞ ÑÑ ¡á¿í«½ÑÑ
- φΣΣÑ¬Γ¿ó¡«Ñ ¿ß»«½∞º«óá¡¿Ñ. ê¼ÑÑΓß∩ τÑΓδαÑ «ß¡«ó¡δσ ¬«¡Σ¿úπαᵿ¿
- »á¼∩Γ¿, ¬«Γ«αδÑ í«½ÑÑ ¿½¿ ¼Ñ¡ÑÑ ß««ΓóÑΓßΓóπεΓ αѪ¿¼á¼ αáí«Γδ
- Windows. é ¬áªñ«⌐ ¬«¡Σ¿úπαᵿ¿ Windows «ßπΘÑßΓó½∩ÑΓ π»αáó½Ñ¡¿Ñ
- »á¼∩Γ∞ε »«αạ«¼π. Åਪ½áñ¡δÑ »α«úαá¼¼δ ñ«½ª¡δ ß½Ññ«óáΓ∞
- ¡Ñ¬«Γ«αδ¼ »αáó¿½á¼, τΓ«íδ αáí«ΓáΓ∞ »«ñ Windows, αáí«ΓáεΘÑ⌐ ó
- ßΓá¡ñáαΓ¡«¼ αѪ¿¼Ñ ¿½¿ ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ »α«µÑßß«αá 80386.
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- êß»«½∞º«óá¡¿Ñ ∩ºδ¬á Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá: ú½áóá 14, "ƒºδ¬
- æ ¿ ∩ºδ¬á áßßѼí½Ñαá æ ¿ ∩ºδ¬ áßßѼí½Ñαá".
- ó »α¿¬½áñ¡δσ »α«ú-
- αá¼¼áσ Windows
-
- öπ¡¬µ¿¿ π»αáó½Ñ¡¿∩ æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1: â½áóá 4,
- »á¼∩Γ∞ε "滿߫¬ Σπ¡¬µ¿⌐".
-
- Ä»ÑαáΓ«αδ Σá⌐½á æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 2: â½áóá 10,
- «»αÑñѽѡ¿∩ ¼«ñπ½∩ "Ä»ÑαáΓ«αδ Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩".
-
-
-
- Windows 3.0/pg/3#3 = 55 =
-
- â½áóá 17. Åáαá¼ÑΓαδ »α¿¡ΓÑαá.
- ----------------------------------------------------------------
- è«úñá »«½∞º«óáΓѽ∞ «ßπΘÑßΓó½∩ÑΓ »ÑτáΓ∞ ¿º óáΦÑ⌐ »α«úαá¼¼δ,
- Γ« »«½πτÑ¡¡δ⌐ αѺπ½∞ΓáΓ íπñÑΓ ºáó¿ßÑΓ∞ ¡Ñ Γ«½∞¬« «Γ ñá¡¡δσ,
- ¬«Γ«αδÑ óδó«ñ∩Γß∩ ¡á »α¿¡ΓÑα, ¡« ¿ «Γ ΓѬπΘ¿σ »áαá¼ÑΓα«ó
- »α¿¡ΓÑαá. ¥Γ¿ »áαá¼ÑΓαδ ¼«úπΓ ó¬½ετáΓ∞ Γá¬πε ¿¡Σ«α¼áµ¿ε, ¬á¬
- αẼÑα ßΓαá¡¿µδ, «α¿Ñ¡Γᵿε óδó«ñá ¿½¿ Γ¿» íπ¼áú¿.
-
- Åα«ßΓÑ⌐Φ¿⌐ »πΓ∞ ñ½∩ óδó«ñá ¡á »α¿¡ΓÑα ¿ß»«½∞ºπÑΓ ΓѬπΘ¿Ñ
- πßΓá¡«ó«½Ñ¡¡δÑ »áαá¼ÑΓαδ (»«¬áºá¡ ó ú½áóÑ 12, "ÅÑτáΓ∞") íѺ ¿σ
- »α«óÑન ¿½¿ ¿º¼Ñ¡Ñ¡¿∩. Æá¬«⌐ »«ñσ«ñ αáí«ΓáÑΓ ñ« ΓÑσ »«α, »«¬á
- ΓѬπΘ¿Ñ »áαá¼ÑΓαδ »α¿¡ΓÑαá πñ«ó½ÑΓó«α∩εΓ ¡πªñá¼ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ. Äñ¡á¬«, Ñß½¿ φΓ« ¡Ñ Γá¬, Γ« óδó«ñ ¡á »α¿¡ΓÑα óáΦÑ⌐
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ íπñÑΓ «Γ½¿τáΓ∞ß∩ «Γ ¿ñÑá½∞¡«ú«. ìá»α¿¼Ñα,
- Ñß½¿ óáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á »ÑτáΓáÑΓ φ½Ñ¬Γα«¡¡πε Γáí½¿µπ,
- ¬«Γ«αá∩ ΓαÑíπÑΓ "½á¡ñΦáΣΓ¡πε" «α¿Ñ¡Γᵿε óδó«ñá, ¡á »α¿¡ΓÑαÑ,
- ¡á ¬«Γ«α«¼ πßΓá¡«ó½Ñ¡á "»«αΓαÑΓ¡á∩" «α¿Ñ¡Γᵿ∩, Γ« 󻫽¡Ñ
- 󫺼«ª¡«, τΓ« óδó«ñ¿¼δÑ ñá¡¡δÑ óδ½ÑºπΓ ºá »αáóπε úαá¡¿µπ
- íπ¼áú¿.
-
- Microsoft Windows 3.0 »«ºó«½∩ÑΓ ¿º¼Ñ¡¿Γ∞ »áαá¼ÑΓαδ
- »α¿¡ΓÑαá ó ß««ΓóÑΓßΓó¿¿ ß ¡πªñἿ óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ
- (¡á»α¿¼Ñα, «α¿Ñ¡Γᵿε óδó«ñá ¡á "½á¡ñΦáΣΓ¡πε" ¿½¿ Γ¿» íπ¼áú¿).
- Å«ß½Ñ «»αÑñѽѡ¿∩ ¡«óδσ »áαá¼ÑΓα«ó »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ
- »ÑτáΓáΓ∞, ¿ß»«½∞ºπ∩ ¡«óδÑ »áαá¼ÑΓαδ.
-
- ū߬«½∞¬π »áαá¼ÑΓαδ ¡á αạδσ »α¿¡ΓÑαáσ αẽ¿τáεΓß∩,
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ½∩ ¿º¼Ñ¡Ñ¡¿∩ ¿σ ñ«½ª¡á óºá¿¼«ñÑ⌐ßΓó«óáΓ∞
- ß ñαá⌐óÑα«¼ »α¿¡ΓÑαá. ü«½∞Φ¿¡ßΓó« ñαá⌐óÑα«ó »α¿¡ΓÑα«ó Windows
- ß«ñÑαªáΓ ß»Ñµ¿á½∞¡δÑ Σπ¡¬µ¿¿ ñ½∩ π»α«ΘÑ¡¿∩ π»αáó½Ñ¡¿∩
- »áαá¼ÑΓαἿ »α¿¡ΓÑαá.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡«, ¬á¬ ¿ß»«½∞º«óáΓ∞ φΓ¿ Σπ¡¬µ¿¿ ñ½∩
- ¼á¡¿»π½¿α«óá¡¿∩ »áαá¼ÑΓαἿ »α¿¡ΓÑα«ó.
-
- Åα¿ó«ñ¿Γß∩ ¿¡Σ«α¼áµ¿∩ »« ß½ÑñπεΘ¿¼ ΓѼá¼:
-
- - èᬠWindows π»αáó½∩ÑΓ »áαá¼ÑΓαἿ »α¿¡ΓÑα«ó.
-
- - êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ ñαá⌐óÑα«ó πßΓα«⌐ßΓó.
-
- - Å«½πτÑ¡¿Ñ σáαá¬ΓÑα¿ßΓ¿¬ ñαá⌐óÑαá »α¿¡ΓÑαá.
-
- - îá¡¿»π½¿α«óá¡¿Ñ »áαá¼ÑΓαἿ »α¿¡ΓÑα«ó.
-
- - è«»¿α«óá¡¿Ñ »áαá¼ÑΓα«ó ß «ñ¡«ú« »α¿¡ΓÑαá ¡á ñαπú«⌐.
-
- - 꺼ѡѡѡ¿Ñ »áαá¼ÑΓα«ó »α¿¡ΓÑαá »«½∞º«óáΓѽѼ.
-
- - Éáí«Γá ß ñαá⌐óÑαἿ, ¡á»¿ßá¡¡δ¼¿ ñ½∩ »αÑñδñπΘ¿σ óÑαß¿⌐
- Windows.
-
-
- Windows 3.0/pg/3#3 = 56 =
-
- 17.1 èᬠWindows π»αáó½∩ÑΓ »áαá¼ÑΓαἿ »α¿¡ΓÑα«ó.
-
- Åα¿ óδó«ñÑ ¡á »ÑτáΓ∞ »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ
- ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »α¿¡ΓÑαá, ß«ºñá¡¡δ⌐ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- CreateDC. Åα¿ ß«ºñá¡¿¿ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »α¿¡ΓÑαá »α¿¬½áñ¡á∩
- »α«úαá¼¼á «»αÑñѽ∩ÑΓ ñ½∩ ¡Ñú« ñαá⌐óÑα, ¿¼∩, »«αΓ ¿,
- ¡Ñ«í∩ºáΓѽ∞¡«, »áαá¼ÑΓαδ »α¿¡ΓÑαá ñ½∩ ñá¡¡«ú« ñαá⌐óÑαá. ¥Γ¿
- »áαá¼ÑΓαδ ºáó¿ß∩Γ «Γ πßΓα«⌐ßΓóá; ¬áªñδ⌐ ¡áí«α ∩ó½∩ÑΓß∩
- ߻ѵ¿Σ¿τ¡δ¼ ñ½∩ ¬«¡¬αÑΓ¡«ú« »α¿¡ΓÑαá ¿ ñαá⌐óÑαá. ū߬«½∞¬π
- Γ«τ¡δÑ »áαá¼ÑΓαδ ¼«úπΓ «Γ½¿τáΓ∞ß∩ ñ½∩ ¬áªñ«ú« »α¿¡ΓÑαá,
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á »ÑαÑñáóáΓ∞ ¬áªñ«¼π »α¿¡ΓÑαπ Γ«½∞¬«
- αáß»«º¡áóáѼδÑ ¿¼ »áαá¼ÑΓαδ.
-
- è«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á »α¿ »«ñú«Γ«ó¬Ñ ¬ »ÑτáΓ¿
- óδºδóáÑΓ CreateDC ñ½∩ ß«ºñá¡¿∩ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá ñ½∩
- »α¿¡ΓÑαá, Windows ß«ºñáÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá, ¿ß»«½∞ºπ∩ »Ñαóδ⌐
- ¡á⌐ñÑ¡¡δ⌐ ¡áí«α »áαá¼ÑΓα«ó. Åáαá¼ÑΓαδ ¿ΘπΓß∩ ó ß½ÑñπεΘѼ
- »«α∩ñ¬Ñ:
-
- 1. Windows »δΓáÑΓß∩ ó ¡áτá½Ñ ¿ß»«½∞º«óáΓ∞ »áαá¼ÑΓαδ (Ñß½¿
- «¡¿ ÑßΓ∞), »«ßδ½áѼδÑ Σπ¡¬µ¿¿ CreateDC ó »áαá¼ÑΓαÑ
- lpInitData.
-
- 2. àß½¿ »α¿ ó맮óÑ Σπ¡¬µ¿¿ CreateDæ »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ¡Ñ »ÑαÑñáÑΓ »áαá¼ÑΓα«ó »α¿¡ΓÑαá, Windows ¿ΘÑΓ »«ß½Ññ¡¿Ñ
- »áαá¼ÑΓαδ, »«ß½Ññ¡¿¼¿ ß«σαá¡Ñ¡¡δÑ ó »á¼∩Γ¿ ñαá⌐óÑα«¼
- »α¿¡ΓÑαá ß »«¼«Θ∞ε Σπ¡¬µ¿¿ SetEnvironment.
-
- 3. àß½¿ ñαá⌐óÑα »α¿¡ΓÑαá ÑΘÑ ¡Ñ ß«σαá¡∩½ Γá¬¿Ñ ñá¡¡δÑ ß
- »«¼«Θ∞ε SetEnvironment, Windows ¿ΘÑΓ »áαá¼ÑΓαδ »α¿¡ΓÑαá
- ó Σá⌐½Ñ WIN.INI.
-
- 4. àß½¿ WIN.INI ¡Ñ ß«ñÑαª¿Γ »«½¡«ú« ¡áí«αá »áαá¼ÑΓα«ó,
- ñαá⌐óÑα »α¿¡ΓÑαá ºá»«½¡∩ÑΓ »α«íѽδ ß«íßΓóÑ¡¡δ¼¿
- »áαá¼ÑΓαἿ, ¿ß»«½∞ºπÑ¼δ¼¿ »« π¼«½τá¡¿ε.
-
- ìá¿í«½∞ΦÑÑ π»αáó½Ñ¡¿Ñ »áαá¼ÑΓαἿ »α¿¡ΓÑαá óδ ¼«ªÑΓÑ
- «íÑß»Ñτ¿Γ∞, »ÑαÑñáóá∩ ¿σ »α¿ ó맮óÑ Σπ¡¬µ¿¿ CreateDC. àß½¿ óδ
- «»αÑñѽ¿ΓÑ »áαá¼ÑΓαδ »α¿¡ΓÑαá ß »«¼«Θ∞ε CreateDC, Γ« Windows
- íπñÑΓ ¿ß»«½∞º«óáΓ∞ ¿σ ó¼ÑßΓ« óßÑσ »áαá¼ÑΓα«ó ¿º Σá⌐½á WIN.INI
- ¿½¿ ñαá⌐óÑαá »α¿¡ΓÑαá.
- 17.1.1. Åáαá¼ÑΓαδ »α¿¡ΓÑαá ¿ ßΓαπ¬Γπαá DEVMODE.
-
- Äíδτ¡«, »áαá¼ÑΓαδ »α¿¡ΓÑαá ¿ß»«½∞ºπεΓß∩ ó Σ«α¼Ñ ßΓαπ¬Γπαδ
- DEVMODE. ìá»α¿¼Ñα, Ñß½¿ óδ »«ßδ½áÑΓÑ »áαá¼ÑΓαδ »α¿¡ΓÑαá »α¿
- ó맮óÑ Σπ¡¬µ¿¿ CreateDC, óδ ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ »«ßδ½áÑΓÑ
- π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ DEVMODE. (ê߬½ετÑ¡¿Ñ¼ ∩ó½∩ÑΓß∩ Σá⌐½
- WIN.INI, ó ¬«Γ«α«¼ »áαá¼ÑΓαδ »α¿¡ΓÑαá ß«ñÑαªáΓß∩ ó ó¿ñÑ
- ΓѬßΓ«óδσ ßΓ᫬.) Äíδτ¡«, »α¿¬½áñ¡δÑ »α«úαá¼¼δ ¡Ñ ß«ºñáεΓ
- ßἫßΓ«∩Γѽ∞¡« ßΓαπ¬Γπαπ DEVMODE, ó¼ÑßΓ« φΓ«ú« «¡¿ »«½πτáεΓ
- π¬áºáΓѽ∞ ¡á ¡ÑÑ «Γ ñαá⌐óÑαá »α¿¡ΓÑαá ¿ »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿
- ¼«ñ¿Σ¿µ¿απεΓ ÑÑ ß«ñÑন¼«Ñ. ¥Γ«Γ ¼ÑΓ«ñ úáαá¡Γ¿απÑΓ, τΓ«
- ßΓαπ¬Γπαá íπñÑΓ »«½¡«⌐ ¿ »αáó¿½∞¡«⌐.
-
- Windows 3.0/pg/3#3 = 57 =
-
-
- æΓαπ¬Γπαá DEVMODE ó¬½ετáÑΓ Γα¿ Γ¿»á ¿¡Σ«α¼áµ¿¿:
-
- ê¡Σ«α¼áµ¿∩ Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- ê¡Σ«α¼áµ¿∩ ºáú«½«ó¬á ÅÑαóδÑ »∩Γ∞ »«½Ñ⌐ ß«ñÑαªáΓ ¿¡Σ«α¼áµ¿ε
- ºáú«½«ó¬á ßΓαπ¬Γπαδ. ¥Γá ¿¡Σ«α¼áµ¿∩
- ó¬½ετáÑΓ ¿¼∩ »α¿¡ΓÑαá (¡á»α¿¼Ñα, "PCL/HP
- Laserjet"), óÑαß¿ε, ¿ ¿¡Σ«α¼áµ¿ε « αáº-
- ¼ÑαÑ ßΓαπ¬Γπαδ DEVMODE. éδ «í∩ºá¡δ π¬á-
- ºáΓ∞ »«½¡πε ¿¡Σ«α¼áµ¿ε ºáú«½«ó¬á.
-
- Ç»»áαáΓ¡«-¡Ñºáó¿ß¿¼á∩ ü«½∞Φ¿¡ßΓó« »«½Ñ⌐ DEVMODE ß«ñÑαªáΓ á»-
- ¿¡Σ«α¼áµ¿∩ »áαáΓ¡«-¡Ñºáó¿ß¿¼πε ¿¡Σ«α¼áµ¿ε, Γá¬πε
- ¬á¬ «α¿Ñ¡Γᵿ∩, αẼÑα íπ¼áú¿ ¿ τ¿ß½«
- ¬«»¿⌐. ò«Γ∩ ßΓαπ¬Γπαá DEVMODE ß«ñÑনΓ
- »«½¡δ⌐ ¡áí«α á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δσ »áαá-
- ¼ÑΓα«ó, ¡Ñ¬«Γ«αδÑ »α¿¡ΓÑαδ ¡Ñ »«ññÑন-
- óáεΓ ¡¿ «ñ¡«ú« ¿º ¡¿σ. ìá»α¿¼Ñα, í«½∞-
- Φ¿¡ßΓó« »α¿¡ΓÑα«ó ¼«ªÑΓ »ÑτáΓáΓ∞ Γ«½∞¬«
- ¡á «ñ¡«⌐ ßΓ«α«¡Ñ íπ¼áú¿, ¿ ñαá⌐óÑαδ Γᬿσ
- »α¿¡ΓÑα«ó ñ«½ª¡δ ¿ú¡«α¿α«óáΓ∞ »«½Ñ
- dmDuplex ßΓαπ¬Γπαδ DEVMODE, ¬«Γ«α«Ñ «»-
- αÑñѽ∩ÑΓ ñóπσßΓ«α«¡¡εε »ÑτáΓ∞.
-
- Ç»»áαáΓ¡«-ºáó¿ß¿¼á∩ Å«½Ñ dmDriverData ßΓαπ¬Γπαδ DEVMODE
- ¿¡Σ«α¼áµ¿∩ ß«ñÑαª¿Γ á»»áαáΓ¡«-ºáó¿ß¿¼δÑ ñá¡¡δÑ, ¬«-
- Γ«αδÑ «»αÑñѽ∩εΓß∩ ñ½∩ ¬áªñ«ú« ñαá⌐óÑαá
- πßΓα«⌐ßΓóá. Äíδτ¡«, »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ¡Ñ ñ«½ª¡á ¿º¼Ñ¡∩Γ∞ φΓ¿ ñá¡¡δÑ, á »α«ßΓ«
- »ÑαÑñáóáΓ∞ ¿σ ñαá⌐óÑαπ.
- ───────────────────────────────────────────────────────────────
-
- ùΓ«íδ »α¿ ó맮óÑ CreateDC »ÑαÑñáΓ∞ »«½¡πε ßΓαπ¬Γπαπ
- DEVMODE, ½πτΦÑ óßÑú« ó¡áτá½Ñ »«½πτ¿Γ∞ ÑÑ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- ExtDeviceMode (ó¬½ετáÑΓß∩ ó ñαá⌐óÑαδ »α¿¡ΓÑα«ó Windows 3.0).
- ¥Γá Σπ¡¬µ¿¿ ß««íΘáÑΓ ñαá⌐óÑαπ »α¿¡ΓÑαá, τΓ« ¡Ñ«íσ«ñ¿¼« ß«ºñáΓ∞
- ßΓαπ¬Γπαπ DEVMODE c ΓѬπΘ¿¼¿ »áαá¼ÑΓαἿ »α¿¡ΓÑαá. ū߬«½∞¬π
- ñαá⌐óÑα ß«ºñáÑΓ ßΓαπ¬Γπαπ ßἫßΓ«∩Γѽ∞¡« ¿ ºá»«½¡∩ÑΓ ÑÑ
- á»»áαáΓ¡«-ºáó¿ß¿¼«⌐ ¿¡Σ«α¼áµ¿Ñ⌐, óδ ¼«ªÑΓÑ αáßß¼áΓα¿óáΓ∞ ÑÑ ¬á¬
- ºá¬«¡τÑ¡¡πε. çáΓѼ óáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ »«ß½áΓ∞
- ßΓαπ¬Γπαπ DEVMODE Σπ¡¬µ¿¿ CreateDC.
-
- Ä»¿ßá¡¿Ñ Σπ¡¬µ¿¿ DEVMODE »α¿óÑñÑ¡« ó æ»αáó«τ¡«¼
- απ¬«ó«ñßΓóÑ, Γ«¼ 2. öπ¡¬µ¿∩ CreateDC «»¿ßá¡á ó »Ñαó«¼ Γ«¼Ñ
- æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá.
- 17.1.2. Åáαá¼ÑΓαδ »α¿¡ΓÑαá ¿ ßαÑñá »α¿¡ΓÑαá
-
- "æαÑñ«⌐ »α¿¡ΓÑαá" ¡áºδóáεΓ ¡áí«α Ñú« »áαá¼ÑΓα«ó,
- ¡áσ«ñ∩Θ¿⌐ß∩ ó »á¼∩Γ¿. ÑΓ íδΓ∞ »« «ñ¡«⌐ ßαÑñÑ »α¿¡ΓÑαá ¡á
- ¬áªñδ⌐ »«αΓ. ÆÑ¬πΘ¿⌐ ñαá⌐óÑα »α¿¡ΓÑαá (Ñß½¿ »«½∞º«óáΓѽ∞
- πßΓá¡«ó¿½ Ñú« ñ½∩ »«αΓá) «ΓóÑτáÑΓ ºá ß«ºñá¡¿Ñ ¿ »«ññÑ᪬π ßαÑñδ
-
- Windows 3.0/pg/3#3 = 58 =
-
- »α¿¡ΓÑαá ñ½∩ ñá¡¡«ú« »«αΓá.
-
- Åáαá¼ÑΓαδ ßαÑñδ ñ½∩ ¬áªñ«ú« »α¿¡ΓÑαá á¡á½«ú¿τ¡δ
- ¿ß»«½∞ºπÑ¼δ¼ ó Σá⌐½Ñ WIN.INI, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« ó Σá⌐½Ñ
- WIN.INI «¡¿ αáßß¼áΓα¿óáεΓß∩ ¬á¬ ßΓ᫬¿, ó Γ« óαѼ∩ ¬á¬ ó ßαÑñÑ
- «¡¿ ß«ñÑαªáΓß∩ ó »á¼∩Γ¿ ó Σ«α¼Ñ ßΓαπ¬Γπαδ DEVMODE. Å«ññÑ᪬á
- ¿¡Σ«α¼áµ¿¿ ó »á¼∩Γ¿ πóѽ¿τ¿óáÑΓ ß¬«α«ßΓ∞ ß«ºñá¡¿∩ ¬«¡ΓѬßΓá
- πßΓα«⌐ßΓóá ñ½∩ »α¿¡ΓÑαá.
-
- è«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á ß«ºñáÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá
- ñ½∩ »α¿¡ΓÑαá íѺ «»αÑñѽѡ¿∩ ß«íßΓóÑ¡¡δσ »áαá¼ÑΓα«ó, Windows
- ¿ß»«½∞ºπÑΓ »áαá¼ÑΓαδ ¿º ßαÑñδ »α¿¡ΓÑαá.
-
- ū߬«½∞¬π ßαÑñá »α¿¡ΓÑαá ßó∩ºá¡á ß »«αΓ«¼ »α¿¡ΓÑαá,
- ¿º¼Ñ¡Ñ¡¿Ñ ßαÑñδ »α¿¡ΓÑαá »«ó½ÑτÑΓ ºá ß«í«⌐ ¿º¼Ñ¡Ñ¡¿Ñ »áαá¼ÑΓα«ó
- »α¿¡ΓÑαá ñ½∩ óßÑσ »α¿¬½áñ¡δσ »α«úαá¼¼, ¬«Γ«αδÑ ¡Ñ ºáñáεΓ
- ß«íßΓóÑ¡¡δσ »áαá¼ÑΓα«ó.
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ ñαá⌐óÑα«ó »α¿¡ΓÑαá, ¡á»¿ßá¡¡δσ ñ½∩
- Windows óÑαß¿¿ 3.0, »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ¼á¡¿»π½¿α«óáΓ∞
- »áαá¼ÑΓαἿ »α¿¡ΓÑαá ñ½∩ πñ«ó½ÑΓó«αÑ¡¿∩ ß«íßΓóÑ¡¡δσ ¡πªñ. àÑ
- ¿º¼Ñ¡Ñ¡¿∩ ¡Ñ »«ó½¿∩εΓ ¡á ñαπú¿Ñ »α¿¬½áñ¡δÑ »α«úαá¼¼δ
- ¿ß»«½∞ºπεΘ¿Ñ Γ«Γ ªÑ »«αΓ. (Åα¿ ¿ß»«½∞º«óá¡¿¿ ñαá⌐óÑα«ó
- »α¿¡ΓÑα«ó ñ½∩ í«½ÑÑ αá¡¡δσ óÑαß¿⌐ Windows »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ¼«ú½á ¿º¼Ñ¡∩Γ∞ »áαá¼ÑΓαδ »α¿¡ΓÑαá, Γ«½∞¬« ¿º¼Ñ¡∩∩ Σá⌐½ WIN.INI
- ¿½¿ ßαÑñπ »α¿¡ΓÑαá. ¥Γ« ó½¿∩½« ¡á óßÑ »α¿¬½áñ¡δÑ »α«úαá¼¼δ,
- ¿ß»«½ºπεΘ¿Ñ φëà »«αΓ íѺ πßΓá¡«ó¬¿ ß«íßΓóÑ¡¡δσ »áαá¼ÑΓα«ó.)
- 17.2 êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ ñαá⌐óÑα«ó πßΓα«⌐ßΓó.
-
- ü«½∞Φ¿¡ßΓó« ñαá⌐óÑα«ó »α¿¡ΓÑα«ó ó¬½ετáÑΓ ß»Ñµ¿á½∞¡δÑ
- Σπ¡¬µ¿¿, ¬«Γ«αδÑ »«ºó«½∩εΓ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ¼á¡¿»π½¿α«óáΓ∞
- »áαá¼ÑΓαἿ ñαá⌐óÑαá ¿ »«αΓá »α¿¡ΓÑαá.
-
- - æΓáαδÑ ñαá⌐óÑαδ »α¿¡ΓÑα«ó ß«ñÑαªáΓ Σπ¡¬µ¿ε DeviceMode.
- ¥Γá Σπ¡¬µ¿∩ «Γ«íαáªá½á »á¡Ñ½∞ ñ¿á½«úá ó ¬«Γ«α«⌐
- »«½∞º«óáΓѽ∞ ¼«ú πßΓá¡«ó¿Γ∞ »áαá¼ÑΓαδ »α¿¡ΓÑαá, ΓᬿÑ
- ¬á¬ «α¿Ñ¡Γᵿ∩ ¿ αẼÑα íπ¼áú¿. 꺼ѡѡ¿∩, ó¡ÑßÑ¡¡δÑ
- »«½∞º«óáΓѽѼ, ó½¿∩½¿ ¡á Σá⌐½ WIN.INI ¿ ¡á ßαÑñπ
- »α¿¡ΓÑαá.
-
- - äαá⌐óÑαδ »α¿¡ΓÑα«ó Windows óÑαß¿¿ 3.0 ß«ñÑαªáΓ Σπ¡¬µ¿ε
- ExtDeviceMode, ¬«Γ«αá∩ »αÑñ«ßΓáó½∩ÑΓ »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ ¼¡«ú« 󫺼«ª¡«ßΓÑ⌐ »« ¼á¡¿»π½¿α«óá¡¿ε
- »áαá¼ÑΓαἿ »α¿¡ΓÑαá íѺ ó½¿∩¡¿∩ ¡á ñαπú¿Ñ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ. ¥Γá Σπ¡¬µ¿∩ »«ºó«½∩ÑΓ »«½∞º«óáΓÑ½ε »«½πτ¿Γ∞
- ¬«»¿ε »áαá¼ÑΓα«ó »α¿¡ΓÑαá ó ßΓαπ¬ΓπαÑ DEVMODE.
- Åਪ½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ºáΓѼ ¿ß»«½∞º«óáΓ∞ φΓπ
- ßΓαπ¬Γπαπ ñ½∩ ¿º¼Ñ¡Ñ¡¿∩ »áαá¼ÑΓα«ó »α¿¡ΓÑαá, ó¼ÑßΓ«
- Γ«ú«, τΓ«íδ ß«ºñáóáΓ∞ ÑÑ ßἫßΓ«∩Γѽ∞¡«. (ExtDeviceMode
- Γá¬ªÑ ß«ñÑαª¿Γ óßÑ ó«º¼«ª¡«ßΓ¿, ¬«Γ«αδÑ »αÑñ«ßΓáó½∩½á
- Σπ¡¬µ¿∩ DeviceMode ó αá¡¡¿σ óÑαß¿∩σ Windows).
-
-
- Windows 3.0/pg/3#3 = 59 =
-
- - äαá⌐óÑαδ Windows óÑαß¿¿ 3.0 Γá¬ªÑ ß«ñÑαªáΓ Σπ¡¬µ¿ε
- DeviceCapabilities. ¥Γá Σπ¡¬µ¿∩ »«ºó«½∩ÑΓ »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ «»αÑñѽ¿Γ∞ ¬á¬¿Ñ »«½∩ ßΓαπ¬Γπαδ DEVMODE
- »«ññÑনóáεΓß∩ ñá¡¡δ¼ »α¿¡ΓÑα«¼.
-
- öπ¡¬µ¿¿ ñαá⌐óÑαá πßΓα«⌐ßΓóá ∩ó½∩εΓß∩ τáßΓ∞ε ßἫú«
- ñαá⌐óÑαá, á ¡Ñ «íδτ¡δ¼¿ Σπ¡¬µ¿∩¼¿ Windows. Å«φΓ«¼π ñ½∩ ó맮óá
- Σπ¡¬µ¿⌐ ñαá⌐óÑαá ¡Ñ«íσ«ñ¿¼« ß½Ññ«óáΓ∞ ß½ÑñπεΘÑ⌐ »α«µÑñπαÑ:
-
- 1. çáúαπº¿Γ∞ ñαá⌐óÑα ó »á¼∩Γ∞ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- LoadLibrary.
-
- 2. æ »«¼«Θ∞ε Σπ¡¬µ¿¿ GetProcAddress »«½πτ¿Γ∞ áñαÑß
- ¡Ñ«íσ«ñ¿¼«⌐ Σπ¡¬µ¿¿. (àß½¿ Σπ¡¬µ¿∩ GetProcAddress
- ó«ºóαáΘáÑΓ ¡π½Ñó«⌐ π¬áºáΓѽ∞, φΓ« «º¡áτáÑΓ, τΓ« ñá¡¡δ⌐
- ñαá⌐óÑα ¡Ñ »«ññÑনóáÑΓ φΓπ Σπ¡¬µ¿ε.)
-
- 3. ä½∩ ó맮óá Σπ¡¬µ¿¿ ñαá⌐óÑαá ¿ß»«½∞ºπ⌐ΓÑ áñαÑß,
- ó«ºóαáΘáѼδ⌐ Σπ¡¬µ¿Ñ⌐ GetProcAddress.
-
- 4. Å«ß½Ñ ºáóÑαΦÑ¡¿∩ ¿ß»«½∞º«óá¡¿∩ Σπ¡¬µ¿⌐ ñαá⌐óÑαá,
- ß »«¼«Θ∞ε Σπ¡¬µ¿¿ Windows FreeLibrary óδúαπº¿ΓÑ ñαá⌐óÑα
- πßΓα«⌐ßΓóá ¿º ß¿ßΓѼδ.
-
- ì¿ªÑ »α¿óÑñÑ¡ »α¿¼Ñα, ¬á¬ óδºóáΓ∞ Σπ¡¬µ¿ε ExtDeviceMode
- ñ½∩ ñαá⌐óÑαá PSCRIPT.DRV:
-
- FARPROC lpfnExtDeviceMode;
- FARPROC lpfnDeviceMode;
- HANDLE hDriver;
-
- hDriver = LoadLibrary("PSCRIPT.DRV);
- lpfnExtDeviceMode = GetProcAddress(hDriver,"ExtDeviceMode");
-
- if(lpfnExtDeviceMode != NULL)
- {
- /* àß½¿ ñαá⌐óÑα »«ññÑনóáÑΓ Σπ¡¬µ¿ε ExtDeviceMode,
- óδºóáΓ∞ Σπ¡¬µ¿ε ExtDeviceMode τÑαѺ áñαÑß, ß«ñÑα-
- ªáΘ¿⌐ß∩ ó lpfnExtDeviceMode. */
- }
- else
- {
- /* àß½¿ ñαá⌐óÑα ¡Ñ ñ½∩ óÑαß¿¿ 3.0 ¿ ¡Ñ »«ññÑনóáÑΓ
- ¡«óδÑ Σπ¡¬µ¿¿, Γ« ó¼ÑßΓ« φΓ«ú« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε
- DeviceMode */
-
- lpfnDeviceMode = GetProcAddress(hDriver,"DeviceMode");
-
- if(lpfnExtDeviceMode != NULL)
- {
- /* àß½¿ ñαá⌐óÑα »«ññÑনóáÑΓ Σπ¡¬µ¿ε DeviceMode,
- óδºóáΓ∞ Σπ¡¬µ¿ε DeviceMode τÑαѺ áñαÑß, ß«ñÑα-
- ªáΘ¿⌐ß∩ ó lpfnDeviceMode. */
-
- Windows 3.0/pg/3#3 = 60 =
-
- }
- }
- FreeLibrary(hDriver); /* »«ß½Ñ ºáóÑαΦÑ¡¿∩ óδúαπº¿Γ∞
- ñαá⌐óÑα */
-
- 17.3 Å«½πτÑ¡¿Ñ σáαá¬ΓÑα¿ßΓ¿¬ ñαá⌐óÑαá »α¿¡ΓÑαá.
-
- öπ¡¬µ¿∩ ñαá⌐óÑαá DeviceCapabilities »«ºó«½∩ÑΓ óá¼
- «»αÑñѽ¿Γ∞ 󫺼«ª¡«ßΓ¿ ¬«¡¬αÑΓ¡«ú« »α¿¡ΓÑαá, ó¬½ετá∩ »«½∩
- ßΓαπ¬Γπαδ DEVMODE, ¬«Γ«αδÑ »«ññÑনóáÑΓ ñá¡¡δ⌐ »α¿¡ΓÑα.
- ìá»α¿¼Ñα, Ñß½¿ óáΦá »α«úαá¼¼á ºáó¿ß¿Γ «Γ "½á¡ñΦáΣΓ¡«⌐"
- «α¿Ñ¡Γᵿ¿, «¡á ¼«ªÑΓ óδºóáΓ∞ Σπ¡¬µ¿ε DeviceCapabilities, τΓ«íδ
- «»αÑñѽ¿Γ∞, »«ññÑনóáÑΓ ½¿ ñá¡¡δ⌐ »α¿¡ΓÑα Γá¬πε «α¿Ñ¡Γᵿε.
-
- öπ¡¬µ¿∩ DeviceCapabilities »«ñα«í¡« «»¿ßá¡á ó »Ñαó«¼ Γ«¼Ñ
- æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá.
- 17.4 Éáí«Γá ß »áαá¼ÑΓαἿ »α¿¡ΓÑαá.
-
- öπ¡¬µ¿∩ ExtDeviceMode »«ºó«½∩ÑΓ «ñ¡«óαѼѡ¡« óδ»«½¡∩Γ∞
- ¡Ñ߬«½∞¬« ñÑ⌐ßΓó¿⌐. éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ÑÑ ñ½∩:
-
- - Å«½πτÑ¡¿∩ ßΓαπ¬Γπαδ DEVMODE, ß«ñÑαªáΘÑ⌐ ΓѬπΘ¿Ñ
- »áαá¼ÑΓαδ »α¿¡ΓÑαá.
-
- - 꺼ѡѡ¿∩ «ñ¡«ú« ¿ í«½ÑÑ »áαá¼ÑΓα«ó »α¿¡ΓÑαá.
-
- - çá»α«ßá π »«½∞º«óáΓѽ∩ »áαá¼ÑΓα«ó »α¿¡ΓÑαá.
-
- - æíα«ßá ßαÑñδ »α¿¡ΓÑαá ¿ ¿¡Σ«α¼áµ¿¿ ó WIN.INI.
-
- ū߬«½∞¬π ExtDeviceMode óδ»«½¡∩ÑΓ ßΓ«½∞¬« αẽ¿τ¡δσ
- Σπ¡¬µ¿⌐ óδ 󫺼«ª¡« «í¡áαπª¿ΓÑ, τΓ« »α«úαá¼¼á τáßΓ« óδºδóáÑΓ
- Σπ¡¬µ¿ε ExtDeviceMode ¡á »α«Γ∩ªÑ¡¿¿ »«½πτÑ¡¿∩, ¿º¼Ñ¡Ñ¡¿∩ ¿
- »«ññÑ᪬¿ »áαá¼ÑΓα«ó »α¿¡ΓÑαá.
-
- Åα¿ ó맮óÑ ExtDeviceMode óδ π¬áºδóáÑΓÑ:
-
- - äÑß¬α¿»Γ«α ¼«ñπ½∩ ¡Ñ«íσ«ñ¿¼«ú« óá¼ ñαá⌐óÑαá »α¿¡ΓÑαá
- (Ñú« ó«ºóαáΘáεΓ Σπ¡¬µ¿¿ LoadLibrary ¿ GetModuleHandle).
-
- - ê¼∩ ñαá⌐óÑαá »α¿¡ΓÑαá (ìá»α¿¼Ñα, "PCL/HP Laserjet").
-
- - ê¼∩ »«αΓá, ¬ ¬«Γ«α«¼π »«ñ¬½ετÑ¡ »α¿¡ΓÑα (¡á»α¿¼Ñα,
- "LPT2:").
-
- - Ä»Ñαᵿε, ¬«Γ«απε ¡Ñ«íσ«ñ¿¼« óδ»«½¡¿Γ∞.
-
- éδ «»αÑñѽ∩ÑΓÑ αẽ¿τ¡δÑ «»Ñαᵿ¿, π¬áºδóá∩
- ß««ΓóÑΓßΓóπεΘ¿Ñ º¡áτÑ¡¿∩ ó »áαá¼ÑΓαÑ wMode. àß½¿ óδ
- σ«Γ¿ΓÑ óδ»«½¡¿Γ∞ ¡Ñ߬«½∞¬« «»Ñαᵿ⌐ «ñ¡«óαѼѡ¡«, óδ
- ¼«ªÑΓÑ ¬«¼í¿¡¿α«óáΓ∞ ñóá ¿½¿ í«½ÑÑ º¡áτÑ¡¿⌐ ß »«¼«Θ∞ε
- í¿Γ«ó«⌐ «»Ñαᵿ¿ OR ("|").
-
- Windows 3.0/pg/3#3 = 61 =
-
-
- - üπΣÑα ñ½∩ óó«ñá (Ñß½¿ ÑßΓ∞).
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ó ¬áτÑßΓóÑ íπΣÑαá óó«ñá
- π¬áºáΓ∞ »«½¡πε ¿½¿ τáßΓ∞ ßΓαπ¬Γπαδ DEVMODE. (é «Γ½¿τ¿Ñ
- «Γ ñαπú¿σ Σπ¡¬µ¿⌐, ¿ß»«½∞ºπεΘ¿σ ßΓαπ¬Γπαπ DEVMODE,
- ExtDeviceMode ¡Ñ ΓαÑíπÑΓ, τΓ«íδ ßΓαπ¬Γπαá DEVMODE íδ½á
- »«½¡«⌐.)
-
- - éδσ«ñ¡«⌐ íπΣÑα (Ñß½¿ ÑßΓ∞).
-
- Å« ºá»α«ßπ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ñαá⌐óÑα óδó«ñ¿Γ ó
- óδσ«ñ¡«⌐ íπΣÑα »«½¡πε ßΓαπ¬Γπαπ DEVMODE.
-
- Åα¿¼Ñτá¡¿Ñ: öπ¡¬µ¿∩ ExtDeviceMode ΓαÑíπÑΓ ó
- ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ó«ßѼ∞ »áαá¼ÑΓα«ó. éδΦÑ »α¿óÑñÑ¡δ Γ«½∞¬« ΓÑ
- »áαá¼ÑΓαδ, ¬«Γ«αδÑ «Γ¡«ß∩Γß∩ ¬ ¡áΦѼπ «íßπªñÑ¡¿ε. Å«½¡«Ñ
- «»¿ßá¡¿Ñ »áαá¼ÑΓα«ó Σπ¡¬µ¿¿ ExtDeviceMode óδ ¡á⌐ñÑΓÑ ó »Ñαó«¼
- Γ«¼Ñ æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá.
- 17.4.1 Ä»αÑñѽѡ¿Ñ óó«ñá ¿ óδó«ñá Σπ¡¬µ¿¿ ExtDeviceMode.
-
- Åáαá¼ÑΓα wMode «»αÑñѽ∩ÑΓ, ¬á¬ Σπ¡¬µ¿∩ ExtDeviceMode
- »«½πτáÑΓ óó«ñ ¿ ¬πñá «¡á »α«¿ºó«ñ¿Γ óδó«ñ. ÉÑᬵ¿∩ ñαá⌐óÑαá
- ºáó¿ß¿Γ «Γ π¬áºá¡¡«ú« º¡áτÑ¡¿∩ (º¡áτÑ¡¿⌐).
-
- àß½¿ óδ πßΓá¡áó½¿óáÑΓÑ »áαá¼ÑΓα wMode αáó¡δ¼ ¡π½ε, Γ«
- Σπ¡¬µ¿∩ ExtDeviceMode ó«ºóαáΘáÑΓ »α«ßΓ« αẼÑα ó íá⌐Γáσ
- ßΓαπ¬Γπαδ DEVMODE. Äíδτ¡«, Γᬿ¼ «íαẫ¼ óδ»«½¡∩εΓ »Ñαóδ⌐ ó맮ó
- Σπ¡¬µ¿¿ ExtDeviceMode, τΓ«íδ «»αÑñѽ¿Γ∞ αẼÑα íπΣÑαá ñ½∩
- óδó«ñá.
-
- éδ ¼«ªÑΓÑ »α¿ßó«¿Γ∞ »áαá¼ÑΓαπ wMode «ñ¡« ¿½¿ í«½∞ΦÑ
- º¡áτÑ¡¿⌐. Ä¡¿ »α¿óÑñÑ¡δ ó Γáí½¿µÑ 17.1. ä½∩ ¬áªñ«ú« º¡áτÑ¡¿∩ ó
- Γáí½¿µÑ π¬áºá¡« ß½ÑñπεΘÑÑ:
-
- - àú« ¿¼∩.
-
- - ùѼ π»αáó½∩ÑΓ: óó«ñ«¼ ¿½¿ óδó«ñ«¼.
-
- - è«α«Γ¬«Ñ «»¿ßá¡¿Ñ ¬áªñ«ú« º¡áτÑ¡¿∩.
-
- Æáí½¿µá 17.1 ç¡áτÑ¡¿∩ »áαá¼ÑΓαá wMode.
- ───────────────────────────────────────────────────────────────
- ç¡áτÑ¡¿Ñ éó«ñ/éδó«ñ Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- DM_IN_BUF éó«ñ æ««íΘáÑΓ ñαá⌐óÑαπ, τΓ« ¡Ñ«íσ«-
- ñ¿¼« ¿º¼Ñ¡¿Γ∞ »áαá¼ÑΓαδ »α¿¡-
- ΓÑαá ó ß««ΓóÑΓßΓó¿¿ ß »ÑαÑñá¡-
- ¡δ¼¿ ó« óσ«ñ¡«¼ íπΣÑαÑ ó ßΓαπ¬-
- ΓπαÑ DEVMODE.
-
- DM_IN_PROMPT éó«ñ æ««íΘáÑΓ ñαá⌐óÑαπ »α¿¡ΓÑαá, τΓ«
-
- Windows 3.0/pg/3#3 = 62 =
-
- ¡Ñ«íσ«ñ¿¼« óδóÑßΓ¿ »á¡Ñ½∞ ñ¿á-
- ½«úá Print Setup ¿ ¿º¼Ñ¡¿Γ∞
- ΓѬπΘ¿Ñ »áαá¼ÑΓαδ ó ß««ΓóÑßΓó¿¿
- ß π¬áºá¡¡δ¼¿ »«½∞º«óáΓѽѼ.
-
- DM_OUT_BUF éδó«ñ éδóÑßΓ¿ ΓѬπΘ¿Ñ »áαá¼ÑΓαδ »α¿¡-
- ΓÑαá ó óδσ«ñ¡«⌐ íπΣÑα ó Σ«α¼Ñ
- ßΓαπ¬Γπαδ DEVMODE.
-
- DM_OUT_DEFAULT éδó«ñ éδóÑßΓ¿ ΓѬπΘ¿Ñ »áαá¼ÑΓαδ
- »α¿¡ΓÑαá ó ßαÑñπ »α¿¡ΓÑαá ¿ ó
- Σá⌐½ WIN.INI.
- ───────────────────────────────────────────────────────────────
-
- éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ¬«¼í¿¡áµ¿¿ º¡áτÑ¡¿⌐ wMode, τΓ«íδ
- »«ºó«½¿Γ∞ π»αáó½∩Γ∞ »áαá¼ÑΓαἿ »α¿¡ΓÑαá ¬á¬ óáΦÑ⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ, Γᬠ¿ »«½∞º«óáΓѽε.
-
- é᪡«Ñ »α¿¼Ñτá¡¿Ñ: ä½∩ ¿º¼Ñ¡Ñ¡¿∩ »áαá¼ÑΓα«ó »α¿¡ΓÑαá óδ
- ñ«½ª¡δ π¬áºáΓ∞ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ «ñ¡« óσ«ñ¡«Ñ º¡áτÑ¡¿Ñ ¿ «ñ¡«
- óδσ«ñ¡«Ñ. ìá»α¿¼Ñα, ñ½∩ »«½πτÑ¡¿∩ »áαá¼ÑΓα«ó «Γ »«½∞º«óáΓѽ∩ ¿
- πßΓá¡«ó¬¿ ¿σ ó ßαÑñÑ »α¿¡ΓÑαá ¿ ó Σá⌐½Ñ WIN.INI óδ ¼«ªÑΓÑ
- ¿ß»«½∞º«óáΓ∞ ¬«¼í¿¡áµ¿ε º¡áτÑ¡¿⌐ DM_IN_PROMPT ¿ DM_OUT_DEFAULT.
- àß½¿ óδ π¬áª¿ΓÑ Γ«½∞¬« óδσ«ñ¡δÑ º¡áτÑ¡¿∩ (DM_OUT_BUF ¿½¿
- DM_OUT_DEFAULT), ñαá⌐óÑα óδóÑñÑΓ ΓѬπΘ¿Ñ »áαá¼ÑΓαδ, ¿ú¡«α¿απ∩
- ½εíδÑ π¬áºá¡¡δÑ óἿ óσ«ñ¡δÑ. àß½¿ óδ «»αÑñѽ¿ΓÑ Γ«½∞¬« óσ«ñ¡δÑ
- »áαá¼ÑΓαδ (DM_IN_PROMPT ¿½¿ DM_IN_BUF), ó맮ó ExtDeviceMode
- »α¿óÑñÑΓ Γ«½∞¬« ¬ óó«ñπ, ¿ ½εí«⌐ óδó«ñ ó ñá¡¡«¼ ß½πτáÑ ¡Ñ íπñÑΓ
- ¿¼ÑΓ∞ ¡¿¬á¬«ú« φΣΣѬΓá.
- 17.4.2 Å«½πτÑ¡¿Ñ ¬«»¿¿ »áαá¼ÑΓα«ó »α¿¡ΓÑαá.
-
- ùáßΓ« πñ«í¡« »α¿ αáí«ΓÑ ß »áαá¼ÑΓαἿ »α¿¡ΓÑαá ¿¼ÑΓ∞
- ΓѬπΘ¿¿ »áαá¼ÑΓαδ ¬«¡¬αÑΓ¡«ú« »α¿¡ΓÑαá. ¥Γ« »«ºó«½∩ÑΓ
- »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ «»αÑñѽ¿Γ∞, ß««ΓóÑΓßΓóπεΓ ½¿ «¡¿ ÑÑ
- ¡πªñá¼.
-
- ä½∩ »«½πτÑ¡¿∩ ¬«»¿¿ »áαá¼ÑΓα«ó ñαá⌐óÑαá »α¿¡ΓÑαá:
-
- 1. Ä»αÑñѽ¿ΓÑ, ߬«½∞¬« ¼ÑßΓá ΓαÑíπÑΓ óδσ«ñ¡á∩ ßΓαπ¬Γπαá
- DEVMODE. ä½∩ φΓ«ú« ó맮ó¿ΓÑ ExtDeviceMode ß »áαá¼ÑΓα«¼
- wMode αáó¡δ¼ 0.
-
- öπ¡¬µ¿∩ ExtDeviceMode ó«ºóαáΘáÑΓ αẼÑα ó íá⌐Γáσ
- ßΓαπ¬Γπαδ DEVMODE (¬«Γ«αá∩ ¼«ªÑΓ íδΓ∞ ß«ºñá¡á ó맮ó«¼
- ExtDeviceMode ß wMode αáó¡δ¼ DM_OUT_BUF).
-
- 2. éδñѽ¿ΓÑ íπΣÑα Γᬫú« αẼÑαá.
-
- 3. é맮ó¿ΓÑ ExtDeviceMode ß¡«óá. ÅÑαÑñáóáѼδÑ Ñ⌐ »áαá¼ÑΓαδ
- ñ«½ª¡δ ß«ñÑαªáΓ∞ ß½ÑñπεΘπε ¿¡Σ«α¼áµ¿ε:
-
-
- Windows 3.0/pg/3#3 = 63 =
-
- Åáαá¼ÑΓα ç¡áτÑ¡¿Ñ
- ───────────────────────────────────────────────────────
- lpDEVMODEoutput ô¬áºáΓѽ∞ ¡á óδσ«ñ¡«⌐ íπΣÑα, ¬«Γ«αδ⌐
- óδ óδñѽ¿½¿.
-
- wMode DM_OUT_BUF
- ───────────────────────────────────────────────────────
-
- äαá⌐óÑα »α¿¡ΓÑαá ºáΓѼ »«¼ÑΘáÑΓ ßΓαπ¬Γπαπ DEVMODE ß
- ΓѬπΘ¿¼¿ »áαá¼ÑΓαἿ »α¿¡ΓÑαá ó π¬áºá¡¡δ⌐ óἿ íπΣÑα.
-
- ū߬«½∞¬π óδσ«ñ¡«⌐ íπΣÑα ß«ñÑαª¿Γ »«½¡πε ßΓαπ¬Γπαπ
- DEVMODE, óδ ¼«ªÑΓÑ ºáΓѼ ÑÑ »ÑαÑñáóáΓ∞ Σπ¡¬µ¿∩¼ CreateDC ¿
- SetEnvironment, Γ.¬. «¡¿ «íÑ ΓαÑíπεΓ ó ¬áτÑßΓóÑ óσ«ñ¡«⌐
- ßΓαπ¬Γπαπ DEVMODE.
-
- Åα¿¼Ñτá¡¿Ñ: é맮ó Σπ¡¬µ¿¿ ExtDeviceMode c »áαá¼ÑΓα«¼ wMode
- αáó¡δ¼ DM_OUT BUF á¡á½«ú¿τÑ¡ ó맮óπ GetEnvironment, Γ.¬. ó
- «íÑ¿σ ß½πτá∩σ ó«ºóαáΘáεΓß∩ »áαá¼ÑΓαδ, ¿ß»«½∞ºπѼδÑ »«
- π¼«½τá¡¿ε. ÄΓ½¿τ¿Ñ ºá¬½ετáÑΓß∩ ó Γ«¼, τΓ« Σπ¡¬µ¿∩ ExtDeviceMode
- αáí«ΓáÑΓ óßÑúñá, Γ.¬. αáí«ΓáÑΓ ß ñαá⌐óÑα«¼, á GetEnvironment
- αáí«ΓáÑΓ óÑα¡« Γ«½∞¬« ó Γ«¼ ß½πτáÑ, Ñß½¿ ñαá⌐óÑα ñ« φΓ«ú«
- óδºδóá½ Σπ¡¬µ¿ε SetEnvironment.
- 17.4.3 꺼ѡѡ¿Ñ »áαá¼ÑΓα«ó »α¿¡ΓÑαá.
-
- ùáßΓ«, »α¿ óδó«ñÑ ¿¡Σ«α¼áµ¿¿ ¡á »α¿¡ΓÑα »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ ΓαÑíπÑΓß∩ ¿º¼Ñ¡¿Γ∞ ΓѬπΘ¿Ñ »áαá¼ÑΓαδ »α¿¡ΓÑαá.
-
- ä½∩ ¿º¼Ñ¡Ñ¡¿∩ »áαá¼ÑΓα«ó »α¿¡ΓÑαá π¬áª¿ΓÑ ó »áαá¼ÑΓαÑ
- wMode ¬á¬ óó«ñ (DM_IN_BUF ¿½¿ DM_IN_PROMPT), Γᬠ¿ óδó«ñ
- (DM_OUT_BUF ¿½¿ DM_OUT_DEFAULTS). éδ ¼«ªÑΓ π¬áºáΓ∞ ¡Ñ߬«½∞¬«
- º¡áτÑ¡¿⌐, ñ« ΓÑσ »«α, »«¬á ¿¼ÑÑΓß∩ «ñ¡« º¡áτÑ¡¿Ñ ñ½∩ óó«ñá ¿
- «ñ¡« ñ½∩ óδó«ñá. (ä½∩ ¿º¼Ñ¡Ñ¡¿∩ »áαá¼ÑΓα«ó íѺ ó½¿∩¡¿∩ ¡á
- ñαπú¿Ñ »α¿¬½áñ¡δÑ »α«úαá¼¼δ ¡Ñ ¿ß»«½∞ºπ⌐ΓÑ DM_OUT_DEFAULTS. ¥Γ«
- º¡áτÑ¡¿Ñ »α¿ó«ñ¿Γ ¬ ¿º¼Ñ¡Ñ¡¿ε »áαá¼ÑΓα«ó, ¿ß»«½∞ºπѼδσ »«
- π¼«½τá¡¿ε, ¡á π¬áºá¡¡δÑ óἿ).
-
- éσ«ñ¡δÑ º¡áτÑ¡¿∩ ¼«ª¡« π¬áºáΓ∞ ¡Ñ߬«½∞¬¿¼ ß»«ß«íἿ.
- èáªñδ⌐ ¿º ¡¿σ ΓαÑíπÑΓ ßó«Ñ⌐ ¬«¼í¿¡áµ¿¿ º¡áτÑ¡¿⌐ wMode. ¥Γ«
- ß½ÑñπεΘ¿Ñ ß»«ß«íδ:
-
- - ÅÑαÑñáÑΓÑ τáßΓ¿τ¡πε ßΓαπ¬Γπαπ DEVMODE ß ¡«ó묨
- ¡Ñ«íσ«ñ¿¼δ¼¿ »áαá¼ÑΓαἿ. (Åα¿ ó맮óÑ ExtDeviceMode
- π¬áºδóáÑΓÑ º¡áτÑ¡¿Ñ DM_IN_BUF).
-
- - éδó«ñ¿ΓÑ »á¡Ñ½∞ ñ¿á½«úá Printer Setup, τΓ«íδ
- »«½∞º«óáΓѽ∞ ¼«ú π¬áºáΓ∞ ΓαÑíπѼδÑ Ñ¼π »áαá¼ÑΓαδ. (Åα¿
- ó맮óÑ ExtDeviceMode π¬áºδóáÑΓÑ º¡áτÑ¡¿Ñ DM_IN_PROMPT).
-
- - ÅÑαÑñáÑΓÑ τáßΓ¿τ¡πε ßΓαπ¬Γπαπ DEVMODE ¿, ¬α«¼Ñ φΓ«ú«,
- óδó«ñ¿ΓÑ »á¡Ñ½∞ ñ¿á½«úá Printer Setup. ¥Γ«Γ ß»«ß«í
- »«ºó«½∩ÑΓ π¬áºáΓ∞ »áαá¼ÑΓαδ »α¿¡ΓÑαá ¬á¬ »«½∞º«óáΓѽε,
- Γᬠ¿ óáΦÑ⌐ »α«úαá¼¼Ñ. (Åα¿ ó맮óÑ ExtDeviceMode
-
- Windows 3.0/pg/3#3 = 64 =
-
- π¬áºδóáÑΓÑ º¡áτÑ¡¿Ñ DM_IN_BUF ¿ DM_IN_PROMPT).
-
- Åα¿ ¿º¼Ñ¡Ñ¡¿¿ »áαá¼ÑΓα«ó »α¿¡ΓÑαá óδ ñ«½ª¡δ ¡Ñ Γ«½∞¬«
- π¬áºáΓ∞ ¡«óδÑ »áαá¼ÑΓαδ, ¡« ¿ «»αÑñѽ¿Γ∞ ¬πñá óδ σ«Γ¿ΓÑ ¿σ
- ºá¡ÑßΓ¿. äαá⌐óÑα óδó«ñ¿Γ »«½¡πε ¿ ¬«ααÑ¬Γ¡πε ßΓαπ¬Γπαπ DEVMODE,
- ¬«Γ«αá∩ «ΓαáªáÑΓ ¿º¼Ñ¡Ñ¡¿∩, ó¡ÑßÑ¡¡δÑ óáΦÑ⌐ »α«úαá¼¼«⌐ ¿/¿½¿
- »«½∞º«óáΓѽѼ. éδ π¬áºδóáÑΓÑ ñαá⌐óÑαπ, ¬πñá »«¼ÑßΓ¿Γ∞ óδσ«ñ¡πε
- ßΓαπ¬Γπαπ. ¥Γ« óδ ñѽáÑΓÑ ß »«¼«Θ∞ε »áαá¼ÑΓαá wMode.
-
- éδ ¼«ªÑΓÑ ¡á»αáó¿Γ∞ óδó«ñ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- - Å«¼ÑßΓ¿ΓÑ ¼«ñ¿Σ¿µ¿α«óá¡¡πε óδσ«ñ¡πε ßΓαπ¬Γπαπ DEVMODE ó
- óδσ«ñ¡«⌐ íπΣÑα. çáΓѼ »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ
- »ÑαÑñáΓ∞ φΓπ ßΓαπ¬Γπαπ Σπ¡¬µ¿¿ CreateDC ¿½¿ ñαπú«⌐
- Σπ¡¬µ¿¿ Windows. (Åα¿ ó맮óÑ ExtDeviceMode π¬áª¿ΓÑ
- DM_OUT_BUF).
-
- - éδóÑñ¿ΓÑ ¼«ñ¿Σ¿µ¿α«óá¡¡πε ßΓαπ¬Γπαπ DEVMODE ó »á¼∩Γ∞ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ SetEnvironment. è«úñá ñαá⌐óÑα »α¿¡ΓÑαá
- ñѽáÑΓ φΓ«, «¡ ßíαáßδóáÑΓ ó ¿ßσ«ñ¡«Ñ ß«ßΓ«∩¡¿Ñ ßαÑñπ
- »α¿¡ΓÑαá ¿ ¿º¼Ñ¡∩ÑΓ ß««ΓóÑΓßΓóπεΘ¿Ñ φ½Ñ¼Ñ¡Γδ Σá⌐½á
- WIN.INI. ì«óδÑ »áαá¼ÑΓαδ ó½¿∩εΓ ¡á óßÑ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ, ¿ß»«½∞ºπεΘ¿Ñ φëà ªÑ »«αΓ »α¿¡ΓÑαá ¿ ¡Ñ
- π¬áºδóáεΘ¿Ñ ß«íßΓóÑ¡¡δÑ »áαá¼ÑΓαδ. (Åα¿ ó맮óÑ
- ExtDeviceMode π¬áª¿ΓÑ DM_OUT_DEFAULT).
-
- - Å«¼ÑßΓ¿Γ∞ ¼«ñ¿Σ¿µ¿α«óá¡¡πε ßΓαπ¬Γπαπ ó óδσ«ñ¡«⌐ íπΣÑα,
- ßíα«ß¿Γ∞ ó ¿ßσ«ñ¡«Ñ ß«ßΓ«∩¡¿Ñ ßαÑñπ »α¿¡ΓÑαá ¿
- ¼«ñ¿Σ¿µ¿α«óáΓ∞ Σá⌐½ WIN.INI. (Åα¿ ó맮óÑ ExtDeviceMode
- π¬áª¿ΓÑ DM_OUT_BUF ¿ DM_OUT_DEFAULT).
-
- ÄßΓáóΦá∩ß∩ τáßΓ∞ ñá¡¡«ú« αáºñÑ½á »«ßó∩ΘÑ¡á ¡Ñ¬«Γ«αδ¼ «íΘ¿¼
- »πΓ∩¼ ¿ß»«½∞º«óá¡¿∩ ¿ ¬«¼í¿¡¿α«óá¡¿∩ 󫺼«ª¡«ßΓÑ⌐ Σπ¡¬µ¿¿
- ExtDeviceMode.
- 17.4.4 Åα¿ß»«ß«í½Ñ¡¿Ñ »áαá¼ÑΓα«ó »α¿¡ΓÑαá ñ½∩
- ¿ß»«½∞º«óá¡¿∩ ß CreateDC.
-
- ä½∩ ¿ß»«½∞º«óá¡¿∩ »α¿¡ΓÑαá óáΦá »α«úαá¼¼á ñ«½ª¡á ó¡áτá½Ñ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ CreateDC ß«ºñáΓ∞ Ñú« ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá. ¥Γá
- Σπ¡¬µ¿∩ ¿¼ÑÑΓ ¡Ñ«í∩ºáΓѽ∞¡δ⌐ »áαá¼ÑΓα, lpInitData, ¬«Γ«αδ⌐
- «»αÑñѽ∩ÑΓ »áαá¼ÑΓαδ »α¿¡ΓÑαá, ¿ß»«½∞ºπѼδÑ »α¿ ß«ºñá¡¿¿ Ñú«
- ¬«¡ΓѬßΓá. Åα«ßΓÑ⌐Φ¿⌐ ß»«ß«í - φΓ« π¬áºáΓ∞ ó ¬áτÑßΓóÑ φΓ«ú«
- »áαá¼ÑΓαá NULL. Windows Γ«úñá ß«ºñáßΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá,
- ¿ß»«½∞ºπ∩ ΓѬπΘ¿Ñ »áαá¼ÑΓαδ ñ½∩ ñá¡¡«ú« »«αΓá »α¿¡ΓÑαá.
-
- ùΓ«íδ ¿ß»«½∞º«óáΓ∞ ß«íßΓóÑ¡¡δÑ »áαá¼ÑΓαδ »α¿¡ΓÑαá, óδ
- ñ«½ª¡δ ¿σ »ÑαÑñáΓ∞ »α¿ ó맮óÑ Σπ¡¬µ¿¿ CreateDC. Æ«úñá Windows
- ß«ºñáßΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá, ¿ß»«½∞ºπ∩ φΓ¿ »áαá¼ÑΓαδ.
-
- ä½∩ »ÑαÑñáτ¿ »áαá¼ÑΓα«ó Σπ¡¬µ¿¿ CreateDC, ¿ß»«½∞ºπÑΓß∩
- ßΓαπ¬Γπαá DEVMODE, ¬«Γ«αá∩ ß«ñÑαª¿Γ ¡Ñ«íσ«ñ¿¼δÑ óá¼ »áαá¼ÑΓαδ.
-
-
- Windows 3.0/pg/3#3 = 65 =
-
- Åα¿ ó맮óÑ Σπ¡¬µ¿¿ CreateDC, óδ π¬áºδóáÑΓÑ ßΓαπ¬Γπαπ
- DEVMODE, »«½πτÑ¡¡πε »α∩¼« «Γ ñαá⌐óÑαá »α¿¡ΓÑαá. ò«Γ∩ ¼«ª¡«
- »α«ßΓ« «ΓαÑñá¬Γ¿α«óáΓ∞ ßΓαπ¬Γπαπ DEVMODE, á ºáΓѼ »ÑαÑñáΓ∞ ÑÑ
- CreateDC, ½πτΦÑ Γᬠ¡Ñ ñѽáΓ∞. CreateDC ΓαÑíπÑΓ »«½¡πε ¿
- ¬«ααÑ¬Γ¡πε ßΓαπ¬Γπαπ DEVMODE. Æá¬¿¼ «íαẫ¼, ½εíδÑ »α«Γ¿ó«αÑτ¿∩
- ó ßΓαπ¬ΓπαÑ DEVMODE ¼«úπΓ »α¿óÑßΓ¿ ¬ ß«ºñá¡¿ε ¡ÑóÑα¡«ú«
- ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá. ùΓ«íδ πíÑñ¿Γ∞ß∩, τΓ« ßΓαπ¬Γπαá DEVMODE
- ¬«ααÑ¬Γ¡á, óδ ¼«ªÑΓÑ »«ß½áΓ∞ ÑÑ ñαá⌐óÑαπ ó ¬áτÑßΓóÑ óσ«ñ¡«⌐.
- äαá⌐óÑα ó«ºóαáΘáÑΓ »«½¡πε, ¬«ααÑ¬Γ¡πε ßΓαπ¬Γπαπ, ¬«Γ«απε óδ
- ß»«¬«⌐¡« »ÑαÑñáÑΓÑ CreateDC.
-
- ä½∩ ¿ß»«½∞º«óá¡¿∩ ¬«¡¬αÑΓ¡δσ »áαá¼ÑΓα«ó »α¿¡ΓÑαá »ÑαÑñá⌐ΓÑ
- τáßΓ¿τ¡πε ßΓαπ¬Γπαπ DEVMODE, ß«ñÑαªáΘπε Γ«½∞¬« ¡Ñ«íσ«ñ¿¼δÑ óá¼
- »áαá¼ÑΓαδ. äαá⌐óÑα ó φΓ«¼ ß½πτáÑ ¿º¼Ñ¡¿Γ Γ«½∞¬« ΓÑ »áαá¼ÑΓαδ,
- ñ½∩ ¬«Γ«αδσ óδ π¬áºá½¿ ¡«óδÑ º¡áτÑ¡¿∩. ¥Γ« «º¡áτáÑΓ, τΓ« óδ
- ¼«ªÑΓÑ ¿º¼Ñ¡∩Γ∞ «Γñѽ∞¡δÑ »áαá¼ÑΓαδ »α¿¡ΓÑαá - ¡á»α¿¼Ñα ñ½∩
- ¿º¼Ñ¡Ñ¡¿∩ «α¿Ñ¡Γᵿ¿ ß "»«αΓαÑΓ¡«⌐" ¡á "½á¡ñΦáΣΓ¡πε" - íѺ
- ó½¿∩¡¿∩ ¡á ñαπú¿Ñ »áαá¼ÑΓαδ. é ¬áτÑßΓóÑ óδó«ñá ExtDeviceMode
- ó«ºóαáΘáÑΓ »«½¡πε ßΓαπ¬Γπαπ DEVMODE.
-
- ä½∩ ¿º¼Ñ¡Ñ¡¿∩ »áαá¼ÑΓα«ó »α¿¡ΓÑαá óδ»«½¡¿ΓÑ ß½ÑñπεΘÑÑ:
-
- 1. Ä»αÑñѽ¿ΓÑ »«½¡πε ¿½¿ τáßΓ¿τ¡πε ßΓαπ¬Γπαπ DEVMODE,
- ß«ñÑαªáΘπε »áαá¼ÑΓαδ, ¬«Γ«αδÑ óδ σ«Γ¿ΓÑ ¿º¼Ñ¡¿Γ∞.
-
- àß½¿ óδ «»αÑñѽ∩ÑΓÑ τáßΓ¿τ¡πε ßΓαπ¬Γπαπ:
-
- - ôíÑñ¿ΓÑß∞, τΓ« ó¬½ετ¿½¿ óßÑ »∩Γ∞ »«½Ñ⌐ ºáú«½«ó¬á
- (dmDeviceName, dmSpecVersion, dmDeviceVersion, smSize
- ¿ dmDriverExtra). àß½¿ óδ ¡Ñ »«ßδ½áÑΓÑ
- á»»áαáΓ¡«-ºáó¿ß¿¼«⌐ ¿¡Σ«α¼áµ¿¿, πßΓá¡«ó¿ΓÑ º¡áτÑ¡¿∩
- »«½Ñ⌐ dmDriverVersion ¿ dmDriverExtra ó ¡«½∞.
-
- - ôßΓá¡«ó¿ΓÑ ß«ñÑন¼«Ñ »«½∩ dmFields ñ½∩ «»αÑñѽѡ¿∩
- Γ«ú«, ¬á¬¿Ñ »«½∩ á»»áαáΓ¡«-¡Ñºáó¿ß¿¼«⌐ ¿¡Σ«α¼áµ¿¿ óδ
- «»αÑñѽ∩ÑΓÑ.
-
- ìá»α¿¼Ñα, ñ½∩ π¬áºá¡¿∩ »α¿¡ΓÑαπ ¿ß»«½∞º«óáΓ∞
- "½á¡ñΦáΣΓ¡πε" «α¿Ñ¡Γáµ¿ε ¿ αẼÑα ßΓαá¡¿µδ ñ½∩ »¿ßѼ óδ
- ñ«½ª¡δ «»αÑñѽ¿Γ∞ ß½ÑñπεΘπε ßΓαπ¬Γπαπ DEVMODE:
-
- DEVMODE dm;
- lstrcpy(dm.dmDeviceName,szDeviceName);
- /* ¿¡Σ«α¼áµ¿∩ ºáú«½«ó¬á */
- dm.dmVersion = DM_SPECVERSION;
- dm.dmDriverVersion = 0;
- dm.dmSize = sizeof(DEVMODE);
- dm.dmDriverExtra = 0;
- /* á»»áαáΓ¡«-¡Ñºáó¿ß¿¼á∩ ¿¡Σ«α¼áµ¿∩ */
- dm.dmFields = DM_ORIENTATION | DM_PAPERSIZE;
- dm.dmOrientation = DMORIENT_LANDSCAPE;
- dm.dmPaperSize = DMPAPER_LETTER;
-
-
- Windows 3.0/pg/3#3 = 66 =
-
- ÅÑαóδÑ »∩Γ∞ »«½Ñ⌐ «»αÑñѽ∩εΓ ¿¡Σ«α¼áµ¿ε ºáú«½«ó¬á.
- szDeviceName - φΓ« ßΓ᫬á, ß«ñÑαªáΘá∩ ¿¼∩ πßΓα«⌐ßΓóá,
- Γá¬«Ñ ¬á¬ "PCL/HP Laserjet". Å«½πτÑ¡¿Ñ º¡áτÑ¡¿⌐ ¿º
- Σá⌐½á WIN.INI «»¿ßá¡« ó ú½áóÑ 12, "ÅÑτáΓ∞".
-
- 2. é맮ó¿ΓÑ Σπ¡¬µ¿ε ExtDeviceMode.
-
- éδ ñ«½ª¡δ »ÑαÑñáΓ∞ Ñ⌐ »áαá¼ÑΓαδ, ß«ñÑαªáΘ¿Ñ ß½ÑñπεΘπε
- ¿¡Σ«α¼áµ¿ε:
-
- Åáαá¼ÑΓα ç¡áτÑ¡¿Ñ
- ───────────────────────────────────────────────────────
- lpDevModeInput ô¬áºáΓѽ∞ ¡á íπΣÑα, ß«ñÑαªáΘ¿⌐ »«½¡πε
- ¿½¿ τáßΓ¿τ¡πε ßΓαπ¬Γπαπ DEVMODE.
-
- lpDevModeOutput ô¬áºáΓѽ∞ ¡á óδσ«ñ¡«⌐ íπΣÑα.
-
- wMode DM_IN_BUF|DM_OUT_BUF
- ───────────────────────────────────────────────────────
-
- çáΓѼ ñαá⌐óÑα ¿º¼Ñ¡¿Γ »áαá¼ÑΓαδ ó ß««ΓóÑΓßΓó¿¿ ß
- »ÑαÑñá¡¡δ¼¿ ó« óσ«ñ¡«⌐ ßΓαπ¬ΓπαÑ DEVMODE ¿ »«¼ÑßΓ¿Γ ó
- óδσ«ñ¡«⌐ íπΣÑα »«½¡πε ßΓαπ¬Γπαπ DEVMODE.
-
- 3. ÅÑαÑñá⌐ΓÑ »«½πτÑ¡¡πε ó αѺπ½∞ΓáΓÑ ßΓαπ¬Γπαπ DEVMODE
- Σπ¡¬µ¿¿ CreateDC ñ½∩ ß«ºñá¡¿∩ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá,
- ¿ß»«½∞ºπεΘÑú« ¡«óδÑ »áαá¼ÑΓαδ.
-
- Å«ß½Ñ ¿º¼Ñ¡Ñ¡¿∩ ßΓαπ¬Γπαδ DEVMODE ñαá⌐óÑα ¬«»¿απÑΓ ÑÑ ó
- óδσ«ñ¡«⌐ íπΣÑα. Å«½πτÑ¡¡á∩ ßΓαπ¬Γπαá íπñÑΓ »«½¡«⌐, ¿ íπñÑΓ
- ó¬½ετáΓ∞ óßÑ ¿º¼Ñ¡Ñ¡¿∩, ¬«Γ«αδÑ óδ «»αÑñѽ¿½¿ ó τáßΓ¿τ¡«⌐
- ßΓαπ¬ΓπαÑ. ū߬«½∞¬π ñαá⌐óÑα »α«óÑα∩ÑΓ óáΦ¿ »áαá¼ÑΓαδ, óδ
- ¼«ªÑΓÑ ß»«¬«⌐¡« »ÑαÑñáóáΓ∞ ßΓαπ¬Γπαπ DEVMODE Σπ¡¬µ¿¿ CreateDC.
- 17.4.5 꺼ѡѡ¿Ñ »áαá¼ÑΓα«ó »α¿¡ΓÑαá íѺ ó½¿∩¡¿∩ ¡á ñαπú¿Ñ
- »α¿¬½áñ¡δÑ »α«úαá¼¼δ.
-
- éáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ¿º¼Ñ¡∩Γ∞ »áαá¼ÑΓαδ
- »α¿¡ΓÑαá, ¡Ñ «¬áºδóá∩ ó½¿∩¡¿∩ ¡á ñαπú¿Ñ »α¿¬½áñ¡δÑ »α«úαá¼¼δ.
- ä½∩ φΓ«ú« ¡πª¡« ßñѽáΓ∞ ß½ÑñπεΘÑÑ:
-
- 1. é맮ó¿ΓÑ ExtDeviceMode.
-
- Åáαá¼ÑΓαδ ñ«½ª¡δ ó¬½ετáΓ∞ ß½ÑñπεΘπε ¿¡Σ«α¼áµ¿ε:
-
- Åáαá¼ÑΓα ç¡áτÑ¡¿Ñ
- ───────────────────────────────────────────────────────
- lpDevModeInput ô¬áºáΓѽ∞ ¡á íπΣÑα, ß«ñÑαªáΘ¿⌐ »«½¡πε
- ¿½¿ τáßΓ¿τ¡πε ßΓαπ¬Γπαπ DEVMODE.
-
- lpDevModeOutput ô¬áºáΓѽ∞ ¡á óδσ«ñ¡«⌐ íπΣÑα.
-
- wMode DM_IN_BUF|DM_OUT_BUF
-
- Windows 3.0/pg/3#3 = 67 =
-
- ¿½¿
- DM_IN_PROMPT|DM_OUT_BUF
- ¿½¿
- DM_IN_BUF|DM_IN_PROMPT|DM_OUT_BUF
- ───────────────────────────────────────────────────────
-
- çá¼ÑΓ¿¼, τΓ« óδ ¼«ªÑΓÑ π¬áºáΓ∞ ¿ «íá óσ«ñ¡δσ »áαá¼ÑΓαá
- (DM_IN_BUF|DM_IN_PROMPT). Æá¬«⌐ ó맮ó ExtDeviceMode
- »α¿óÑñÑΓ ¬ Γ«¼π, τΓ« óáΦá ß«íßΓóÑ¡¡á∩ ¬«»¿∩ »áαá¼ÑΓα«ó
- »α¿¡ΓÑαá íπñÑΓ ß«σαá¡Ñ¡á ó íπΣÑαÑ óáΦÑ⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ. ū߬«½∞¬π ¡Ñ π¬áºá¡« º¡áτÑ¡¿Ñ
- DM_OUT_DEFAULT, Γ« ¡Ñ »α«¿ßσ«ñ¿Γ ¬«»¿α«óá¡¿∩ ¡«óδσ
- »áαá¼ÑΓα«ó ó ßαÑñπ »α¿¡ΓÑαá ¿ ó Σá⌐½ WIN.INI. Æá¬¿¼
- «íαẫ¼ ¡á ñαπú¿Ñ »α¿¬½áñ¡δÑ »α«úαá¼¼δ ó½¿∩¡¿Ñ ¡Ñ
- «¬áºδóáÑΓß∩.
-
- 2. éδσ«ñ¡πε ßΓαπ¬Γπαπ DEVMODE »ÑαÑñá⌐ΓÑ Σπ¡¬µ¿¿ CreateDC
- ñ½∩ ß«ºñá¡¿∩ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá ó ß««ΓóÑΓßΓó¿¿ ß
- π¬áºá¡¡δ¼¿ óἿ »áαá¼ÑΓαἿ.
-
- Åα¿¼Ñτá¡¿Ñ: éδ ¼«ªÑΓÑ ß«σαá¡¿Γ∞ óδσ«ñ¡πε ßΓαπ¬Γπαπ DEVMODE
- ó Σá⌐½Ñ, τΓ«íδ ó »«ß½ÑñπεΘ¿σ ßÑá¡ßáσ αáí«Γδ óáΦÑ⌐ »α«úαá¼¼δ ¡Ñ
- óδºδóáΓ∞ Σπ¡¬µ¿ε ExtDeviceMode, á ßτ¿ΓáΓ∞ ÑÑ ¿º Σá⌐½á ¿ ßαáºπ
- »«ß½áΓ∞ Σπ¡¬µ¿¿ CreateDC.
- 17.4.6 çá»α«ß π »«½∞º«óáΓѽ∩ ¿º¼Ñ¡Ñ¡¿∩ »áαá¼ÑΓα«ó »α¿¡ΓÑαá.
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ »ÑαÑñáΓ∞ ñαá⌐óÑαπ ΓαÑí«óá¡¿Ñ
- «Γ«íαếΓ∞ »á¡Ñ½∞ ñ¿á½«úá Printer Setup. é φΓ«⌐ »á¡Ñ½¿ ñ¿á½«úá
- »«½∞º«óáΓѽ∞ ¼«ªÑΓ π¬áºáΓ∞ ¡«óδÑ »áαá¼ÑΓαδ »α¿¡ΓÑαá. äαá⌐óÑα
- ¿º¼Ñ¡¿Γ ΓѬπΘ¿Ñ »áαá¼ÑΓαδ ó ß««ΓóÑΓßΓó¿¿ ß π¬áºá¡¡δ¼¿
- »«½∞º«óáΓѽѼ. éδσ«ñ¡á∩ ßΓαπ¬Γπαá DEVMODE (Ñß½¿ «¡á π¬áºá¡á)
- íπñÑΓ ß«ñÑαªáΓ∞ ßñѽᡡδÑ »«½∞º«óáΓѽѼ ¿º¼Ñ¡Ñ¡¿∩.
-
- ä½∩ ºá»α«ßá π »«½∞º«óáΓѽ∩ »áαá¼ÑΓα«ó »α¿¡ΓÑαá ßñѽá⌐ΓÑ
- ß½ÑñπεΘÑÑ:
-
- 1. é맮ó¿ΓÑ ExtDeviceMode.
-
- Åáαá¼ÑΓαδ ñ«½ª¡δ ó¬½ετáΓ∞ ß½ÑñπεΘπε ¿¡Σ«α¼áµ¿ε:
-
- Åáαá¼ÑΓα ç¡áτÑ¡¿Ñ
- ───────────────────────────────────────────────────────
- lpDevModeOutput ô¬áºáΓѽ∞ ¡á óδσ«ñ¡«⌐ íπΣÑα.
-
- wMode DM_IN_PROMPT|DM_OUT_BUF
- ───────────────────────────────────────────────────────
-
- çáΓѼ ñαá⌐óÑα «Γ«íαáªáÑΓ »á¡Ñ½∞ ñ¿á½«úá Printer Setup,
- ¬«Γ«αá∩ »«ºó«½∩ÑΓ »«½∞º«óáΓѽε π¬áºáΓ∞ ¡«óδÑ »áαá¼ÑΓαδ.
-
- àß½¿ »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ¡á ¼∩ú¬πε ¬½áó¿Φπ "OK" »«ß½Ñ
- óδí«αá »áαá¼ÑΓα«ó »α¿¡ΓÑαá, Σπ¡¬µ¿∩ ExtDeviceMode
-
- Windows 3.0/pg/3#3 = 68 =
-
- ó«ºóαáΓ¿Γ º¡áτÑ¡¿Ñ IDOK ¿ ñαá⌐óÑα »«¼ÑßΓ¿Γ ßΓαπ¬Γπαπ
- DEVMODE ó óδσ«ñ¡«⌐ íπΣÑα. ¥Γá óδσ«ñ¡á∩ ßΓαπ¬Γπαá íπñÑΓ
- ß«ñÑαªáΓ∞ ¿º¼Ñ¡Ñ¡¿∩, ßñѽᡡδÑ »«½∞º«óáΓѽѼ. àß½¿
- »«½∞º«óáΓѽ∞ ¡áª¼ÑΓ ¬½áó¿Φπ "Cancel", Σπ¡¬µ¿∩ óÑα¡ÑΓ
- º¡áτÑ¡¿Ñ IDCANCEL, ¿ óδσ«ñ¡á∩ ßΓαπ¬Γπαá ¡Ñ íπñÑΓ
- ß«ñÑαªáΓ∞ ¿º¼Ñ¡Ñ¡¿⌐, ßñѽᡡδσ »«½∞º«óáΓѽѼ.
-
- 2. éδσ«ñ¡πε ßΓαπ¬Γπαπ DEVMODE »ÑαÑñá⌐ΓÑ Σπ¡¬µ¿¿ CreateDC
- ñ½∩ ß«ºñá¡¿∩ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá ó ß««ΓóÑΓßΓó¿¿ ß
- π¬áºá¡¡δ¼¿ »«½∞º«óáΓѽѼ »áαá¼ÑΓαἿ.
-
- ôßΓá¡«ó¬á º¡áτÑ¡¿⌐ ó »á¡Ñ½¿ ñ¿á½«úá Printer Setup.
-
- ä½∩ ¡áτá½∞¡«⌐ πßΓá¡«ó¬¿ º¡áτÑ¡¿⌐, ¬«Γ«αδÑ ñ«½ª¡δ
- «ΓαáªáΓ∞ß∩ ó »á¡Ñ½¿ ñ¿á½«úá Printer Setup, óáΦá »α¿¬½áñ¡á∩
- »α«úαá¼¼á ñ«½ª¡á »α«ßΓ« »ÑαÑñáΓ∞ ñαá⌐óÑαπ óσ«ñ¡πε ßΓαπ¬Γπαπ
- DEVMODE ß ¡áτá½∞¡δ¼¿ »áαá¼ÑΓαἿ ¿ π¬áºáΓ∞ ñαá⌐óÑαπ, τΓ«
- ¡Ñ«íσ«ñ¿¼« «Γ«íαếΓ∞ »á¡Ñ½∞ ñ¿á½«úá. é φΓ«¼ ß½πτáÑ ñαá⌐óÑα
- «Γ«íαáªáÑΓ »á¡Ñ½∞ ñ¿á½«úá ß ¡áτá½∞¡δ¼¿ º¡áτÑ¡¿∩¼¿,
- πßΓá¡«ó½Ñ¡¡δ¼¿ ó ß««ΓóÑΓßΓó¿¿ ß »áαá¼ÑΓαἿ ó« óσ«ñ¡«⌐
- ßΓαπ¬ΓπαÑ DEVMODE. çáΓѼ »«½∞º«óáΓѽ∞ ¼«ªÑΓ ¿º¼Ñ¡¿Γ∞ ¡Ñ¬«Γ«αδÑ
- ¿½¿ óßÑ »áαá¼ÑΓαδ. Å«ß½Ñ Γ«ú«, ¬á¬ »«½∞º«óáΓѽ∞ ¡áª¼ÑΓ OK
- ñαá⌐óÑα óÑα¡ÑΓ ßΓαπ¬Γπαπ DEVMODE, ¬«Γ«αá∩ íπñÑΓ «ΓαáªáΓ∞
- ßñѽᡡδÑ ¿¼ ¿º¼Ñ¡Ñ¡¿∩. èα«¼Ñ φΓ«ú«, ΓÑ »áαá¼ÑΓαδ, ¬«Γ«αδÑ
- »«½∞º«óáΓѽ∞ ¡Ñ ¿º¼Ñ¡¿½, íπñπΓ Γá¬ªÑ «ΓαáªáΓ∞ß∩ ó óδσ«ñ¡«⌐
- ßΓαπ¬ΓπαÑ.
-
- ä½∩ ºá»α«ßá π »«½∞º«óáΓѽ∩ »áαá¼ÑΓα«ó ß »«¼«Θ∞ε »á¡Ñ½¿
- ñ¿á½«úá, «Γ«íαáªáεΘÑ⌐ ¡áτá½∞¡δÑ º¡áτÑ¡¿∩, ßñѽá⌐ΓÑ ß½ÑñπεΘÑÑ:
-
- 1. 櫺ñá⌐ΓÑ τáßΓ¿τ¡πε ¿½¿ »«½¡πε ßΓαπ¬Γπαπ DEVMODE ¿
- ºá¡Ñß¿ΓÑ ó ¡ÑÑ ¡áτá½∞¡δÑ º¡áτÑ¡¿∩ »áαá¼ÑΓα«ó, ¬«Γ«αδÑ
- óδ σ«Γ¿ΓÑ ¿º¼Ñ¡¿Γ∞. (Ä»¿ßá¡¿Ñ τáßΓ¿τ¡«⌐ ßΓαπ¬Γπαδ
- DEVMODE óδ ¡á⌐ñÑΓÑ ó αáºñÑ½Ñ 17.4.4, "Åα¿ß»«ß«í½Ñ¡¿Ñ
- »áαá¼ÑΓα«ó »α¿¡ΓÑαá ñ½∩ ¿ß»«½∞º«óá¡¿∩ ß CreateDC".)
-
- 2. é맮ó¿ΓÑ ExtDeviceMode.
-
- Åáαá¼ÑΓαδ ñ«½ª¡δ ó¬½ετáΓ∞ ß½ÑñπεΘπε ¿¡Σ«α¼áµ¿ε:
-
- Åáαá¼ÑΓα ç¡áτÑ¡¿Ñ
- ───────────────────────────────────────────────────────
- lpDevModeInput ô¬áºáΓѽ∞ ¡á íπΣÑα, ß«ñÑαªáΘ¿⌐ »«½¡πε
- ¿½¿ τáßΓ¿τ¡πε ßΓαπ¬Γπαπ DEVMODE.
-
- lpDevModeOutput ô¬áºáΓѽ∞ ¡á óδσ«ñ¡«⌐ íπΣÑα.
-
- wMode DM_IN_BUF|DM_IN_PROMPT|DM_OUT_BUF
- ───────────────────────────────────────────────────────
-
- é¡áτá½Ñ, ñαá⌐óÑα ¿º¼Ñ¡∩ÑΓ ß«íßΓóÑ¡¡δÑ »áαá¼ÑΓαδ ó
- ß««ΓóÑΓßΓó¿¿ ß »ÑαÑñá¡¡δ¼¿ óἿ. çáΓѼ, «¡ «Γ«íαáªáÑΓ
- »á¡Ñ½∞ ñ¿á½«úá Printer Setup ß ¡«ó묨 »áαá¼ÑΓαἿ, ¿
-
- Windows 3.0/pg/3#3 = 69 =
-
- »«½∞º«óáΓѽ∞ óßÑ ¿º ¡¿σ ¿½¿ Γ«½∞¬« ¡Ñ¬«Γ«αδÑ ¿º¼Ñ¡∩ÑΓ.
-
- àß½¿ »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ¡á ¼∩ú¬πε ¬½áó¿Φπ "OK" »«ß½Ñ
- óδí«αá »áαá¼ÑΓα«ó »α¿¡ΓÑαá, Σπ¡¬µ¿∩ ExtDeviceMode
- ó«ºóαáΓ¿Γ º¡áτÑ¡¿Ñ IDOK, ¿ ñαá⌐óÑα »«¼ÑßΓ¿Γ ßΓαπ¬Γπαπ
- DEVMODE ó óδσ«ñ¡«⌐ íπΣÑα. ¥Γá óδσ«ñ¡á∩ ßΓαπ¬Γπαá íπñÑΓ
- ß«ñÑαªáΓ∞ ¿º¼Ñ¡Ñ¡¿∩, ßñѽᡡδÑ »«½∞º«óáΓѽѼ. àß½¿
- »«½∞º«óáΓѽ∞ ¡áª¼ÑΓ ¬½áó¿Φπ "Cancel", Σπ¡¬µ¿∩ óÑα¡ÑΓ
- º¡áτÑ¡¿Ñ IDCANCEL ¿ óδσ«ñ¡á∩ ßΓαπ¬Γπαá ¡Ñ íπñÑΓ
- ß«ñÑαªáΓ∞ ¿º¼Ñ¡Ñ¡¿⌐, ßñѽᡡδσ »«½∞º«óáΓѽѼ.
-
- 3. éδσ«ñ¡πε ßΓαπ¬Γπαπ DEVMODE »ÑαÑñá⌐ΓÑ Σπ¡¬µ¿¿ CreateDC
- ñ½∩ ß«ºñá¡¿∩ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá ó ß««ΓóÑΓßΓó¿¿ ß
- ¡«ó묨 »áαá¼ÑΓαἿ.
- 17.5 è«»¿α«óá¡¿Ñ »áαá¼ÑΓα«ó »α¿¡ΓÑαá ¼Ñªñπ ñαá⌐óÑαἿ.
-
- ä½∩ ¬«»¿α«óá¡¿∩ »áαá¼ÑΓα«ó »α¿¡ΓÑαá ß «ñ¡«ú« ñαá⌐óÑαá ¡á
- ñαπú«⌐ ßñѽá⌐ΓÑ ß½ÑñπεΘÑÑ:
-
- 1. 欫»¿απ⌐ΓÑ ßΓαπ¬Γπαπ DEVMODE »Ñαó«ú« ñαá⌐óÑαá, ¬á¬ φΓ«
- «»¿ßá¡« ó αáºñÑ½Ñ 17.4.2, "Å«½πτÑ¡¿Ñ ¬«»¿¿ »áαá¼ÑΓα«ó
- »α¿¡ΓÑαá".
-
- 2. ôñ὿ΓÑ á»»áαáΓ¡«-ºáó¿ß¿¼πε ¿¡Σ«α¼áµ¿ε ¿º óδσ«ñ¡«⌐
- ßΓαπ¬Γπαδ DEVMODE. ä½∩ φΓ«ú« »α¿αáó¡∩⌐ΓÑ ¬ ¡π½ε »«½∩
- dmDriverVersion ¿ dmDriverExtra.
-
- 3. çá¡Ñß¿ΓÑ ó »«½Ñ dmDeviceName ¿¼∩ óΓ«α«ú« πßΓα«⌐ßΓóá.
-
- 4. é맮ó¿ΓÑ Σπ¡¬µ¿ε ExtDeviceMode óΓ«α«ú« »α¿¡ΓÑαá.
-
- ô¬áºδóáѼδÑ óἿ »áαá¼ÑΓαδ ñ«½ª¡δ ó¬½ετáΓ∞ ß½ÑñπεΘπε
- ¿¡Σ«α¼áµ¿ε:
-
- Åáαá¼ÑΓα ç¡áτÑ¡¿Ñ
- ───────────────────────────────────────────────────────
- lpDevModeInput ô¬áºáΓѽ∞ ¡á íπΣÑα, ß«ñÑαªáΘ¿⌐ »«½¡πε
- ¿½¿ τáßΓ¿τ¡πε ßΓαπ¬Γπαπ DEVMODE.
-
- lpDevModeOutput ô¬áºáΓѽ∞ ¡á óδσ«ñ¡«⌐ íπΣÑα.
-
- wMode DM_IN_BUF|DM_OUT_BUF
- ───────────────────────────────────────────────────────
-
- çáΓѼ, óΓ«α«⌐ ñαá⌐óÑα »«¼ÑΘáÑΓ ¬«ααÑ¬Γ¡πε, »«½¡πε
- ßΓαπ¬Γπαπ ó óδσ«ñ¡«⌐ íπΣÑα. éδσ«ñ¡á∩ ßΓαπ¬Γπαá «ΓαáªáÑΓ
- á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δÑ »áαá¼ÑΓαδ, ¬«Γ«αδÑ »α¿¬½áñ¡á∩
- »α«úαá¼¼á ߬«»¿α«óá½á ¿º »Ñαó«ú« ñαá⌐óÑαá, ¡« ß«ñÑনΓ
- á»»áαáΓ¡«-ºáó¿ß¿¼πε ¿¡Σ«α¼áµ¿ε ñ½∩ óΓ«α«ú« ñαá⌐óÑαá.
-
-
- Windows 3.0/pg/3#3 = 70 =
-
-
- 17.6 Å«ññÑ᪬á ß«íßΓóÑ¡¡δσ »áαá¼ÑΓα«ó »α¿¡ΓÑαá.
-
- Windows óÑαß¿¿ 3.0 »«ºó«½∩ÑΓ óá¼ ¿ß»«½∞º«óáΓ∞ »áαá¼ÑΓαδ
- »α¿¡ΓÑαá, ߻ѵ¿Σ¿τ¡δÑ ñ½∩ óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿½¿ ñáªÑ
- ñ½∩ «Γñѽ∞¡«ú« ñ«¬π¼Ñ¡Γá. ä½∩ φΓ«ú« ß«σαá¡¿ΓÑ ßΓαπ¬Γπαπ DEVMODE
- ß »áαá¼ÑΓαἿ, ¬«Γ«αδÑ óδ íπñÑΓÑ ¿ß»«½∞º«óáΓ∞ »« π¼«½τá¡¿ε. éδ
- ¼«ªÑΓÑ ß«σαá¡¿Γ∞ ¿σ ¿½¿ ó Σá⌐½Ñ »áαá¼ÑΓα«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ
- ¿½¿ ó Σá⌐½Ñ ß ñ«¬π¼Ñ¡Γ«¼ ó ¬áτÑßΓóÑ Ñú« τáßΓ¿ ñ½∩ »áαá¼ÑΓα«ó,
- ߻ѵ¿Σ¿τ¡δσ ñ½∩ ñ«¬π¼Ñ¡Γá.
- 17.7 Éáí«Γá ß« ßΓáα묨 ñαá⌐óÑαἿ »α¿¡ΓÑα«ó.
-
- äαá⌐óÑαδ »α¿¡ΓÑα«ó, ¡á»¿ßá¡¡δÑ ñ½∩ »αÑñδñπΘÑ⌐ óÑαß¿¿
- Windows »«ññÑনóáεΓ Γ«½∞¬« Σπ¡¬µ¿ε DeviceMode, ¬«Γ«αá∩
- «Γ«íαáªáÑΓ »á¡Ñ½∞ ñ¿á½«úá ó ¬«Γ«α«⌐ »«½∞º«óáΓѽ∞ ¼«ªÑΓ
- πßΓá¡«ó¿Γ∞ ¡Ñ«íσ«ñ¿¼δÑ »áαá¼ÑΓαδ, Γá¬¿Ñ ¬á¬ «α¿Ñ¡Γᵿ∩ ¿ αẼÑα
- ßΓαá¡¿µδ. æñѽᡡδÑ ¿º¼Ñ¡Ñ¡¿∩ ó½¿∩εΓ ¡á óßε ß¿ßΓѼπ, á ¡Ñ
- Γ«½∞¬« ¡á ñá¡¡πε »α¿¬½áñ¡πε »α«úαá¼¼π.
-
- èᬠ¿ «ßΓá½∞¡δÑ Σπ¡¬µ¿¿ ñαá⌐óÑα«ó πßΓα«⌐ßΓó, DeviceMode
- ∩ó½∩ÑΓß∩ Σπ¡¬µ¿Ñ⌐ ñαá⌐óÑαá, á ¡Ñ GDI. (é맮ó Σπ¡¬µ¿⌐ ñαá⌐óÑα«ó
- πßΓα«⌐ßΓó «»¿ßá¡ ó αáºñÑ½Ñ 17.2, "êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐
- ñαá⌐óÑα«ó πßΓα«⌐ßΓó".) Åα¿ ó맮óÑ Σπ¡¬µ¿¿ ñαá⌐óÑαá DeviceMode,
- ñαá⌐óÑα «Γ«íαáªáÑΓ »á¡Ñ½∞ ñ¿á½«úá Printer Setup. çáΓѼ
- »«½∞º«óáΓѽ∞ ó ¡Ñ⌐ ¼«ªÑΓ ¿º¼Ñ¡¿Γ∞ »áαá¼ÑΓαδ »α¿¡ΓÑαá ¿ »«αΓá.
-
- ì¿ªÑ »«¬áºá¡«, ¬á¬ ñ½∩ ó맮óá Σπ¡¬µ¿¿ DeviceMode
- ¿ß»«½∞º«óáΓ∞ áñαÑß »α«µÑñπαδ lpfnDeviceMode:
-
- if(lpfnDeviceMode != NULL) /* àß½¿ ñαá⌐óÑα »«ññÑনóáÑΓ
- φΓπ Σπ¡¬µ¿ε */
- {
- (*lpfnDeviceMode)(
- (HWND)hWnd, /* äÑß¬α¿»Γ«α α«ñ¿Γѽ∞߬«ú«
- «¬¡á */
- (HANDLE)hDriver, /* äÑß¬α¿»Γ«α ¼«ñπ½∩ ñαá⌐óÑαá */
- (LPSTR)"PSCRIPT", /* ê¼∩ »α¿¡ΓÑαá */
- (LPSTR)"LPT1:"); /* ê¼∩ »«αΓá */
- }
- 17.8 çᬽετÑ¡¿Ñ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡«, ¬á¬ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ ñαá⌐óÑα«ó
- »α¿¡ΓÑα«ó ñ½∩ ¼á¡¿»π½¿α«óá¡¿∩ »áαá¼ÑΓαἿ »α¿¡ΓÑαá. Äß¡«ó¡á∩
- »α¿τ¿¡á ¿º¼Ñ¡Ñ¡¿∩ »áαá¼ÑΓα«ó »α¿¡ΓÑαá ºá¬½ετáÑΓß∩ ó Γ«¼, τΓ«
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ »«ß½áΓ∞ ßó«¿ ß«íßΓóÑ¡¡δÑ »áαá¼ÑΓαδ
- Σπ¡¬µ¿¿ CreateDC »α¿ »«ñú«Γ«ó¬Ñ ¬ »ÑτáΓ¿. çáΓѼ Windows
- πßΓá¡áó½¿óáÑΓ ¬«¡ΓѬßΓ »α¿¡ΓÑαá, ¿ß»«½∞ºπ∩ »áαá¼ÑΓαδ,
- »ÑαÑñáóáѼδÑ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐, ó¼ÑßΓ« »áαá¼ÑΓα«ó »«
- π¼«½τá¡¿ε. èα«¼Ñ φΓ«ú«, Σπ¡¬µ¿¿ ñαá⌐óÑαá »«ºó«½∩εΓ óáΦÑ⌐
- »α«úαá¼¼Ñ ¿º¼Ñ¡¿Γ∞ »áαá¼ÑΓαδ »α¿¡ΓÑαá, ¡Ñ «¬áºδóá∩ ó½¿∩¡¿∩ ¡á
- ñαπú¿Ñ »α¿¬½áñ¡δÑ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘ¿Ñ Γ«Γ ªÑ ñαá⌐óÑα.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε, «Γ¡«ß∩Θπεß∩ ¬ »áαá¼ÑΓαá¼
- »α¿¡ΓÑαá óδ ¡á⌐ñÑΓÑ:
-
- Windows 3.0/pg/3#3 = 71 =
-
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- ÅÑτáΓ∞ ¿º ßαÑñδ Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá: ú½áóá 12,
- Windows "ÅÑτáΓ∞".
-
- öπ¡¬µ¿¿ æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1: â½áóá 2,
- ExtDeviceMode, "öπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá úαáΣ¿τÑ߬¿σ πßΓα«⌐ßΓó",
- DeviceCapabilities, ¿ ú½áóá 4, "滿߫¬ Σπ¡¬µ¿⌐".
- DeviceMode ¿
- CreateDC
-
- æΓαπ¬Γπαá DEVMODE æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 2: ú½áóá 7,
- "Æ¿»δ ¿ ßΓαπ¬Γπαδ ñá¡¡δσ".
-
- Åα¿¼Ñα ¿¡¿µ¿á½¿ºáµ¿¿ Åਪ½áñ¡á∩ »α«úαá¼¼á MULTIPAD.EXE, ó¬½ε-
- »α¿¡ΓÑαá τÑ¡¡á∩ ¡á ñ¿ß¬ "SDK Sample Source Disk".
-
- ìỿßá¡¿Ñ ñαá⌐óÑα«ó Microsoft Windows Device Development
- »α¿¡ΓÑα«ó Windows Kit.
-
-
-
- Windows 3.0/pg/3#3 = 72 =
-
-
- â½áóá 18. ÿα¿ΣΓδ.
- ----------------------------------------------------------------
- Windows »αÑñ½áúáÑΓ Φ¿α«¬¿⌐ ߻ѬΓα 󫺼«ª¡«ßΓÑ⌐ ñ½∩ óδó«ñá
- ΓѬßΓá ¿, ó τáßΓ¡«ßΓ¿, óδí«α ¿ß»«½∞ºπѼ«ú« Φα¿ΣΓá.
-
- ÿα¿ΣΓ - φΓ« úαπ»»á ß¿¼ó«½«ó, ¬«Γ«αá∩ ¿¼ÑÑΓ «»αÑñѽѡ¡δÑ
- ß«τÑΓá¡¿Ñ óδß«Γδ, Φ¿α¿¡δ, ¡áτÑαΓá¡¿∩, ¡áí«αá ß¿¼ó«½«ó ¿ ñαπú¿σ
- áΓα¿íπΓ«ó. Åਪ½áñ¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ Φα¿ΣΓδ ñ½∩
- «Γ«íαáªÑ¡¿∩ ¡á φ¬αá¡Ñ ¿½¿ »ÑτáΓ¿ ΓѬßΓá αẽ¿τ¡«ú« ó¡ÑΦ¡Ñú«
- ó¿ñá ¿ αẼÑαá. ìá»α¿¼Ñα, »α«úαá¼¼δ ΓѬßΓ«ó«⌐ «íαáí«Γ¬¿
- ¿ß»«½∞ºπεΓ Φα¿ΣΓδ, τΓ«íδ «íÑß»Ñτ¿Γ∞ ¿¡ΓÑαΣÑ⌐ß Γ¿»á "τΓ« ó¿ñ¿Φ∞,
- Γ« ¿ »«½πτáÑΦ∞".
-
- é ñá¡¡«⌐ ú½áóÑ »α¿óÑñÑ¡á ß½ÑñπεΘá∩ ¿¡Σ«α¼áµ¿∩:
-
- - êß»«½∞º«óá¡¿Ñ Φα¿ΣΓ«ó ó »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ.
-
- - 櫺ñá¡¿Ñ αÑßπαßá Φα¿ΣΓ«ó, ¬«Γ«α묨 ¼«ªÑΓ »«½∞º«óáΓ∞ß∩
- óáΦá ¿ ñαπú¿Ñ »α¿¬½áñ¡δÑ »α«úαá¼¼δ.
-
- èα«¼Ñ φΓ«ú«, ó ñá¡¡«⌐ ú½áóÑ «»¿ßá¡« ß«ºñá¡¿Ñ »α¿¼Ñαá
- »α«úαá¼¼δ ShowFont, ¬«Γ«αá∩ ¿½½εßΓα¿απÑΓ ¿ß»«½∞º«óá¡¿Ñ φΓ¿σ
- 󫺼«ª¡«ßΓÑ⌐.
-
- 18.1 çỿß∞ ΓѬßΓá.
-
- ¡« óδóÑßΓ¿ ΓѬßΓ ß »«¼«Θ∞ε ºáñá¡¡«ú« Φα¿ΣΓá, óδíαáó
- φëà Φα¿ΣΓ ¿ »α¿¼Ñ¡¿ó Σπ¡¬µ¿ε TextOut. ¥Γá Σπ¡¬µ¿∩ óδó«ñ¿Γ
- ß¿¼ó«½δ ßΓ᫬¿, ¿ß»«½∞ºπ∩ Φα¿ΣΓ, óδíαá¡¡δ⌐ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ ó
- ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬
- ºá»¿ßáΓ∞ ßΓ᫬π "Åα¿¼Ñα ßΓ᫬¿":
-
- hDC = GetDC(hWnd);
- TextOut(hDC, 10, 10, "Åα¿¼Ñα ßΓ᫬¿", 13);
- ReleaseDC(hWnd, hDC);
-
- é ñá¡¡«¼ »α¿¼ÑαÑ Σπ¡¬µ¿∩ TextOut ¡áτ¿¡áÑΓ ßΓ᫬π ß Γ«τ¬¿ ß
- ¬««αñ¿¡áΓἿ (10,10) ¿ »ÑτáΓáÑΓ óßÑ 13 ß¿¼ó«½«ó ßΓ᫬¿.
-
- ÿα¿ΣΓ »« π¼«½τá¡¿ε ñ½∩ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá - φΓ«
- ß¿ßΓѼ¡δ⌐ Φα¿ΣΓ. ¥Γ« Φα¿ΣΓ ß Σ¿¬ß¿α«óá¡¡«⌐ Φ¿α¿¡«⌐,
- »αÑñßΓáó½∩εΘ¿⌐ ß¿¼ó«½δ ó ¡áí«αÑ ß¿¼ó«½«ó ANSI. ìáºóá¡¿Ñ Φα¿ΣΓá
- - "System". Windows ¿ß»«½∞ºπÑΓ ß¿ßΓѼ¡δ⌐ Φα¿ΣΓ ó ¼Ñ¡ε,
- ºáú«½«ó¬áσ «¬«¡ ¿ ó ñαπú«¼ ΓѬßΓÑ.
- 18.2 êß»«½∞º«óá¡¿Ñ µóÑΓá »α¿ ºá»¿ß¿ ΓѬßΓá.
-
- è óδó«ñ¿¼«¼π ΓѬßΓπ ¼«ª¡« ñ«íáó¿Γ∞ µóÑΓ, πßΓá¡«ó¿ó µóÑΓá
- ΓѬßΓá ¿ Σ«¡á ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá. ûóÑΓ ΓѬßΓá «»αÑñѽ∩ÑΓ µóÑΓ
- óδó«ñ¿¼δσ ß¿¼ó«½«ó; µóÑΓ Σ«¡á «»αÑñѽ∩ÑΓ µóÑΓ ∩τÑ⌐¬¿ ß¿¼ó«½á,
- ºá ¿ß¬½ετÑ¡¿Ñ¼ ßἫú« ß¿¼ó«½á. Åα¿ óδó«ñÑ ΓѬßΓá GDI »«½¡«ßΓ∞ε
- óδó«ñ¿Γ ∩τÑ⌐¬π ß¿¼ó«½á (»α∩¼«πú«½∞¡¿¬, «¬á⌐¼½∩εΘ¿⌐ ß¿¼ó«½).
- ƒτÑ⌐¬á ß¿¼ó«½á «íδτ¡« ¿¼ÑÑΓ Γπ ªÑ Φ¿α¿¡π ¿ óδß«Γπ, τΓ« ¿ ßá¼
-
- Windows 3.0/pg/3#3 = 73 =
-
- ß¿¼ó«½.
-
- ¡« πßΓá¡«ó¿Γ∞ µóÑΓá ΓѬßΓá ¿ Σ«¡á ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- SetTextColor ¿ SetBkColor. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ
- πßΓá¡áó½¿óáÑΓß∩ ¬αáß¡δ⌐ µóÑΓ ΓѬßΓá ¿ ºÑ½Ñ¡δ⌐ µóÑΓ Σ«¡á:
-
- SetTextColor(hDC, RGB(255, 0, 0));
- SetBkColor(hDC, RGB(0, 255, 0));
-
- è«úñá ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá ß«ºñáÑΓß∩ ó»ÑαóδÑ, µóÑΓ ΓѬßΓá -
- τÑα¡δ⌐, á µóÑΓ Σ«¡á - íѽδ⌐. ¥Γ¿ µóÑΓá ¼«ª¡« ¿º¼Ñ¡¿Γ∞ ó ½εí«⌐
- ¼«¼Ñ¡Γ.
-
- Åα¿¼Ñτá¡¿Ñ: àß½¿ ¿ß»«½∞ºπÑΓß∩ «íΘ¿⌐ ¬«¡ΓѬßΓ «Γ«íαáªÑ¡¿∩,
- »«½πτÑ¡¡δ⌐ ß »«¼«Θ∞ε GetDC ¿½¿ BeginPaint, µóÑΓá ΓÑα∩εΓß∩ »α¿
- ¬áªñ«¼ «ßó«í«ªñÑ¡¿¿ ¬«¡ΓѬßΓá, ΓᬠτΓ« ¿σ ¡Ñ«íσ«ñ¿¼«
- πßΓá¡áó½¿óáΓ∞ »α¿ ¬áªñ«¼ »«½πτÑ¡¿¿ ¬«¡ΓѬßΓá ¿º«íαáªÑ¡¿∩.
-
- ûóÑΓ Σ«¡á »α¿¼Ñ¡∩ÑΓß∩ Γ«½∞¬« ó Γ«¼ ß½πτáÑ, ¬«úñá αѪ¿¼
- Σ«¡á - ¡Ñ»α«ºαáτ¡δ⌐. ÉѪ¿¼ Σ«¡á «»αÑñѽ∩ÑΓ, ó½¿∩ÑΓ ½¿ ¬á¬-½¿í«
- µóÑΓ Σ«¡á ó ∩τÑ⌐¬Ñ ß¿¼ó«½á ¡á Γ«, τΓ« πªÑ ¡áσ«ñ¿Γß∩ ¡á φ¬αá¡Ñ
- ñ¿ß»½Ñ∩. àß½¿ αѪ¿¼ ¡Ñ»α«ºαáτ¡δ⌐, µóÑΓ Σ«¡á ºáí¿óáÑΓ óßÑ πªÑ
- ¡áσ«ñ∩Θ¿Ñß∩ ¡á φ¬αá¡Ñ. àß½¿ αѪ¿¼ - »α«ºαáτ¡δ⌐, Γ« ß«σαá¡∩ÑΓß∩
- óßÑ, τΓ« ¡áσ«ñ¿Γß∩ ¡á φ¬αá¡Ñ. ÉѪ¿¼ Σ«¡á ¼«ª¡« πßΓá¡«ó¿Γ∞ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ SetBkMode; »«½πτ¿Γ∞ ΓѬπΘ¿⌐ αѪ¿¼ ¼«ª¡« ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ GetBkMode. ǡὫú¿τ¡«, ¼«ª¡« »«½πτ¿Γ∞ µóÑΓ
- ΓѬπΘÑú« ΓѬßΓá ¿ Σ«¡á, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿¿ GetTextColor ¿
- GetBkColor.
- 18.3 êß»«½∞º«óá¡¿Ñ ºá¬áº¡δσ Φα¿ΣΓ«ó.
-
- Å«½∞º«óáΓѽ∞ ¡Ñ «úαá¡¿τÑ¡ ¿ß»«½∞º«ó᡿Ѽ Γ«½∞¬« ß¿ßΓѼ¡«ú«
- Φα¿ΣΓá ó ßó«Ñ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ. GDI »αÑñ½áúáÑΓ α∩ñ Φα¿ΣΓ«ó
- ¡á ºá¬áº. ä½∩ ¿ß»«½∞º«óá¡¿∩ ó »α«úαá¼¼Ñ Φα¿ΣΓ«ó ¡á ºá¬áº
- ¡Ñ«íσ«ñ¿¼« ߻ѵ¿Σ¿µ¿α«óáΓ∞ Γ¿» Φα¿ΣΓá ó Σπ¡¬µ¿¿ GetStockObject.
- ¥Γá Σπ¡¬µ¿∩ ß«ºñáÑΓ Φα¿ΣΓ »« ºá»α«ßπ ¿ ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α
- Φα¿ΣΓá, ¬«Γ«αδ⌐ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ óδí«αá ó ¬«¡ΓѬßΓÑ
- πßΓα«⌐ßΓóá. GDI ß«ñÑαª¿Γ ß½ÑñπεΘ¿Ñ Φα¿ΣΓδ:
-
- ÿα¿ΣΓ Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- ANSI_FIXED_FONT Ä»αÑñѽ∩ÑΓ Φα¿ΣΓ ß Σ¿¬ß¿α«óá¡¡δ¼
- Φáú«¼, íếαπεΘ¿⌐ß∩ ¡á ¡áí«αÑ
- ß¿¼ó«½«ó ó ¬«ñÑ ANSI. Äíδτ¡«
- ¿ß»«½∞ºπÑΓß∩ Φα¿ΣΓ Courier, Ñß½¿ «¡
- ñ«ßΓπ»Ñ¡.
-
- ANSI_VAR_FONT Ä»αÑñѽ∩ÑΓ Φα¿ΣΓ ß »ÑαѼѡ¡«⌐
- Φ¿α¿¡«⌐, íếαπεΘ¿⌐ß∩ ¡á ¡áí«αÑ
- ß¿¼ó«½«ó ó ¬«ñÑ ANSI. Äíδτ¡«
- ¿ß»«½∞ºπÑΓß∩ Φα¿ΣΓ Helvetica, Ñß½¿ «¡
- ñ«ßΓπ»Ñ¡.
-
-
- Windows 3.0/pg/3#3 = 74 =
-
- DEVICEDEFAULT_FONT Ä»αÑñѽ∩ÑΓ Φα¿ΣΓ, ¡á¿í«½ÑÑ »«ñσ«ñ∩Θ¿⌐
- ñ½∩ ñá¡¡«ú« πßΓα«⌐ßΓóá. ¥Γ«Γ Φα¿ΣΓ
- ºáó¿ß¿Γ «Γ Γ«ú«, ¬á¬ αẼÑΓτ¿¬ Φα¿ΣΓá
- GDI ¿¡ΓÑα»αÑΓ¿απÑΓ ºá»α«ßδ ¡á Φα¿ΣΓ,
- ΓᬠτΓ« Φα¿ΣΓ ¼«ªÑΓ º¡áτ¿Γѽ∞¡«
- ¼Ñ¡∩Γ∞ß∩ «Γ πßΓα«⌐ßΓóá ¬ πßΓα«⌐ßΓóπ.
-
- OEM_FIXED_FONT Ä»αÑñѽ∩ÑΓ Φα¿ΣΓ ß Σ¿¬ß¿α«óá¡¡δ¼
- Φáú«¼, íếαπεΘ¿⌐ß∩ ¡á ¡áí«αÑ
- ß¿¼ó«½«ó ó ¬«ñÑ OEM. ¥Γ«Γ ¡áí«α
- ß¿¼ó«½«ó ¼Ñ¡∩ÑΓß∩ «Γ ß¿ßΓÑ¼δ ¬
- ß¿ßΓѼÑ. ä½∩ »Ñαß«¡á½∞¡δσ ¥éî Γ¿»á
- IBM PC ¿ ß«ó¼ÑßΓ¿¼δσ ß ¡¿¼¿ Φα¿ΣΓ OEM
- íếαπÑΓß∩ ¡á ¡áí«αÑ ß¿¼ó«½«ó IBM PC.
-
- SYSTEM_FONT Ä»αÑñѽ∩ÑΓ ß¿ßΓѼ¡δ⌐ Φα¿ΣΓ. ¥Γ« Φα¿ΣΓ
- ß Σ¿¬ß¿α«óá¡¡δ¼ Φáú«¼, íếαπεΘ¿⌐ß∩
- ¡á ¡áí«αÑ ß¿¼ó«½«ó ó ¬«ñÑ ANSI ¿
- ¿ß»«½∞ºπѼδ⌐ ß¿ßΓѼ«⌐ ñ½∩
- ¿¡ñ¿µ¿α«óá¡¿∩ ºáú«½«ó¬«ó «¬«¡, ¿¼Ñ¡
- ¼Ñ¡ε ¿ ΓѬßΓá ó »á¡Ñ½∩σ ñ¿á½«úá.
- æ¿ßΓѼ¡δ⌐ Φα¿ΣΓ óßÑúñá ñ«ßΓπ»Ñ¡.
- äαπú¿Ñ Φα¿ΣΓδ ñ«ßΓπ»¡δ Γ«½∞¬« ó Γ«¼
- ß½πτáÑ, Ñß½¿ «¡¿ ¿¡ßΓá½½¿α«óá¡δ.
- ───────────────────────────────────────────────────────────────
-
- ä½∩ Γ«ú«, τΓ«íδ ¿ß»«½∞º«óáΓ∞ Φα¿ΣΓ ¡á ºá¬áº, ß«ºñá⌐ΓÑ Ñú«
- ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GetStockObject ¿ ºáΓѼ óδíÑα¿ΓÑ ñÑß¬α¿»Γ«α
- Φα¿ΣΓá ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε SelectObject.
- éßÑ »«ß½ÑñπεΘ¿Ñ ó맮óδ Σπ¡¬µ¿¿ TextOut íπñπΓ ¿ß»«½∞º«óáΓ∞
- óδíαá¡¡δ⌐ Φα¿ΣΓ. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬
- ¿ß»«½∞º«óáΓ∞ Φα¿ΣΓ ANSI ß »ÑαѼѡ¡«⌐ Φ¿α¿¡«⌐:
-
- HFONT hFont;
- HFONT hOldFont;
- .
- .
- .
- hFont = GetStockObject(ANSI_VAR_FONT);
- if (hOldFont = SelectObject(hDC, hFont)) {
- TextOut(hDC, 10, 10, "Åα¿¼Ñα ßΓ᫬¿", 13);
- SelectObject(hDC, hOldFont);
- }
-
- ìÑ«íσ«ñ¿¼« óδíαáΓ∞ Φα¿ΣΓ (¬á¬ ¿ ñαπú¿Ñ «íΩѬΓδ GDI) »ÑαÑñ
- ΓѼ, ¬á¬ ¿ß»«½∞º«óáΓ∞ Ñú« ó «»Ñαᵿ∩σ óδó«ñá. öπ¡¬µ¿∩
- SelectObject óδí¿αáÑΓ ß«ºñá¡¡δ⌐ »«½∞º«óáΓѽѼ Φα¿ΣΓ ¿
- ó«ºóαáΘáÑΓ Ñú« ñÑß¬α¿»Γ«α. æ¿ßΓѼ¡δ⌐ Φα¿ΣΓ ¡á ºá¬áº óßÑúñá
- ñ«ßΓπ»Ñ¡, ñáªÑ Ñß½¿ ¡ÑΓ ñαπú¿σ Φα¿ΣΓ«ó ¡á ºá¬áº. é φΓ«¼ ß½πτáÑ
- Σπ¡¬µ¿∩ GetStockObject ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α ß¿ßΓѼ¡«ú« Φα¿ΣΓá.
-
-
- Windows 3.0/pg/3#3 = 75 =
-
- 18.4 櫺ñá¡¿Ñ ½«ú¿τÑ߬«ú« Φα¿ΣΓá.
-
- ï«ú¿τÑ߬¿⌐ Φα¿ΣΓ - φΓ« »ÑαÑτÑ¡∞ áΓα¿íπΓ«ó Φα¿ΣΓá Γᬿσ,
- ¬á¬ óδß«Γá, Φ¿α¿¡á, ¡áí«α ß¿¼ó«½«ó ¿ ¡áτÑαΓá¡¿Ñ, ¬«Γ«αδÑ
- ¿ß»«½∞ºπÑΓ GDI »α¿ óδí«αÑ Φα¿ΣΓá ñ½∩ óδó«ñá ΓѬßΓá. ï«ú¿τÑ߬¿⌐
- Φα¿ΣΓ ¼«ª¡« ß«ºñáΓ∞ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ CreateFont. ¥Γá Σπ¡¬µ¿∩
- ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α ½«ú¿τÑ߬«ú« Φα¿ΣΓá. ¡« ¿ß»«½∞º«óáΓ∞
- φëà ñÑß¬α¿»Γ«α ó Σπ¡¬µ¿¿ SelectObject ñ½∩ óδí«αá φΓ«ú« Φα¿ΣΓá
- ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá. Åα¿ óδí«αÑ ½«ú¿τÑ߬«ú« Φα¿ΣΓá GDI
- »«ñí¿αáÑΓ Σ¿º¿τÑ߬¿⌐ Φα¿ΣΓ, «»¿αá∩ß∞ ¡á óáΦ ºá»α«ß. GDI
- »δΓáÑΓß∩ »«ñ«íαáΓ∞ Σ¿º¿τÑ߬¿⌐ Φα¿ΣΓ, ¬«Γ«αδ⌐ ¡á¿í«½ÑÑ Γ«τ¡«
- ß««ΓóÑΓßΓóπÑΓ ºáñá¡¡«¼π ½«ú¿τÑ߬«¼π Φα¿ΣΓπ, ¡« Ñß½¿ φΓ«
- ¡Ñ󫺼«ª¡«, Γ« íÑαÑΓ ¡á¿í«½ÑÑ ß««ΓóÑΓßΓóπεΘ¿⌐ Ѽπ.
-
- é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ Σπ¡¬µ¿∩ CreateFont ß«ºñáÑΓ
- ½«ú¿τÑ߬¿⌐ Φα¿ΣΓ.
-
- hFont = CreateFont(
- 10, /* lfHeight */
- 8, /* lfWidth */
- 0, /* lfEscapement */
- 0, /* lfOrientation */
- FN_NORMAL, /* lfWeight */
- FALSE, /* lfItalic */
- FALSE, /* lfUnderline */
- FALSE, /* lfStrikeOut */
- ANSI_CHARSET, /* lfCharSet */
- OUT_DEFAULT_PRECIS, /* lfOutPrecision */
- CLIP_DEFAULT_PRECIS, /* lfClipPrecision */
- DEFAULT_QUALITY, /* lfQuality */
- FIXED_PITCH | FF_MODERN, /* lfPitchAndFamily */
- "System" /* lfFaceName */
- );
-
- äá¡¡δ⌐ ½«ú¿τÑ߬¿⌐ Φα¿ΣΓ ºá»αáΦ¿óáÑΓ Φα¿ΣΓ ß Σ¿¬ß¿α«óá¡¡δ¼
- Φáú«¼, ó ¬«Γ«α«¼ ¬áªñδ⌐ ß¿¼ó«½ ¿¼ÑÑΓ óδß«Γπ 10 »¿¬ßѽÑ⌐ ¿
- Φ¿α¿¡π 8 »¿¬ßѽÑ⌐. ÉẼÑαδ Φα¿ΣΓá óßÑúñá ºáñáεΓß∩ ó »¿¬ßѽ∩σ.
- çá»αáΦ¿óáѼδÑ πú«½ ¡á¬½«¡á ßΓ᫬¿ ¿ ß¿¼ó«½á αáó¡δ ¡π½ε; φΓ«
- «º¡áτáÑΓ, τΓ« íẫóá∩ ½¿¡¿∩, óñ«½∞ ¬«Γ«α«⌐ ¿¡ñ¿µ¿απεΓß∩ ß¿¼ó«½δ
- - ú«α¿º«¡Γá½∞¡á ¿ ¡¿ «ñ¿¡ ß¿¼ó«½ ¡Ñ íπñÑΓ »«óÑα¡πΓ. FW_NORMAL -
- φΓ« ºá»αáΦ¿óáѼá∩ ∩ᬫßΓ∞. äαπú¿¼¿ º¡áτÑ¡¿∩¼¿ ∩ᬫßΓ¿ ¼«úπΓ
- íδΓ∞ FW_BOLD (ª¿α¡δ⌐ Φα¿ΣΓ) ¿ FW_LIGHT (∩ન⌐ Φα¿ΣΓ). èπαß¿ó,
- »«ñτÑનóá¡¿Ñ ¿ »ÑαÑτÑનóá¡¿Ñ ß¿¼ó«½«ó ¡Ñ ΓαÑíπεΓß∩.
- çá»αáΦ¿óáѼδ⌐ ¡áí«α ß¿¼ó«½«ó - ANSI, ßΓá¡ñáαΓ¡δ⌐ ¡áí«α ß¿¼ó«½«ó
- Windows. çá»αáΦ¿óáεΓß∩ Γ«τ¡«ßΓ∞ óδó«ñá Φα¿ΣΓá, Γ«τ¡«ßΓ∞
- óδαѺ᡿∩ ¿ ¬áτÑßΓó« »« π¼«½τá¡¿ε. ¥Γ¿ áΓα¿íπΓδ ó«ºñÑ⌐ßΓóπεΓ ¡á
- ß»«ß«í «Γ«íαáªÑ¡¿∩ ß¿¼ó«½«ó. ôßΓá¡«ó¬á φΓ¿σ áΓα¿íπΓ«ó ó
- º¡áτÑ¡¿∩ »« π¼«½τá¡¿ε »«ºó«½∩ÑΓ πßΓα«⌐ßΓóπ «Γ«íαáªÑ¡¿∩
- ¿ß»«½∞º«óáΓ∞ óßÑ »αÑ¿¼πΘÑßΓóá, »αÑñ«ßΓáó½∩ѼδÑ ßó«¿¼¿
- ß«íßΓóÑ¡¡δ¼¿ 󫺼«ª¡«ßΓ∩¼¿ »« ¿¡ñ¿µ¿α«óá¡¿ε ß¿¼ó«½«ó.
- çá»αáΦ¿óáѼ«Ñ ßѼÑ⌐ßΓó« Φα¿ΣΓ«ó - FF_MODERN. ìῼѡ«óá¡¿Ñ
- Φα¿ΣΓá - "System".
-
- è«úñá Σπ¡¬µ¿∩ SelectObject »«½πτáÑΓ ½«ú¿τÑ߬¿⌐ Φα¿ΣΓ, «¡á
- »α«óÑα∩ÑΓ »π½ ¿¼ÑεΘ¿σß∩ ó ¡á½¿τ¿¿ Φα¿ΣΓ«ó, τΓ«íδ ¡á⌐Γ¿ Φα¿ΣΓ,
-
- Windows 3.0/pg/3#3 = 76 =
-
- πñ«ó½ÑΓó«α∩εΘ¿⌐ ºá»α«ΦÑ¡¡δ¼ áΓα¿íπΓá¼. àß½¿ Σπ¡¬µ¿∩ ¡áσ«ñ¿Γ ó
- Γ«τ¡«ßΓ¿ Γ«, τΓ« ¡Ñ«íσ«ñ¿¼«, «¡á ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α φΓ«ú«
- Φα¿ΣΓá. àß½¿ «¡á ¡Ñ ¡áσ«ñ¿Γ Γ«τ¡«ú« ß««ΓóÑΓßΓó¿∩, Γ« óδí¿αáÑΓ
- ¡á¿í«½ÑÑ ß««ΓóÑΓßΓóπεΘ¿⌐ Φα¿ΣΓ ¿ ó«ºóαáΘáÑΓ Ñú« ñÑß¬α¿»Γ«α. é
- ¡Ñ¬«Γ«αδσ ß½πτá∩σ Σπ¡¬µ¿∩ SelectObject ¼«ªÑΓ ¡Ñ ¡á⌐Γ¿ Γ«τ¡πε
- ¬«»¿ε ¿ß¬«¼«ú« ½«ú¿τÑ߬«ú« Φα¿ΣΓá, ¡« ΓѼ ¡Ñ ¼Ñ¡ÑÑ ¼«ªÑΓ
- ß¿¡ΓѺ¿α«óáΓ∞ ºá»αáΦ¿óáѼδ⌐ Φα¿ΣΓ, ¿ß»«½∞ºπ∩ ¡á¿í«½ÑÑ
- ß««ΓóÑΓßΓóπεΘ¿⌐ Φα¿ΣΓ ¿º ßπΘÑßΓóπεΘ¿σ. ìá»α¿¼Ñα, Ñß½¿ ñ«ßΓπ»Ñ¡
- Γ«½∞¬« ß¿ßΓѼ¡δ⌐ Φα¿ΣΓ, ¿¼ÑεΘ¿⌐ ó óδß«Γπ 5 »¿¬ßѽÑ⌐, á
- ½«ú¿τÑ߬¿⌐ Φα¿ΣΓ óδíαá¡ óδß«Γ«⌐ ó 10 »¿¬ßѽÑ⌐, Σπ¡¬µ¿∩
- SelectObject ¼«ªÑΓ ß¿¡ΓѺ¿α«óáΓ∞ ºá»αáΦ¿óáѼδ⌐ Φα¿ΣΓ, πñó«¿ó
- óδß«Γπ. é Γᬿσ ß½πτá∩σ Σπ¡¬µ¿∩ SelectObject ó«ºóαáΘáÑΓ ñ½∩
- óδó«ñá ΓѬßΓá ß¿¡ΓѺ¿α«óá¡¡δ⌐ Φα¿ΣΓ.
- 18.5 êß»«½∞º«óá¡¿Ñ ¡Ñ߬«½∞¬¿σ Φα¿ΣΓ«ó ó «ñ¡«⌐ ßΓ᫬Ñ.
-
- àß½¿ αáºαáíáΓδóáÑΓß∩ »α«úαá¼¼á, ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ
- ¡Ñ߬«½∞¬« Φα¿ΣΓ«ó (¡á»α¿¼Ñα, ΓѬßΓ«óδ⌐ »α«µÑßß«α), óÑα«∩Γ¡«,
- »«ΓαÑíπÑΓß∩ ¿ß»«½∞º«óáΓ∞ í«½ÑÑ «ñ¡«ú« Φα¿ΣΓá ñ½∩ «ñ¡«⌐ ßΓ᫬¿.
- é φΓ«¼ ß½πτáÑ ¡Ñ«íσ«ñ¿¼« óδó«ñ¿Γ∞ ΓѬßΓ, ¿ß»«½∞ºπ∩ «Γñѽ∞¡«
- ¬áªñδ⌐ Φα¿ΣΓ. öπ¡¬µ¿∩ TextOut ¿º¼Ñ¡∩Γ∞ Φα¿ΣΓ ¡Ñ ¼«ªÑΓ.
-
- â½áó¡á∩ Γαπñ¡«ßΓ∞ ó ¿ß»«½∞º«óá¡¿¿ í«½ÑÑ «ñ¡«ú« Φα¿ΣΓá ñ½∩
- «ñ¡«⌐ ßΓ᫬¿ ΓѬßΓá ß«ßΓ«¿Γ ó Γ«¼, τΓ« ¡Ñ«íσ«ñ¿¼« ß«σαá¡∩Γ∞ Γ«
- ¬«½¿τÑßΓó« ß¿¼ó«½«ó, ¬«Γ«α«Ñ óδó«ñ¿Γß∩ »α¿ ¬áªñ«¼ ó맮óÑ
- Σπ¡¬µ¿¿ TextOut, τΓ«íδ ¿¼ÑΓ∞ ß««ΓóÑΓßΓóπεΘπε ¡áτá½∞¡πε »«º¿µ¿ε
- ß½ÑñπεΘÑ⌐ τáßΓ¿ ßΓ᫬¿. àß½¿ ¿ß»«½∞ºπÑΓß∩ Φα¿ΣΓ ß »ÑαѼѡ¡«⌐
- Φ¿α¿¡«⌐, Γ« ¼«úπΓ ó«º¡¿¬¡πΓ∞ Γαπñ¡«ßΓ¿ »α¿ ß«σαá¡Ñ¡¿¿ ñ½¿¡δ
- óδó«ñ¿¼«⌐ ßΓ᫬¿. Äñ¡á¬«, Windows »αÑñ«ßΓáó½∩ÑΓ Σπ¡¬µ¿ε
- GetTextExtent, ¬«Γ«αá∩ óδτ¿ß½∩ÑΓ ñ½¿¡π ºáñá¡¡«⌐ ßΓ᫬¿,
- ¿ß»«½∞ºπ∩ º¡áτÑ¡¿∩ Φ¿α¿¡δ ß¿¼ó«½«ó ΓѬπΘÑú« Φα¿ΣΓá.
-
- Äñ¿¡ ¿º ß»«ß«í«ó Σ«α¼¿α«óá¡¿∩ ßΓ᫬¿ ΓѬßΓá, ¬«Γ«αá∩
- ß«ñÑαª¿Γ ¡Ñ߬«½∞¬« Φα¿ΣΓ«ó, ß«ßΓ«¿Γ ó ¿ß»«½∞º«óá¡¿¿ Σπ¡¬µ¿¿
- GetTextExtent »«ß½Ñ ¬áªñ«ú« ó맮óá TextOut ¿ ó ñ«íáó½Ñ¡¿¿ ñ½¿¡δ
- óδóÑñÑ¡¡«⌐ τáßΓ¿ ßΓ᫬¿ ¬ ΓѬπΘÑ⌐ »«º¿µ¿¿. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ
- »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ ºá»¿ßáΓ∞ ßΓ᫬π "Åα¿¼Ñα ßΓ᫬¿",
- ¿ß»«½∞ºπ∩ ¬παß¿ó ñ½∩ ß½«óá "Åα¿¼Ñα" ¿ ª¿α¡δ⌐ Φα¿ΣΓ ñ½∩
- «ßΓá½∞¡δσ ß¿¼ó«½«ó:
-
- X = 10;
- SelectObject(hDC, hItalicFont);
- TextOut(hDC, X, 10, "Åα¿¼Ñα ", 7));
-
- X = X + LOWORD(GetTextExtent(hDC, "Åα¿¼Ñα ", 7));
- SelectObject(hDC, hBoldFont);
- TextOut(hDC, 10, "ßΓ᫬¿", 6);
-
- é φΓ«¼ »α¿¼ÑαÑ Σπ¡¬µ¿∩ SelectObject πßΓá¡áó½¿óáÑΓ Φα¿ΣΓ,
- ¬«Γ«αδ⌐ íπñÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ó »«ß½ÑñπεΘÑ⌐ Σπ¡¬µ¿¿ TextOut.
- ÅαÑñ»«½áúáÑΓß∩, τΓ« ñÑß¬α¿»Γ«αδ Φα¿ΣΓá hBoldFont ¿ hItalicFont
- í뫨 ß«ºñá¡δ αá¡ÑÑ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ CreateFont. èáªñá∩ Σπ¡¬µ¿∩
- TextOut ºá»¿ßδóáÑΓ τáßΓ∞ ßΓ᫬¿, ºáΓѼ Σπ¡¬µ¿∩ GetTextExtent
-
- Windows 3.0/pg/3#3 = 77 =
-
- óδτ¿ß½∩ÑΓ ñ½¿¡π φΓ«⌐ τáßΓ¿. öπ¡¬µ¿∩ GetTextExtent ó«ºóαáΘáÑΓ
- º¡áτÑ¡¿Ñ ó ó¿ñÑ ñó«⌐¡«ú« ß½«óá, ß«ñÑαªáΘÑú« ñ½¿¡π ¿ óδß«Γπ. ä½∩
- »«½πτÑ¡¿∩ ñ½¿¡δ ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ ß½πªÑí¡πε Σπ¡¬µ¿ε
- LOWORD. ¥Γá ñ½¿¡á ñ«íáó½∩ÑΓß∩ ¬ ΓѬπΘÑ⌐ »«º¿µ¿¿, «»αÑñѽ∩∩
- ¡áτá½∞¡πε »«º¿µ¿ε ß½ÑñπεΘÑ⌐ τáßΓ¿ ßΓ᫬¿.
-
- äαπú«⌐ ß»«ß«í Σ«α¼¿α«á¡¿∩ ßΓ᫬¿ ß ¡Ñ߬«½∞¬¿¼¿ Φα¿ΣΓἿ -
- ß«ºñá¡¿Ñ Σπ¡¬µ¿¿, ¬«Γ«αá∩ «íΩÑñ¿¡∩ÑΓ óßÑ ΓαÑíπѼδÑ ñÑ⌐ßΓó¿∩.
- ì¿ªÑ »α¿óÑñÑ¡á Γá¬á∩ Σπ¡¬µ¿∩:
-
- WORD StringOut(hDC, X, Y, lpString, hFont)
- HDC hDC;
- short X;
- short Y;
- LPSTR lpString;
- HANDLE hFont;
- {
- HANDLE hPrevFont;
- hPrevFont = SelectObject(hDC, hFont);
- TextOut(hDC, X, Y, lpString, lstrlen(lpString));
- SelectObject(hDC, hPrevFont);
- return (LOWORD(GetTextExtent(hDC, lpString,
- lstrlen(lpString)));
- }
-
- ¥Γá Σπ¡¬µ¿∩ ºá»¿ßδóáÑΓ ßΓ᫬π ó ºáñá¡¡«¼ Φα¿ΣΓÑ, ºáΓѼ
- ó«ßßΓá¡áó½¿óáÑΓ Φα¿ΣΓ ó Ñú« »αÑñδñπΘÑÑ ß«ßΓ«∩¡¿Ñ ¿ ó«ºóαáΘáÑΓ
- ñ½¿¡π ºá»¿ßá¡¡«⌐ ßΓ᫬¿. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«,
- ¬á¬ ºá»¿ßáΓ∞ ßΓ᫬π "Åα¿¼Ñα ßΓ᫬¿":
-
- X = 10;
- X = X + StringOut(hDC, X, 10, "Åα¿¼Ñα ", hItalicFont);
- StringOut(hDC, X, 10, "ßΓ᫬¿", hBoldFont);
- 18.6 Å«½πτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ « óδíαá¡¡«¼ Φα¿ΣΓÑ.
-
- ¡« »«½πτ¿Γ∞ ¿¡Σ«α¼áµ¿ε « óδíαá¡¡«¼ Φα¿ΣΓÑ ¿º ¬«¡ΓѬßΓá
- πßΓα«⌐ßΓóá, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿¿ GetTextMetrics ¿ GetTextFace.
-
- öπ¡¬µ¿∩ GetTextMetrics ¬«»¿απÑΓ ßΓαπ¬Γπαπ TEXTMETRIC ó
- »αÑñ«ßΓáó½∩Ѽδ⌐ »«½∞º«óáΓѽѼ íπΣÑα. æΓαπ¬Γπαá ß«ñÑনΓ
- «»¿ßá¡¿Ñ Φα¿ΣΓá, ó¬½ετá∩ ßαÑñ¡¿Ñ αẼÑαδ ∩τÑѬ ß¿¼ó«½«ó Φα¿ΣΓá,
- τ¿ß½« ß¿¼ó«½«ó ó Φα¿ΣΓÑ ¿ ¡áí«α ß¿¼ó«½«ó, ¡á ¬«Γ«α«¼ íếαπÑΓß∩
- Φα¿ΣΓ. ¡« ¿ß»«½∞º«óáΓ∞ σáαá¬ΓÑα¿ßΓ¿¬¿ ΓѬßΓá ñ½∩ «»αÑñѽѡ¿∩
- αáßßΓ«∩¡¿∩ ¼Ñªñπ ßΓα«¬á¼¿ ΓѬßΓá, º¡áτÑ¡¿⌐, ß««ΓóÑΓßΓóπεΘ¿σ
- «»αÑñѽѡ¡δ¼ ß¿¼ó«½á¼ ¿½¿ ¡áτÑαΓá¡¿Ñ ß¿¼ó«½á Φα¿ΣΓá »«
- π¼«½τá¡¿ε.
-
- òáαá¬ΓÑα¿ßΓ¿¬¿ ΓѬßΓá τáΘÑ óßÑú« ¿ß»«½∞ºπεΓß∩ ñ½∩
- «»αÑñѽѡ¿∩ ¡Ñ«íσ«ñ¿¼«ú« αáßßΓ«∩¡¿∩ ¼Ñªñπ ßΓα«¬á¼¿ ΓѬßΓá,
- τΓ«íδ «ñ¡á ßΓα«¬á ¡Ñ ¡á»«½ºá½á ¡á ñαπúπε. ìá»α¿¼Ñα, τΓ«íδ
- óδτ¿ß½¿Γ∞ ß««ΓóÑΓßΓóπεΘÑÑ º¡áτÑ¡¿Ñ ñ½∩ αáßßΓ«∩¡¿∩ ó «ñ¡π
- ßΓ᫬π, ¡Ñ«íσ«ñ¿¼« ß½«ª¿Γ∞ º¡áτÑ¡¿∩ »«½Ñ⌐ tmHeight ¿
-
- Windows 3.0/pg/3#3 = 78 =
-
- tmExternalLeading ßΓαπ¬Γπαδ TEXTMETRIC. Å«½Ñ tmHeight
- ߻ѵ¿Σ¿µ¿απÑΓ óδß«Γπ ¬áªñ«⌐ ∩τÑ⌐¬¿ ß¿¼ó«½á, á »«½Ñ
- tmExternalLeading - αѬ«¼Ñ¡ñπѼ«Ñ αáßßΓ«∩¡¿Ñ ¼Ñªñπ ¡¿ª¡Ñ⌐
- τáßΓ∞ε «ñ¡«⌐ ∩τÑ⌐¬¿ ß¿¼ó«½á ¿ óÑασ¡Ñ⌐ τáßΓ∞ε ß½ÑñπεΘÑ⌐. é
- »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ óδóÑßΓ¿ ¡Ñ߬«½∞¬« ßΓ᫬
- ß αáßßΓ«∩¡¿Ñ¼ ¼Ñªñπ ¡¿¼¿ ó «ñ¡π ßΓ᫬π:
-
- TEXTMETRICS TextMetric;
- int nLineSpace;
- int i;
- .
- .
- .
- GetTextMetrics(hDC, &TextMetric);
- nLineSpace = TextMetric.tmHeight +
- TextMetric.tmExternalLeading;
- Y = 0;
- for (i = 0; i < 4; i++) {
- TextOut(hDC, 0, Y, "ê¡ΓÑαóá½ ó «ñ¡π ßΓ᫬π", 22);
- Y += nLineSpace;
- }
-
- ¡« Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ σáαá¬ΓÑα¿ßΓ¿¬¿ ΓѬßΓá ñ½∩
- »α«óÑન, τΓ« óδíαá¡¡δ⌐ Φα¿ΣΓ ¿¼ÑÑΓ ºá»αáΦ¿óáѼδÑ »áαá¼ÑΓαδ
- ΓᬿÑ, ¬á¬ ∩ᬫßΓ∞, ¡áí«α ß¿¼ó«½«ó, Φáú ¿ ßѼÑ⌐ßΓó«. ¥Γ«
- »«½Ñº¡« ó Γ«¼ ß½πτáÑ, Ñß½¿ ¡Ñ »«ñú«Γ«ó½Ñ¡ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá;
- ¡á»α¿¼Ñα, Ñß½¿ «¡ »«½πτÑ¡ ¬á¬ τáßΓ∞ ß««íΘÑ¡¿∩ ñ«τÑα¡Ñú« «¬¡á
- ¿½¿ í½«¬á π»αáó½Ñ¡¿∩. ü«½ÑÑ »«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ « »«½∩σ
- ßΓαπ¬Γπαδ TEXTMETRICS ñá¡á ó« óΓ«α«¼ Γ«¼Ñ æ»αáó«τ¡«ú«
- απ¬«ó«ñßΓóá.
-
- öπ¡¬µ¿∩ GetTextFace ¬«»¿απÑΓ ¿¼∩, ¿ñÑ¡Γ¿Σ¿µ¿απεΘÑÑ ó¡ÑΦ¡¿⌐
- ó¿ñ óδíαá¡¡«ú« Φα¿ΣΓá, ó »αÑñ«ßΓáó½Ñ¡¡δ⌐ íπΣÑα. ìῼѡ«óá¡¿Ñ
- Φα¿ΣΓá ó¼ÑßΓÑ ß σáαá¬ΓÑα¿ßΓ¿¬á¼¿ ΓѬßΓá »«ºó«½∩εΓ »«½¡«ßΓ∞ε
- «»αÑñѽ¿Γ∞ Φα¿ΣΓ. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ ¡á¿¼Ñ¡«óá¡¿Ñ
- ΓѬπΘÑú« Φα¿ΣΓá ¬«»¿απÑΓß∩ ó ß¿¼ó«½∞¡δ⌐ ¼áßß¿ó FaceName:
-
- char FaceName[32];
- .
- .
- .
- GetTextFace(hDC, 32, FaceName);
- 18.7 Å«½πτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ « ½«ú¿τÑ߬«¼ Φα¿ΣΓÑ.
-
- ¡« »«½πτ¿Γ∞ ¿¡Σ«α¼áµ¿ε « Φα¿ΣΓÑ ¿º ñÑß¬α¿»Γ«αá Φα¿ΣΓá,
- ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε GetObject. ¥Γá Σπ¡¬µ¿∩ ¬«»¿απÑΓ ¿¡Σ«α¼áµ¿ε «
- ½«ú¿τÑ߬«¼ Φα¿ΣΓÑ Γá¬πε, ¬á¬ óδß«Γá, Φ¿α¿¡á, ∩ᬫßΓ∞ ¿ ¡áí«α
- ß¿¼ó«½«ó, ó »αÑñ«ßΓáó½∩Ѽπε ßΓαπ¬Γπαπ. ¡« ¿ß»«½∞º«óáΓ∞ φΓπ
- ¿¡Σ«α¼áµ¿ε ñ½∩ Γ«ú«, τΓ«íδ αÑΦ¿Γ∞, ¡á߬«½∞¬« ñá¡¡δ⌐ Φα¿ΣΓ
- «ΓóÑτáÑΓ ΓαÑí«óá¡¿∩¼ »«½∞º«óáΓѽ∩. öπ¡¬µ¿¿ GetObject ¿
- CreateFont τáßΓ« ¿ß»«½∞ºπεΓß∩ »«ß½Ñ ß«ºñá¡¿∩ ñ½∩ »α«óÑન,
- ¡á߬«½∞¬« í½¿º«¬ ñá¡¡δ⌐ Φα¿ΣΓ ¬ ΓαÑíπѼ«¼π. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ
-
- Windows 3.0/pg/3#3 = 79 =
-
- »α¿¼ÑαÑ Σπ¡¬µ¿∩ GetObject ó«ºóαáΘáÑΓ ¿¡Σ«α¼áµ¿ε « ó¡«ó∞
- ß«ºñá¡¡«¼ Φα¿ΣΓÑ ¿ ßαáó¡¿óáÑΓ º¡áτÑ¡¿∩ ¡áí«αá ß¿¼ó«½«ó ¿
- ¡á¿¼Ñ¡«óá¡¿∩ Φα¿ΣΓ«ó:
-
- HFONT hFont;
- LOGFONT LogFont;
- .
- .
- .
- hFont = CreateFont(
- 10,
- 10,
- 0,
- 0,
- FW_NORMAL,
- FALSE,
- FALSE,
- FALSE,
- OEM_CHARSET,
- OUT_DEFAULT_PRECIS,
- CLIP_DEFAULT_PRECIS,
- DEFAULT_QUALITY,
- FIXED_PITCH | FF_MODERN,
- "Courier"
- );
-
- GetObject(hFont, (LPLOGFONT) &LogFont);
-
- if (LogFont.lfCharSet != OEM_CHARSET) {
- .
- .
- .
- }
- if(strcmp(LogFont.lfFaceName, "Courier")) {
- .
- .
- .
- }
-
- ÿα¿ΣΓ, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓ GDI »α¿ Σá¬Γ¿τÑ߬«¼ óδí«αÑ
- Φα¿ΣΓá ß »«¼«Θ∞ε Σπ¡¬µ¿¿ SelectObject, ¼«ªÑΓ ß¿½∞¡« ¼Ñ¡∩Γ∞ß∩ «Γ
- ß¿ßΓÑ¼δ ¬ ß¿ßΓѼÑ. éδíαá¡¡δ⌐ Φα¿ΣΓ, ¬«Γ«αδ⌐ ºáó¿ß¿Γ «Γ
- ñ«ßΓπ»¡δσ ¡á ñá¡¡δ⌐ ¼«¼Ñ¡Γ Φα¿ΣΓ«ó, ¼«ªÑΓ ß««ΓóÑΓßΓó«óáΓ∞ ¿½¿
- ¡Ñ ß««ΓóÑΓßΓó«óáΓ∞ ºá»α«ßá¼ »«½∞º«óáΓѽ∩. àñ¿¡ßΓóÑ¡¡δ⌐ ß»«ß«í
- úáαá¡Γ¿α«óáΓ∞ πñ«ó½ÑΓó«αÑ¡¿Ñ ºá»α«ßá - φΓ«:
-
- - Ä»αÑñѽ¿Γ∞, ¬á¬¿Ñ Φα¿ΣΓδ Σá¬Γ¿τÑ߬¿ ñ«ßΓπ»¡δ ¿ ºá»αá-
- Φ¿óáΓ∞ Γ«½∞¬« ¿σ.
-
- - ä«íáó¿Γ∞ ß««ΓóÑΓßΓóπεΘ¿⌐ αÑßπαß Φα¿ΣΓá ¬ Γáí½¿µÑ ß¿ß-
- ΓѼ¡δσ Φα¿ΣΓ«ó »ÑαÑñ ΓѼ, ¬á¬ ñѽáΓ∞ ºá»α«ß.
-
- - 꺼ѡ¿Γ∞ ¼ÑΓ«ñ, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓ ñ½∩ óδí«αá αẼÑΓ-
- τ¿¬ Φα¿ΣΓá.
-
- Windows 3.0/pg/3#3 = 80 =
-
- 18.8 ÅÑαÑτ¿ß½Ñ¡¿Ñ Φα¿ΣΓ«ó.
-
- ¡« «»αÑñѽ¿Γ∞, ¬á¬«⌐ Φα¿ΣΓ ñ«ßΓπ»Ñ¡ ñ½∩ ñá¡¡«ú«
- πßΓα«⌐ßΓóá, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε EnumFonts. ¥Γá Σπ¡¬µ¿∩ »«ßδ½áÑΓ
- ¿¡Σ«α¼áµ¿ε «í ¿¼ÑεΘ¿σß∩ Φα¿ΣΓáσ Σπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá,
- »αÑñ«ßΓáó½∩Ѽ«⌐ »«½∞º«óáΓѽѼ. öπ¡¬µ¿∩ ¼¡«ú«¬αáΓ¡«ú« ó맮óá
- »«½πτáÑΓ ¿¡Σ«α¼áµ¿ε « ½«ú¿τÑ߬«¼ Φα¿ΣΓÑ ¿ σáαá¬ΓÑα¿ßΓ¿¬áσ
- ΓѬßΓá. êº φΓ«⌐ ¿¡Σ«α¼áµ¿¿ »«½∞º«óáΓѽ∞ ¼«ªÑΓ «»αÑñѽ¿Γ∞, ¬á¬¿Ñ
- Φα¿ΣΓδ «¡ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞, ¿ ß«ºñáΓ∞ ñ½∩ ¡¿σ ß««ΓóÑΓßΓóπεΘ¿Ñ
- ñÑß¬α¿»Γ«αδ. àß½¿ ß«ºñáóáΓ∞ ñÑß¬α¿»Γ«αδ Φα¿ΣΓ«ó ß »«¼«Θ∞ε φΓ«⌐
- »αÑñ«ßΓáó½∩Ѽ«⌐ ¿¡Σ«α¼áµ¿¿, Γ« ¿¼ÑÑΓß∩ úáαá¡Γ¿∩ Γ«τ¡«ú«
- ß««ΓóÑΓßΓó¿∩ »«½πτáѼ«ú« Φα¿ΣΓá ß ªÑ½áѼδ¼.
-
- öπ¡¬µ¿∩ EnumFonts «íδτ¡« óδñáÑΓ ¿¡Σ«α¼áµ¿ε «í« óßÑσ
- Φα¿ΣΓáσ, ¿¼ÑεΘ¿σ «»αÑñѽѡ¡«Ñ ¡á¿¼Ñ¡«óá¡¿Ñ. ¡« ºáñáΓ∞ φΓ«
- ¿¼∩ »α¿ ó맮óÑ Σπ¡¬µ¿¿ EnumFonts. àß½¿ ¿¼∩ ¡Ñ ºáñá¡«, Γ« φΓá
- Σπ¡¬µ¿∩ óδñáÑΓ ¿¡Σ«α¼áµ¿ε « »α«¿ºó«½∞¡« óδíαá¡¡δσ Φα¿ΣΓáσ,
- ¬áªñδ⌐ ¿º ¬«Γ«αδσ »αÑñßΓáó½∩ÑΓ ñ«ßΓπ»¡«Ñ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ
- ¡áτÑαΓá¡¿Ñ. æ»«ß«í »α«óÑન óßÑσ ñ«ßΓπ»¡δσ Φα¿ΣΓ«ó ß«ßΓ«¿Γ ó
- »«½πτÑ¡¿¿ ß»¿ß¬á ñ«ßΓπ»¡δσ ¡áτÑαΓá¡¿⌐ ¿ »ÑαÑτ¿ß½Ñ¡¿¿ ñ½∩
- ¬áªñ«ú« Φα¿ΣΓá ß««ΓóÑΓßΓóπεΘ¿σ ¡áτÑαΓá¡¿⌐.
-
- é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ ¿ß»«½∞º«óáΓ∞
- Σπ¡¬µ¿ε EnumFonts ñ½∩ Γ«ú«, τΓ«íδ «»αÑñѽ¿Γ∞, ¬á¬«Ñ ¬«½¿τÑßΓó«
- Φα¿ΣΓ«ó, ¿¼ÑεΘ¿σ ¡áτÑαΓá¡¿Ñ "Courier", ñ«ßΓπ»¡«. öπ¡¬µ¿∩
- ¼¡«ú«¬αáΓ¡«ú« ó맮óá EnumFunc »«½πτáÑΓ ¿¡Σ«α¼áµ¿ε « Φα¿ΣΓÑ ¿
- ñ½∩ ¬áªñ«ú« Φα¿ΣΓá ß«ºñáÑΓ ñÑß¬α¿»Γ«α.
-
- FARPROC lpEnumFunc;
- .
- .
- .
- int FAR PASCAL EnumFunc()
- {
- }
- hDC = GetDC(hWnd);
- lpEnumFunc = MakeProcInstance(EnumFunc, hInst);
- EnumFonts(hDC, "Courier", lpEnumFunc, NULL);
- FreeProcInstance(lpEnumFunc);
-
- ä½∩ ¿ß»«½∞º«óá¡¿∩ Σπ¡¬µ¿¿ EnumFonts ¡Ñ«íσ«ñ¿¼« ºáñáΓ∞
- Σπ¡¬µ¿ε ¼¡«ú«¬αáΓ¡«ú« ó맮óá. èᬠ¿ ¬áªñá∩ Σπ¡¬µ¿∩
- ¼¡«ú«¬αáΓ¡«ú« ó맮óá EnumFunc ñ«½ª¡á íδΓ∞ ∩ó¡« »«¿¼Ñ¡«óá¡á ó
- «»ÑαáΓ«αÑ EXPORTS Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩ ¿ «íΩ∩ó½Ñ¡á ß
- áΓα¿íπΓἿ FAR ¿ PASCAL. ä½∩ ¬áªñ«ú« »ÑαÑτ¿ß½∩Ѽ«ú« Φα¿ΣΓá
- Σπ¡¬µ¿∩ ¼¡«ú«¬αáΓ¡«ú« ó맮óá EnumFunc ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á
- ßΓαπ¬Γπα𠽫ú¿τÑ߬«ú« Φα¿ΣΓá, π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ
- σáαá¬ΓÑα¿ßΓ¿¬ ΓѬßΓá, π¬áºáΓѽ∞ ¡á ½εíδÑ ñá¡¡δÑ, ¬«Γ«αδÑ ¼«úπΓ
- íδΓ∞ »ÑαÑñá¡δ Σπ¡¬µ¿¿ EnumFonts »α¿ ó맮óÑ, ¿ µÑ½«Ñ,
- «»αÑñѽ∩εΘÑÑ Γ¿» Φα¿ΣΓá. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡á
- »α«ßΓá∩ Σπ¡¬µ¿∩ ¼¡«ú«¬αáΓ¡«ú« ó맮óá, ¬«Γ«αá∩ ß«ºñáÑΓ »ÑαÑτÑ¡∞
-
- Windows 3.0/pg/3#3 = 81 =
-
- óßÑσ αẼÑα«ó (ó ΓÑନ¡áσ óδß«Γ) ºáñá¡¡«ú« ¡áí«αá αáßΓα«óδσ
- Φα¿ΣΓ«ó:
-
- short SizeList[10];
- short SizeCnt = 0;
- .
- .
- .
- int FAR PASCAL EnumFunc(lpLogFont, lpTextMetric,
- FontType, lpData)
- LPLOGFONT lpLogFont;
- LPTEXTMETRIC lpTextMetric;
- short FontType;
- LPSTR lpData;
- {
- if (FontType & RASTER_FONTTYPE) {
- SizeList[SizeCnt++] = lpLogFont->lfHeight;
- if (SizeCnt >= 10)
- return (0);
- }
- return (1);
- }
-
- é ñá¡¡«¼ »α¿¼ÑαÑ ó¡áτá½Ñ »α«óÑα∩ÑΓß∩, τΓ« Φα¿ΣΓ ∩ó½∩ÑΓß∩
- αáßΓα«óδ¼. àß½¿ í¿Γ RASTER_FONTTYPE αáóÑ¡ 1, Γ« Φα¿ΣΓ ∩ó½∩ÑΓß∩
- αáßΓα«óδ¼; ó »α«Γ¿ó¡«¼ ß½πτáÑ - φΓ« óÑ¬Γ«α¡δ⌐ Φα¿ΣΓ. æ½ÑñπεΘ¿⌐
- Φáú - φΓ« ß«σαá¡Ñ¡¿Ñ º¡áτÑ¡¿∩ »«½∩ lfHeight ó ¼áßß¿óÑ SizeList.
- öπ¡¬µ¿∩ ¼¡«ú«¬αáΓ¡«ú« ó맮óá ß«σαá¡∩ÑΓ »ÑαóδÑ 10 αẼÑα«ó, á
- ºáΓѼ ó«ºóαáΘáÑΓ ¡π½∞ ñ½∩ »αѬαáΘÑ¡¿∩ »ÑαÑ¡π¼Ñαᵿ¿.
-
- ¡« Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ í¿Γ DEVICE_FONTTYPE »áαá¼ÑΓαá
- FontType ñ½∩ αẽ¿τÑ¡¿∩ Φα¿ΣΓ«ó, »αÑñ«ßΓáó½∩Ѽδσ GDI, «Γ
- Φα¿ΣΓ«ó, »αÑñ«ßΓáó½∩Ѽδσ πßΓα«⌐ßΓó«¼. ¥Γ« »«½Ñº¡« ñ½∩
- ¼«ñѽ¿α«óá¡¿∩ GDI ¬παß¿óá, ª¿α¡«ú« Φα¿ΣΓá, »«ñτÑનóá¡¿∩ ¿
- ºáτÑનóá¡¿∩. GDI ¼«ªÑΓ ¼«ñѽ¿α«óáΓ∞ φΓ¿ áΓα¿íπΓδ ñ½∩
- ß«íßΓóÑ¡¡δσ Φα¿ΣΓ«ó, á ¡Ñ ñ½∩ Φα¿ΣΓ«ó, »αÑñ«ßΓáó½∩Ѽδσ
- πßΓα«⌐ßΓó«¼.
- 18.9 Åα«óÑα¬á ΓѬßΓ«óδσ 󫺼«ª¡«ßΓÑ⌐ πßΓα«⌐ßΓóá.
-
- ¡« «»αÑñѽ¿Γ∞ αáßΦ¿αÑ¡¿Ñ 󫺼«ª¡«ßΓÑ⌐ πßΓα«⌐ßΓó »«
- óδó«ñπ ΓѬßΓá, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε GetDeviceCaps ¿ ¿¡ñѬß
- TEXTCAPS. ¥Γ«Γ ¿¡ñÑ¬ß »«íπªñáÑΓ Σπ¡¬µ¿ε ó«ºóαáΓ¿Γ∞ Σ½áú í¿Γá,
- ¿ñÑ¡Γ¿Σ¿µ¿απεΘ¿⌐ ΓѬßΓ«óδÑ ó«º¼«ª¡«ßΓ¿ πßΓα«⌐ßΓóá. ìá»α¿¼Ñα,
- φëà ӽáú ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ «»αÑñѽѡ¿∩, ¼«ªÑΓ ½¿ ñá¡¡«Ñ
- πßΓα«⌐ßΓó« ¿ß»«½∞º«óáΓ∞ óÑ¬Γ«α¡δÑ Φα¿ΣΓδ, »«ó«αáτ¿óáΓ∞ ß¿¼ó«½δ
- ¿½¿ ¼«ñѽ¿α«óáΓ∞ áΓα¿íπΓδ Φα¿ΣΓá ΓᬿÑ, ¡á»α¿¼Ñα, ¬á¬
- »«ñτÑનóá¡¿Ñ ¿ ¬παß¿ó. GDI ¼«ªÑΓ ¼«ñѽ¿α«óáΓ∞ óÑ¬Γ«α¡δÑ Φα¿ΣΓδ
- ¡á πßΓα«⌐ßΓóáσ, ¬«Γ«αδÑ ¡Ñ »«ññÑনóáεΓ ¡á»α∩¼πε óδó«ñ ½¿¡¿⌐.
-
- ü«½∞Φ¿¡ßΓó« ΓѬßΓ«óδσ 󫺼«ª¡«ßΓÑ⌐ »α¿¼Ñ¡¿¼« ¬ Φα¿ΣΓá¼,
- ¬«Γ«αδÑ »αÑñ«ßΓáó½∩εΓß∩ πßΓα«⌐ßΓó«¼, ó «Γ½¿τ¿Ñ «Γ Φα¿ΣΓ«ó,
- »αÑñ«ßΓáó½∩Ѽδσ GDI. Äíδτ¡« GDI ¼«ªÑΓ ¼áßΦΓáí¿α«óáΓ∞
-
- Windows 3.0/pg/3#3 = 82 =
-
- »αÑñ«ßΓáó½∩ѼδÑ ¿¼ Φα¿ΣΓδ ¿ ¼«ñѽ¿α«óáΓ∞ ¿σ áΓα¿íπΓδ; «ñ¡á¬«,
- «¡ ¡Ñ ¼«ªÑΓ ñѽáΓ∞ φΓ«ú« ñ½∩ Φα¿ΣΓ«ó, ºáñáóáѼδσ πßΓα«⌐ßΓó«¼. æ
- »«¼«Θ∞ε Σπ¡¬µ¿¿ GetDeviceCaps ¿ ¿¡ñѬßá NUMFONTS ¼«ª¡«
- «»αÑñѽ¿Γ∞, ߬«½∞¬« ¿¼ÑÑΓß∩ Φα¿ΣΓ«ó πßΓα«⌐ßΓóá. ê¡Σ«α¼áµ¿ε «
- Φα¿ΣΓáσ πßΓα«⌐ßΓóá ¼«ª¡« »«½πτ¿Γ∞, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε EnumFonts
- ¿ »α«óÑα∩∩ í¿Γ DEVICE_FONTTYPE ó »áαá¼ÑΓαÑ FontType ¬áªñδ⌐ αáº,
- ¬«úñá óδºδóáÑΓß∩ Σπ¡¬µ¿∩ ¼¡«ú«¬αáΓ¡«ú« ó맮óá EnumFonts.
-
- é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ ß«ßΓáó¿Γ∞
- »ÑαÑτÑ¡∞ Φα¿ΣΓ«ó, »αÑñ«ßΓáó½∩Ѽδσ πßΓα«⌐ßΓóἿ. öπ¡¬µ¿∩
- GetDeviceCaps ó«ºóαáΘáÑΓ τ¿ß½« Φα¿ΣΓ«ó, »αÑñ«ßΓáó½∩Ѽδσ
- πßΓα«⌐ßΓó«¼, á EnumFonts ß«ºñáÑΓ ñÑß¬α¿»Γ«αδ ñ½∩ ¬áªñ«ú« ¿º
- ¡¿σ.
-
- HDC hDC;
- HANDLE hDevFonts;
- FARPROC lpEnumFunc;
- short NumFonts;
- .
- .
- .
- int FAR PASCAL EnumFunc(lpLogFont, lpTextMetric,
- FontType, Data)
- LPLOGFONT lpLogFont;
- LPTEXTMETRIC lpTextMetric;
- short FontType;
- LONG Data;
- {
- PSTR pDevFonts;
- short index;
- int code = 1;
-
- if (FontType & DEVICE_FONTTYPE) {
- pDevFonts = LocalLock(LOWORD(Data));
- if (pDevFonts != NULL) {
- index = ++pDevFonts[0];
- if (index < HIWORD(Data))
- pDevFonts[index] =
- CreateFontIndirect(lpLogFont);
- else
- code = 0;
- }
- LocalUnlock(LOWORD(Data));
- }
- return (code);
- }
- .
- .
- .
- hDC = GetDC(hWnd);
- NumFonts = GetDeviceCaps(hDC, NUMFONTS);
- hDevFonts = LocalAlloc(LMEM_FIXED | LMEM_ZEROINIT,
- sizeof(HANDLE) * (NumFonts + 1));
-
- Windows 3.0/pg/3#3 = 83 =
-
- lpEnumFunc = MakeProcInstance(EnumFunc, hInst);
- EnumFonts(hDC, NULL, lpEnumFunc, MAKELONG(hDevFonts,
- NumFonts));
- FreeProcInstance(lpEnumFunc);
- 18.10 ä«íáó½Ñ¡¿Ñ αÑßπαßá Φα¿ΣΓá.
-
- GDI σαá¡¿Γ ß¿ßΓѼ¡πε Γáí½¿µπ Φα¿ΣΓ«ó, ß«ñÑαªáΘπε óßÑ
- Φα¿ΣΓδ, ¬«Γ«αδÑ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ »α¿¬½áñ¡δÑ »α«úαá¼¼δ. GDI
- óδí¿αáÑΓ Φα¿ΣΓ ¿º Γáí½¿µδ, ¬«úñá »α«úαá¼¼á ºá»αáΦ¿óáÑΓ Φα¿ΣΓ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ CreateFont.
-
- ÉÑßπαß Φα¿ΣΓá - φΓ« úαπ»»á «Γñѽ∞¡δσ Φα¿ΣΓ«ó,
- »αÑñßΓáó½∩εΘ¿σ ß¿¼ó«½δ ¿º ºáñá¡¡«ú« ¡áí«αá, ¿¼ÑεΘ¿σ αẽ¿τ¡δÑ
- ß«τÑΓá¡¿∩ óδß«Γδ, Φ¿α¿¡δ ¿ Φáúá. ìá»α¿¼Ñα, ß¿ßΓѼ¡δ⌐ αÑßπαß
- Φα¿ΣΓá - φΓ« ß«ó«¬π»¡«ßΓ∞ Φα¿ΣΓ«ó, »αÑñßΓáó½∩εΘ¿σ ß¿¼ó«½δ
- αẽ¿τ¡δσ αẼÑα«ó ¿º ¡áí«αá ß¿¼ó«½«ó ANSI. ǡὫú¿τ¡«, αÑßπαß
- Φα¿ΣΓá OEM - φΓ« ß«ó«¬π»¡«ßΓ∞ Φα¿ΣΓ«ó, »αÑñßΓáó½∩εΘ¿σ ß¿¼ó«½δ
- αẽ¿τ¡δσ αẼÑα«ó ¿º ¡áí«αá ß¿¼ó«½«ó OEM.
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ¿¼ÑΓ∞ ñ« 253 φ½Ñ¼Ñ¡Γ«ó ó
- ß¿ßΓѼ¡«⌐ Γáí½¿µÑ Φα¿ΣΓ«ó.
-
- Åਪ½áñ¡δÑ »α«úαá¼¼δ ¼«úπΓ ºáúαπªáΓ∞ αÑßπαß Φα¿ΣΓá ¿
- ñ«íáó½∩Γ∞ Ñú« ¬ ß¿ßΓѼ¡«⌐ Γáí½¿µÑ αÑßπαß«ó, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
- AddFontResource. Å«ß½Ñ ñ«íáó½Ñ¡¿∩ αÑßπαßá Φα¿ΣΓá «Γñѽ∞¡δÑ
- Φα¿ΣΓδ αÑßπαßá ßΓá¡«ó∩Γß∩ ñ«ßΓπ»¡δ¼¿ ñ½∩ »α«úαá¼¼δ. äαπú¿¼¿
- ß½«óἿ, Σπ¡¬µ¿∩ CreateFont »α«ß¼áΓα¿óáÑΓ Φα¿ΣΓδ, ¬«úñá
- »δΓáÑΓß∩ ¡á⌐Γ¿ ß««ΓóÑΓßΓóπεΘ¿⌐ Σ¿º¿τÑ߬¿⌐ Φα¿ΣΓ ñ½∩ ºáñá¡¡«ú«
- ½«ú¿τÑ߬«ú« Φα¿ΣΓá. çá¼ÑΓ¿¼, τΓ« Φα¿ΣΓδ ó ß¿ßΓѼ¡«⌐ Γáí½¿µÑ
- Φα¿ΣΓ«ó ¡Ñ ¼«úπΓ íδΓ∞ ¡Ñ»«ßαÑñßΓóÑ¡¡« ñ«ßΓπ»¡δ »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ. è ¡¿¼ ¿¼ÑÑΓß∩ ñ«ßΓπ» Γ«½∞¬« τÑαѺ Σπ¡¬µ¿¿
- CreateFontIndirect ¿½¿ CreateFont, ¬«Γ«αδÑ ó«ºóαáΘáεΓ
- ñÑß¬α¿»Γ«αδ Φα¿ΣΓ«ó, á ¡Ñ áñαÑßá »á¼∩Γ¿.
-
- ¡« ñ«íáó¿Γ∞ αÑßπαß Φα¿ΣΓá ¬ ß¿ßΓѼ¡«⌐ Γáí½¿µÑ Φα¿ΣΓ«ó,
- ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε AddFontResource. ǡὫú¿τ¡«, ñ½∩ Γ«ú«, τΓ«íδ
- «ßó«í«ñ¿Γ∞ ¼ÑßΓ« »«ñ ñαπú«⌐ αÑßπαß Φα¿ΣΓá, ¼«ª¡« πñ὿Γ∞ αÑßπαß
- Φα¿ΣΓá ¿º Γáí½¿µδ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ RemoveFontResource.
-
- èáªñδ⌐ αáº, ¬«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«íáó½∩ÑΓ ¿½¿
- πñá½∩ÑΓ αÑßπαß Φα¿ΣΓá, «¡á ñ«½ª¡á ¿¡Σ«α¼¿α«óáΓ∞ óßÑ ñαπú¿Ñ
- »α«úαá¼¼δ «í ¿º¼Ñ¡Ñ¡¿¿, »«ß½áó ß««íΘÑ¡¿Ñ WM_FONTCHANGE. ¡«
- ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘ¿⌐ ó맮ó Σπ¡¬µ¿¿ SendMessage ñ½∩ »«ß佬¿
- ß««íΘÑ¡¿∩ óßѼ «¬¡á¼:
-
- SendMessage(-1, WM_FONTCHANGE, 0, 0L);
-
- àß½¿ »«½∞º«óáΓѽ∞ πßΓá¡áó½¿óáÑΓ Φα¿ΣΓδ ß »«¼«Θ∞ε »α«úαá¼¼δ
- "Control Panel", ¼«ª¡« ¡á⌐Γ¿ ß»¿ß«¬ φΓ¿σ Φα¿ΣΓ«ó, ¿ß»«½∞ºπ∩
- Σπ¡¬µ¿ε GetProfileString ñ½∩ »«¿ß¬á αáºñѽá Φα¿ΣΓ«ó Σá⌐½á
- win.ini.
-
-
- Windows 3.0/pg/3#3 = 84 =
-
- 18.11 ôßΓá¡«ó¬á óδαáó¡¿óá¡¿∩ ΓѬßΓá.
-
- öπ¡¬µ¿∩ TextOut ¿ß»«½∞ºπÑΓ ΓѬπΘÑÑ óδαáó¡¿óá¡¿Ñ ΓѬßΓá ¿º
- ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá ñ½∩ «»αÑñѽѡ¿∩ Γ«ú«, ¬á¬ αẼÑßΓ¿Γ∞ ΓѬßΓ
- «Γ¡«ß¿Γѽ∞¡« ñá¡¡«ú« »«½«ªÑ¡¿∩. ìá»α¿¼Ñα, óδαáó¡¿óá¡¿Ñ ΓѬßΓá
- »« π¼«½τá¡¿ε - óóÑασ ¿ ó½Ñó«, Γ. Ñ. Σπ¡¬µ¿∩ TextOut αáß»«½áúáÑΓ
- ó π¬áºá¡¡«⌐ »«º¿µ¿¿ óÑασ¡¿⌐ ½Ñóδ⌐ πú«½ ∩τÑ⌐¬¿ »Ñαó«ú« ß¿¼ó«½á
- ßΓ᫬¿. äαπú¿¼¿ ß½«óἿ, ó맮ó Σπ¡¬µ¿¿, »α¿óÑñÑ¡¡δ⌐ ¡¿ªÑ,
- »«¼ÑΘáÑΓ óÑασ¡¿⌐ ½Ñóδ⌐ πú«½ íπ¬óδ "Ç" ó Γ«τ¬π ß ¬««αñ¿¡áΓἿ
- (10, 10):
-
- TextOut(hDC, 10, 10, "Aüéâäà", 6);
-
- ¡« ¿º¼Ñ¡¿Γ∞ óδαáó¡¿óá¡¿Ñ ΓѬßΓá ñ½∩ ¬«¡ΓѬßΓá
- πßΓα«⌐ßΓóá, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε SetTextAlign. àß½¿ ßτ¿ΓáΓ∞, τΓ«
- Σπ¡¬µ¿∩ TextOut ºá»«½¡∩ÑΓ »α∩¼«πú«½∞¡¿¬ ßΓ᫬«⌐ ΓѬßΓá, Γ«
- óδαáó¡¿óá¡¿Ñ ΓѬßΓá «»αÑñѽ∩ÑΓ, ó ¬á¬πε τáßΓ∞ »α∩¼«πú«½∞¡¿¬á
- »«¼ÑΘáÑΓß∩ ߻ѵ¿Σ¿µ¿α«óá¡¡á∩ Γ«τ¬á ßΓ᫬¿. öπ¡¬µ¿∩ SetTextAlign
- αáß»«º¡áÑΓ ½Ñóπε úαá¡¿µπ, µÑ¡Γα ¿ »αáóπε úαá¡¿µπ
- »α∩¼«πú«½∞¡¿¬á, á Γá¬ªÑ Ñú« óÑασ, ¡¿º ¿ íẫóπε ½¿¡¿ε. ä½∩
- ߻ѵ¿Σ¿¬áµ¿¿ ¡Ñ߬«½∞¬¿σ ¬«¼í¿¡áµ¿⌐ óδαáó¡¿óá¡¿∩ ¼«ª¡«
- «íΩÑñ¿¡∩Γ∞ ½εí«Ñ αáß»«½«ªÑ¡¿Ñ »« óÑαΓ¿¬á½¿ ß ½εíδ¼
- αáß»«½«ªÑ¡¿Ñ¼ »« ú«α¿º«¡Γ὿. ìá»α¿¼Ñα, »α¿óÑñÑ¡¡á∩ ¡¿ªÑ
- Σπ¡¬µ¿∩ πßΓá¡áó½¿óáÑΓ óδαáó¡¿óá¡¿Ñ ΓѬßΓá ó»αáó« ¿ 󡿺:
-
- SetTextAlign(hDC, TA_RIGHT | TA_BOTTOM);
- TextOut(hDC, 10, 10, "Çüéâäà", 6);
-
- é ñá¡¡«¼ »α¿¼ÑαÑ ¡¿ª¡¿⌐ »αáóδ⌐ πú«½ íπ¬óδ "à"
- αáß»«½áúáÑΓß∩ ó Γ«τ¬Ñ ß ¬««αñ¿¡áΓἿ (10, 10).
-
- êß»«½∞ºπ∩ Σπ¡¬µ¿ε GetTextAlign óßÑúñá ¼«ª¡« «»αÑñѽ¿Γ∞
- ΓѬπΘÑÑ óδαáó¡¿óá¡¿Ñ ΓѬßΓá.
- 18.12 櫺ñá¡¿Ñ αÑßπαßá Φα¿ΣΓá.
-
- ¡« ºáñáΓ∞ ß«íßΓóÑ¡¡δÑ αÑßπαßδ Φα¿ΣΓá ñ½∩ αẽ¿τ¡δσ
- »α¿¬½áñ¡δσ »α«úαá¼¼, ß«ºñáó Σá⌐½δ Φα¿ΣΓá ¿ ñ«íáó¿ó ¿σ ó
- ¬áτÑßΓóÑ αÑßπαß«ó ¬ Σá⌐½π αÑßπαßá Φα¿ΣΓá. ä½∩ ß«ºñá¡¿∩ Σá⌐½á
- αÑßπαßá Φα¿ΣΓá ¡Ñ«íσ«ñ¿¼δ ß½ÑñπεΘ¿Ñ Φáú¿:
-
- 1. 櫺ñáΓ∞ Σá⌐½δ Φα¿ΣΓá.
-
- 2. 櫺ñáΓ∞ «»¿ßá¡¿Ñ αÑßπαßá Φα¿ΣΓá.
-
- 3. 櫺ñáΓ∞ Φáí½«¡ »α«úαá¼¼¡«ú« ¼«ñπ½∩.
-
- 4. 櫺ñáΓ∞ Σá⌐½ «»αÑñѽѡ¿∩ ¼«ñπ½∩, ¬«Γ«αδ⌐ «»¿ßδóáÑΓ
- Φα¿ΣΓδ ¿ πßΓα«⌐ßΓóá, ¿ß»«½∞ºπεΘ¿Ñ ¿σ.
-
- 5. ÄΓΓαá¡ß½¿α«óáΓ∞ ¿ ߬«¼»«¡«óáΓ∞ ¿ßσ«ñ¡πε »α«úαá¼¼π.
-
- öá⌐½ αÑßπαßá Φα¿ΣΓá ∩ó½∩ÑΓß∩ Σá¬Γ¿τÑ߬¿ »πßΓ«⌐ í¿í½¿«ΓѬ«⌐
-
- Windows 3.0/pg/3#3 = 85 =
-
- Windows - «¡ ¡Ñ ß«ñÑαª¿Γ »α«úαá¼¼ ¿½¿ ñá¡¡δσ, á ß«ñÑαª¿Γ Γ«½∞¬«
- αÑßπαß. àß½¿ ¿¼ÑεΓß∩ Σá⌐½δ Φα¿ΣΓ«ó, Γ« ¼«ª¡« ¿σ ñ«íáó¿Γ∞ ¬
- »πßΓ«⌐ í¿í½¿«ΓѬÑ, ¿ß»«½∞ºπ∩ ¬«¼»¿½∩Γ«α αÑßπαß«ó. ¡« ΓᬪÑ
- ñ«íáó¿Γ∞ ñαπú¿Ñ αÑßπαßδ ¬ í¿í½¿«ΓѬÑ, Γá¬¿Ñ ¬á¬ ¿¬«¡δ, ¬παß«αδ
- ¿ ¼Ñ¡ε.
-
- é ß½ÑñπεΘ¿σ αáºñѽáσ φΓ« «»¿ßá¡« í«½ÑÑ »«ñα«í¡«.
-
- 18.12.1 櫺ñá¡¿Ñ Σá⌐½«ó Φα¿ΣΓ«ó.
-
- ä½∩ ß«ºñá¡¿∩ αÑßπαßá Φα¿ΣΓá ¡Ñ«íσ«ñ¿¼ «ñ¿¡ ¿½¿ ¡Ñ߬«½∞¬«
- Σá⌐½«ó Φα¿ΣΓ«ó. ¡« ß«ºñáΓ∞ Σá⌐½δ Φα¿ΣΓ«ó, ¿ß»«½∞ºπ∩
- FontEditor, «»¿ßá¡¡δ⌐ ó "Tools". Å«½∞º«óáΓѽ∞ ßó«í«ñÑ¡ ó
- «»αÑñѽѡ¿¿ τ¿ß½á, αẼÑαá ¿ Γ¿»á Σá⌐½«ó Φα¿ΣΓ«ó ó αÑßπαßÑ
- Φα¿ΣΓá. é í«½∞Φ¿¡ßΓóÑ ß½πτáÑó ¡Ñ«íσ«ñ¿¼« ó¬½ετ¿Γ∞ ñ«ßΓáΓ«τ¡«Ñ
- ¬«½¿τÑßΓó« Φα¿ΣΓ«ó, τΓ«íδ αáºπ¼¡« πñ«ó½ÑΓó«α¿Γ∞ í«½∞Φ¿¡ßΓóπ
- ºá»α«ß«ó ¡á ½«ú¿τÑ߬¿Ñ Φα¿ΣΓδ ñ½∩ πßΓα«⌐ßΓó, ¡á ¬«Γ«αδσ «¡¿
- íπñπΓ ¿ß»«½∞º«óáΓ∞ß∩.
-
- Åα¿ »½á¡¿α«óá¡¿¿ αẼÑα«ó Φα¿ΣΓá ¡Ñ«íσ«ñ¿¼« »«¼¡¿Γ∞, τΓ«
- GDI ¼«ªÑΓ ¿º¼Ñ¡∩Γ∞ ¼áßΦΓáí ¡Ñºáó¿ß¿¼δσ «Γ πßΓα«⌐ßΓó αáßΓα«óδσ
- Φα¿ΣΓ«ó «Γ 1 ñ« 8 αẠ»« óÑαΓ¿¬á½¿ ¿ «Γ 1 ñ« 5 αẠ»«
- ú«α¿º«¡Γ὿. GDI ¼«ªÑΓ Γá¬ªÑ ¼«ñѽ¿α«óáΓ∞ ª¿α¡δ⌐ Φα¿ΣΓ,
- »«ñτÑનóá¡¿Ñ, »ÑαÑτÑનóá¡¿Ñ ¿ ¬παß¿ó.
- 18.12.2 櫺ñá¡¿Ñ «»¿ßá¡¿∩ αÑßπαßá Φα¿ΣΓá.
-
- Å«ñß«Ññ¿¡¿ΓÑ αÑßπαßδ ¬ Σá⌐½π, ñ«íáó¿ó «ñ¿¡ ¿½¿ ¡Ñ߬«½∞¬«
- «»ÑαáΓ«α«ó FONT ¬ Σá⌐½π «»¿ßá¡¿∩ αÑßπαß«ó. Ä»¿ßá¡¿Ñ αÑßπαßá
- Φα¿ΣΓá ¼«ªÑΓ ¡á»α«Γ¿ó ñ«íáó¿Γ∞ Σá⌐½ .FNT ¬ í¿í½¿«ΓѬ¿ Windows,
- ñαá⌐óÑαπ πßΓα«⌐ßΓóá ¿½¿ ¬ Σá⌐½π, ß«ñÑαªáΘѼπ Γ«½∞¬« αÑßπαßδ.
- ū߬«½∞¬π αÑßπαß Φα¿ΣΓá ñ«ßΓπ»Ñ¡ ½εí«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ, óδ
- ¡Ñ ñ«½ª¡δ ñ«íáó½∩Γ∞ Ñú« ¬ ¼«ñπ½∩¼ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
-
- Ä»ÑαáΓ«α ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐ ó¿ñ:
-
- number FONT filename
-
- ä½∩ Γ«ú«, τΓ«íδ »«¼ÑßΓ¿Γ∞ ¬áªñδ⌐ Σá⌐½ Φα¿ΣΓá ó αÑßπαß,
- ¡Ñ«íσ«ñ¿¼ «ñ¿¡ «»ÑαáΓ«α. Åáαá¼ÑΓα number ñ«½ªÑ¡ íδΓ∞
- π¡¿¬á½∞¡δ¼, »«ß¬«½∞¬π »«ºªÑ «¡ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿
- Φα¿ΣΓá. ì¿ªÑ »α¿ó«ñ¿Γß∩ Γ¿»¿τ¡δ⌐ Σá⌐½ «»¿ßá¡¿∩ αÑßπαß«ó ñ½∩
- αÑßπαßá Φα¿ΣΓá:
-
- 1 FONT FntFil01.FNT
- 2 FONT FntFil02.FNT
- 3 FONT FntFil03.FNT
- 4 FONT FntFil04.FNT
- 5 FONT FntFil05.FNT
- 6 FONT FntFil06.FNT
-
- ÿα¿ΣΓδ ¼«úπΓ íδΓ∞ óßΓáó½Ñ¡δ ó ¼«ñπ½¿, ¬«Γ«αδÑ ß«ñÑαªáΓ
- ñαπú¿Ñ αÑßπαßδ, »«ßαÑñßΓó«¼ ñ«íáó½Ñ¡¿∩ ¿σ ¬ ßπΘÑßΓóπεΘѼπ
-
- Windows 3.0/pg/3#3 = 86 =
-
- «»¿ßá¡¿ε αÑßπαßá. ¥Γ« «º¡áτáÑΓ, τΓ« ó Σá⌐½Ñ «»¿ßá¡¿∩ αÑßπαß«ó
- ¼«ª¡« ¿¼ÑΓ∞ «»¿ßá¡¿Ñ ¿¬«¡, ¼Ñ¡ε, ¬παß«αá ¿ »á¡Ñ½Ñ⌐ ñ¿á½«úá, á
- Γá¬ªÑ «»ÑαáΓ«αδ FONT.
-
- 18.12.3 櫺ñá¡¿Ñ Φáí½«¡á »α«úαá¼¼¡«ú« ¼«ñπ½∩.
-
- ÿáí½«¡ »α«úαá¼¼¡«ú« ¼«ñπ½∩ ºáñáÑΓ «íΩÑ¬Γ¡δ⌐ Σá⌐½, ¿º
- ¬«Γ«α«ú« Σ«α¼¿απÑΓß∩ Σá⌐½ αÑßπαßá Φα¿ΣΓá. ÿáí½«¡ »α«úαá¼¼¡«ú«
- ¼«ñπ½∩ ß«ºñáÑΓß∩ ß »«¼«Θ∞ε ¼á¬α«¬«¼á¡ñ áßßѼí½Ñαá ¿ æ. êßσ«ñ¡δ⌐
- Σá⌐½ ¼«ñπ½∩ ñ«½ªÑ¡ óδú½∩ñÑΓ∞ Γá¬:
-
- TITLE FONTRES - óδ»«½¡∩Ѽδ⌐ Σá⌐½ ߻ѵ¿á½∞¡«ú« ó¿ñá ñ½∩
- ß«ºñá¡¿∩ Σá⌐½á Γ¿»á .FON
- .xlist
- include cmacros.inc
- .list
-
- sBegin CODE
- sEnd CODE
- end
-
- ÇßßÑ¼í½¿απ⌐ΓÑ φëà ¿ßσ«ñ¡δ⌐ Σá⌐½ ß »«¼«Θ∞ε ¬«¼á¡ñδ masm.
- Ä¡á ß«ºñáßΓ «íΩÑ¬Γ¡δ⌐ Σá⌐½, ¬«Γ«αδ⌐ ¡Ñ ß«ñÑαª¿Γ »α«úαá¼¼δ ¿
- ñá¡¡δσ, ¡« ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞ ߬«¼»«¡«óá¡ ß »πßΓ«⌐ í¿í½¿«ΓѬ«⌐
- Windows, ¬πñá ¼«ª¡« ñ«íáó¿Γ∞ αÑßπαßδ Φα¿ΣΓ«ó.
- 18.12.4 櫺ñá¡¿Ñ Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩.
-
- ìÑ«íσ«ñ¿¼« ß«ºñáΓ∞ Σá⌐½ «»αÑñѽѡ¿∩ ¼«ñπ½∩ ñ½∩ αÑßπαßá
- Φα¿ΣΓá. ¥Γ«Γ Σá⌐½ ñ«½ªÑ¡ ß«ñÑαªáΓ∞ «»ÑαáΓ«α LIBRARY,
- «»αÑñѽ∩εΘ¿⌐ ¿¼∩ αÑßπαßá, «»ÑαáΓ«α DESCRIPTION, «»αÑñѽ∩εΘ¿⌐
- σáαá¬ΓÑα¿ßΓ¿¬¿ αÑßπαßá Φα¿ΣΓá, ¿ «»ÑαáΓ«α DATA. öá⌐½
- «»αÑñѽѡ¿∩ ¼«ñπ½∩ ñ½∩ αÑßπαßá Φα¿ΣΓá ¼«ªÑΓ óδú½∩ñÑΓ∞ Γá¬:
-
- LIBRARY FontRes
-
- DESCRIPTION 'FONTRES 133,96,72: System, Terminal (Set #3)'
-
- STUB 'WINSTUB.EXE'
- DATA NONE
-
- Ä»ÑαáΓ«α DESCRIPTION ºáñáÑΓ ºáó¿ß∩Θπε «Γ πßΓα«⌐ßΓóá
- ¿¡Σ«α¼áµ¿ε « Φα¿ΣΓÑ, ¬«Γ«αá∩ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡á ñ½∩
- ß«»«ßΓáó½Ñ¡¿∩ Φα¿ΣΓá ß ºáñá¡¡δ¼ ñ¿ß»½ÑѼ ¿½¿ »α¿¡ΓÑα«¼. 쿪Ñ
- »α¿ó«ñ∩Γß∩ Γα¿ ó«º¼«ª¡δσ Σ«α¼áΓá «»ÑαáΓ«αá DESCRIPTION ó
- αÑßπαßÑ Φα¿ΣΓá:
-
- DESCRIPTION 'FONTRES Aspect, LogPixelsX, LogPixelsY: Cmt'
- DESCRIPTION 'FONTRES CONTINUOUSSCALING: Cmt'
- DESCRIPTION 'FONTRES DEVICESPECIFIC DeviceTypeGroup: Cmt'
-
- ÅÑαóδ⌐ Σ«α¼áΓ «»αÑñѽ∩ÑΓ Φα¿ΣΓ, ß»α«Ñ¬Γ¿α«óá¡¡δ⌐ ñ½∩
- ¬«¡¬αÑΓ¡«ú« ¬«φΣΣ¿µ¿Ñ¡Γá ߪáΓ¿∩, Φ¿α¿¡δ ¿ óδß«Γδ ½«ú¿τÑ߬«ú«
-
- Windows 3.0/pg/3#3 = 87 =
-
- Φα¿ΣΓá ó »¿¬ßѽ∩σ, ¿ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡ ¡á ½εí«¼
- πßΓα«⌐ßΓóÑ, ¿¼ÑεΘѼ ΓÑ ªÑ ßá¼δÑ ¬«φΣΣ¿µ¿Ñ¡Γ ߪáΓ¿∩ ¿ αẼÑαδ
- ½«ú¿τÑ߬«ú« Φα¿ΣΓá. Åáαá¼ÑΓα Aspect - φΓ« º¡áτÑ¡¿Ñ óδαáªÑ¡¿∩
- (100*AspectY)/AspectX, «¬απú½Ñ¡¡«Ñ ñ« µÑ½«ú«. AspectX, AspectY,
- LogPixelsX ¿ LogPixelsY - φΓ« ΓÑ ªÑ ßá¼δÑ º¡áτÑ¡¿∩, τΓ« ºáñá¡δ
- ó ßΓαπ¬ΓπαÑ GDIINFO ß««ΓóÑΓßΓóπεΘÑú« πßΓα«⌐ßΓóá (º¡áτÑ¡¿∩
- ñ«ßΓπ»¡δ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GetDeviceCaps). Åα¿ ªÑ½á¡¿¿ ¼«ª¡«
- ºáñáΓ∞ í«½ÑÑ «ñ¡«ú« ¡áí«αá º¡áτÑ¡¿⌐ Aspect, LogPixelsX ¿
- LogPixelsY. ç¡áτÑ¡¿Ñ Cmt - φΓ« ¬«¼¼Ñ¡Γáα¿⌐. Åα¿óÑñѼ ó ¬áτÑßΓóÑ
- »α¿¼Ñα«ó ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
-
- DESCRIPTION 'FONTRES 133,96,72: System, Terminal (Set #3)'
- DESCRIPTION 'FONTRES 200,96,48; 133,96,72; 83,60,72;
- 167,120,72; Helv'
-
- éΓ«α«⌐ Σ«α¼áΓ ß»Ñµ¿Σ¿µ¿απÑΓ ¡Ñ»αÑαδó¡δ⌐ ¼áßΦΓáí¿απѼδ⌐
- Φα¿ΣΓ. Ä¡ «íδτ¡« ß««ΓóÑΓßΓóπÑΓ óÑ¬Γ«α¡«¼π Φα¿ΣΓπ, ¬«Γ«αδ⌐ ¼«ªÑΓ
- ¿¼ÑΓ∞ ½εí«⌐ αẼÑα ¿ ¬«Γ«αδ⌐ ¡Ñ ºáó¿ß¿Γ «Γ ¬«φΣΣ¿µ¿Ñ¡Γá ߪáΓ¿∩
- ¿½¿ Φ¿α¿¡δ ½«ú¿τÑ߬«ú« Φα¿ΣΓá ó »¿¬ßѽ∩σ ñ½∩ πßΓα«⌐ßΓóá óδó«ñá.
- Åα¿óÑñѼ ß½ÑñπεΘ¿⌐ »α¿¼Ñα:
-
- DESCRIPTION 'FONTRES CONTINUOUSSCALING: Modern, Roman, Script'
-
- ÆαÑΓ¿⌐ Σ«α¼áΓ «»αÑñѽ∩ÑΓ Φα¿ΣΓ, ¬«Γ«αδ⌐ ߻ѵ¿Σ¿τÑ¡ ñ½∩
- «Γñѽ∞¡«ú« πßΓα«⌐ßΓóá ¿½¿ úαπ»»δ πßΓα«⌐ßΓó. Åáαá¼ÑΓα
- DeviceTypeGroup ¼«ªÑΓ íδΓ∞ DISPLAY ¿½¿ ¼«ªÑΓ íδΓ∞ »ÑαÑτ¡Ñ¼ ¿¼Ñ¡
- Γ¿»«ó πßΓα«⌐ßΓó - ΓÑσ ªÑ ßá¼δσ ¿¼Ñ¡, ¬«Γ«αδÑ ß½ÑñπÑΓ
- ߻ѵ¿Σ¿µ¿α«óáΓ∞ ó ¬áτÑßΓóÑ óΓ«α«ú« »áαá¼ÑΓαá ó ó맮óÑ Σπ¡¬µ¿¿
- CreateDC. Åα¿óÑñѼ Γᬫ⌐ »α¿¼Ñα:
-
- DESCRIPTION 'FONTRES DISPLAY: HP 7470 plotters'
- DESCRIPTION 'FONTRES DEVICESPECIFIC HP 7470A,HP 7475A:
- HP 7470 plotters'
-
- Åα¿¼Ñτá¡¿Ñ. îá¬ß¿¼á½∞¡á∩ ñ½¿¡á ßΓ᫬¿ DESCRIPTION αáó¡á
- 127 ß¿¼ó«½á¼. ū߬«½∞¬π Windows ¼«ªÑΓ ß¿¡ΓѺ¿α«óáΓ∞ áΓα¿íπΓδ,
- Γá¬¿Ñ ¬á¬ Γ«½Θ¿¡á, »«ñτÑનóá¡¿Ñ, ¬παß¿ó, Γ« óá¼ ¡ÑΓ
- ¡Ñ«íσ«ñ¿¼«ßΓ¿ ß«ºñáóáΓ∞ ñ½∩ ¡¿σ «Γñѽ∞¡δÑ Σá⌐½δ .FNT. Äñ¡á¬«,
- óδ ¼«ªÑΓÑ φΓ« ñѽáΓ∞.
-
- Windows ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ ñαπú¿Ñ Φα¿ΣΓδ, ¬«Γ«αδÑ ¡Ñ
- ß««ΓóÑΓßΓóπεΓ «»αÑñѽ∩εΘѼπ ß««Γ¡«ΦÑ¡¿ε ñ¿ß»½Ñ∩. ê¼ÑεΓß∩
- ߻ѵ¿á½∞¡δÑ Φα¿ΣΓδ, »αÑñ¡áº¡áτÑ¡¡δÑ ñ½∩ Γᬿσ πßΓα«⌐ßΓó, ¬á¬
- ¡á»α¿¼Ñα, ¼áΓα¿τ¡δσ »α¿¡ΓÑα«ó.
-
- 18.12.5 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á Σá⌐½á αÑßπαßá Φα¿ΣΓá.
-
- ì¿ªÑ »α¿ó«ñ¿Γß∩ Σá⌐½ make, ß«ñÑαªáΘ¿⌐ ¬«¼á¡ñδ, ¬«Γ«αδÑ
- ¡Ñ«íσ«ñ¿¼δ ñ½∩ Γαá¡ß½∩µ¿¿ ¿ ¬«¼»«¡«ó¬¿ Σá⌐½á αÑßπαßá Φα¿ΣΓá:
-
- fontres.obj: fontres.asm
- masm fontres;
- fontres.exe: fontres.def fontres.obj fontres.rc fontres.exe\
-
- Windows 3.0/pg/3#3 = 88 =
-
- FntFil01.FNT FntFil02.FNT FntFil03.FNT\
- FntFil04.FNT FntFil05.FNT FntFil06.FNT
- link4 fontres.obj, fontres.exe, NUL, /NOD, fontres.def
- rc fontres.rc
- rename fontres.exe fontres.fon
-
- Å« ß«ú½áΦÑ¡¿ε óßÑ Σá⌐½δ αÑßπαßá Φα¿ΣΓá ¿¼ÑεΓ αáßΦ¿αÑ¡¿Ñ
- Σá⌐½á .fon. ū߽Ññ¡∩∩ ßΓ᫬á Σá⌐½á make ß½πª¿Γ ñ½∩
- »ÑαÑ¿¼Ñ¡«óá¡¿∩ óδ»«½¡∩Ѽ«ú« Σá⌐½á ó Σá⌐½ fontres.fon.
-
- 18.13 Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ShowFont.
-
- äá¡¡δ⌐ »α¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿½½εßΓα¿απÑΓ, ¬á¬
- ¿ß»«½∞º«óáΓ∞ Φα¿ΣΓδ ó »α¿¬½áñ¡δσ »α«úαá¼¼áσ ßαÑñδ Windows. ò«Γ∩
- »α«úαá¼¼á ShowFont ¿¼ÑÑΓ Γπ ªÑ ßá¼πε ßΓαπ¬Γπαπ, τΓ« ¿ ½εíá∩
- »α¿¬½áñ¡á∩ »α«úαá¼¼á, «»¿ßá¡¡á∩ ó ñá¡¡«¼ απ¬«ó«ñßΓóÑ, «¡á
- ß«ñÑαª¿Γ º¡áτ¿Γѽ∞¡« í«½∞ΦÑ «»ÑαáΓ«α«ó, «í½áñáεΘÑΓ í«½∞Φ¿¼ ¿σ
- αạ««íαếѼ, τѼ ¬á¬á∩-½¿í« ñαπúá∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á. Å«
- φΓ«⌐ »α¿τ¿¡Ñ »«½¡«Ñ «»¿ßá¡¿Ñ ñá¡« ó ¿ßσ«ñ¡δσ Σá⌐½áσ »α¿¬½áñ¡δσ
- »α«úαá¼¼, αáß»«½«ªÑ¡¡δσ ¡á ñ¿ß¬Ñ, ß«ñÑαªáΘѼ »α¿¼Ñαδ.
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á ShowFont ¡Ñ Γ«½∞¬« ¿½½εßΓα¿απÑΓ, ¬á¬
- ¿ß»«½∞º«óáΓ∞ Φα¿ΣΓδ. Ä¡á Γá¬ªÑ »«¬áºδóáÑΓ, ¬á¬ ¼«ñ¿Σ¿µ¿α«óáΓ∞
- ¼¡«ú¿Ñ ¿º »α«úαá¼¼, αá¡ÑÑ «»¿ßá¡¡δσ ó ñá¡¡«¼ απ¬«ó«ñßΓóÑ, ñ½∩
- óδ»«½¡Ñ¡¿∩ ¡Ñ߬«½∞¬« «Γ½¿τ¡δσ ºáñáτ. ìá»α¿¼Ñα, «¡á »«¬áºδóáÑΓ,
- ¬á¬ ß«ºñáΓ∞ ¿ ¿ß»«½∞º«óáΓ∞ íÑßΓ¿»¡δÑ »á¡Ñ½¿ ñ¿á½«úá, ¬á¬
- ¿ß»«½∞º«óáΓ∞ »á¡Ñ½¿ »ÑαÑτ¡Ñ⌐ ß ß«íßΓóÑ¡¡δ¼¿ ßΓα«¬á¼¿ (ó¼ÑßΓ«
- ΓѬπΘÑú« ¬áΓὫúá) ¿ ¬á¬ ¿ß»«½∞º«óáΓ∞ ¼ÑΓ«ñ »α∩¼«ú« ñ«ßΓπ»á ñ½∩
- úαπ»»«óδσ »á¡Ñ½Ñ⌐ ¿ ¬½áó¿Φ πßΓá¡«ó¬¿ ó »á¡Ñ½¿ ñ¿á½«úá.
-
- 18.14 çᬽετÑ¡¿Ñ.
-
- ÿα¿ΣΓ - φΓ« ¡áí«α ß¿¼ó«½«ó, ¿¼ÑεΘ¿σ «íΘ¿Ñ áΓα¿íπΓδ, ΓᬿÑ
- ¬á¬ Φ¿α¿¡á, óδß«Γá, ó¿ñ ¿ Γ.». Åਪ½áñ¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ
- Φα¿ΣΓδ ñ½∩ «Γ«íαáªÑ¡¿∩ ¿½¿ »ÑτáΓ¿ ΓѬßΓá. éδ ¼«ªÑΓÑ «»αÑñѽ¿Γ∞
- ßó«¿ ß«íßΓóÑ¡¡δÑ Φα¿ΣΓδ ¿½¿ ¿ß»«½∞º«óáΓ∞ »αÑñ«ßΓáó½∩ѼδÑ
- Windows.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε « Φα¿ΣΓáσ óδ ¡á⌐ñÑΓÑ ó:
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- êß»«½∞º«óá¡¿Ñ "Tools": â½áóá 6, "櫺ñá¡¿Ñ Φα¿ΣΓ«ó: Font
- "Font Editor" Editor".
-
- ÅÑτáΓ∞ Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá: â½áóá 12, "ÅÑτáΓ∞".
-
- éδó«ñ ΓѬßΓá Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá: â½áóá 3, "éδó«ñ
- ó «¬¡«".
-
-
-
- Windows 3.0/pg/3#3 = 89 =
-
- â½áóá 19. Å὿Γαδ µóÑΓ«ó.
- ----------------------------------------------------------------
- Å὿Γαδ µóÑΓ«ó Windows »αÑñ«ßΓáó½∩εΓ óá¼ ¿¡ΓÑαΣÑ⌐ß ¼Ñªñπ
- »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ ¿ µóÑΓ¡δ¼ πßΓα«⌐ßΓó«¼ óδó«ñá, Γᬿ¼ ¬á¬
- ñ¿ß»½Ñ⌐. ¥Γ«Γ ¿¡ΓÑαΣÑ⌐ß »«ºó«½∩ÑΓ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ
- ¿ß»«½∞º«óáΓ∞ »αÑ¿¼πΘÑßΓóá πßΓα«⌐ßΓóá óδó«ñá íѺ ó½¿∩¡¿∩ ¡á
- µóÑΓá ñαπú¿σ »α¿¬½áñ¡δσ »α«úαá¼¼. Windows »«½πτáÑΓ ¿¡Σ«α¼áµ¿ε «
- µóÑΓáσ τÑαѺ ½«ú¿τÑ߬πε »á½¿Γαπ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ (φΓ«
- «íΩÑ¬Γ GDI, ¬«Γ«αδ⌐ »αÑñßΓáó½∩ÑΓ ¿º ßÑí∩ ß»¿ß«¬ µóÑΓ«ó,
- ¿ß»«½∞ºπѼδσ ó »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ) ¿ »α¿¼Ñ¡∩ÑΓ ÑÑ ¬ ß¿ßΓѼ¡«⌐
- »á½¿ΓαÑ (ß»¿ß«¬ µóÑΓ«ó, ñ«ßΓπ»¡δσ ó ß¿ßΓÑ¼Ñ ¿ αáºñѽ∩Ѽδσ óßѼ¿
- »α¿¬½áñ¡δ¼¿ »α«úαἼἿ). è«úñá í«½∞ΦÑ τѼ «ñ¡á »α«úαá¼¼á
- «Γ«íαáªáÑΓ µóÑΓá ¿º ½«ú¿τÑ߬«⌐ »á½¿Γαδ, ó¼ÑΦ¿óáÑΓß∩ Windows, ¿
- «»αÑñѽ∩∩, ¬á¬á∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿¼ÑÑΓ ñ«ßΓπ» ¬ ß¿ßΓѼ¡«⌐
- »á½¿ΓαÑ, π»αáó½∩ÑΓ ß óδß«¬¿¼ ¬áτÑßΓó«¼ µóÑΓἿ ¡á ñαπú¿σ
- »α¿¬½áñ¡δσ »α«úαá¼¼áσ.
-
- é ñá¡¡«⌐ ú½áóÑ »α¿ó«ñ¿Γß∩ ¿¡Σ«α¼áµ¿∩ »« ß½ÑñπεΘ¿¼ ΓѼá¼:
-
- - 櫺ñá¡¿Ñ ¿ »«ñú«Γ«ó¬á ¬ ¿ß»«½∞º«óá¡¿ε ½«ú¿τÑ߬«⌐ »á½¿Γαδ
- ó »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ.
-
- - êß»«½∞º«óá¡¿Ñ µóÑΓ«ó ¿º »á½¿Γαδ ñ½∩ óδó«ñá ó «í½áßΓ¿
- »«½∞º«óáΓѽ∩ «¬¡á.
-
- - 꺼ѡѡ¿Ñ ½«ú¿τÑ߬«⌐ »á½¿Γαδ ¿ π»αáó½Ñ¡¿Ñ ΓѼ, ¬«úñá
- Windows «Γ«íαáº¿Γ φΓ¿ ¿º¼Ñ¡Ñ¡¿∩.
-
- - ÉÑᬵ¿∩ ¡á ¿º¼Ñ¡Ñ¡¿∩, óδ»«½¡Ñ¡¡δÑ ó ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ
- ñαπú¿¼¿ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ.
-
- Åα¿¼Ñαδ, ¿ß»«½∞ºπѼδÑ ó ñá¡¡«⌐ ú½áóÑ, óº∩Γδ ¿º ¿ßσ«ñ¡«ú«
- ¬«ñá »α«úαá¼¼δ ShowDIB, ¬«Γ«αá∩ ß«ñÑনΓß∩ ¡á ñ¿ß¬Ñ "SDK Sample
- Source Code Disk". é φΓ«⌐ »α«úαá¼¼Ñ ñѼ«¡ßΓα¿απÑΓß∩, ¬á¬
- «Γ«íαáªáΓ∞ á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δÑ αáßΓα«óδÑ ¬áαΓδ ß µóÑΓἿ,
- π»αáó½∩Ñ¼δ¼¿ »á½¿Γα«⌐.
- 19.1 ùΓ« ñѽáÑΓ »á½¿Γαá µóÑΓ«ó.
-
- î¡«ú¿Ñ ñ¿ß»½Ñ¿ ß»«ß«í¡δ «Γ«íαáªáΓ∞ í«½∞Φ«⌐ ¡áí«α µóÑΓ«ó. é
- ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿, «ñ¡á¬«, τ¿ß½« «Γ«íαáªáѼδσ ó ¡Ñ¬«Γ«αδ⌐ ¼«¼Ñ¡Γ
- óαѼѡ¿ µóÑΓ«ó «úαá¡¿τÑ¡«. ìá»α¿¼Ñα, ñ¿ß»½Ñ⌐, ¬«Γ«αδ⌐
- »«ΓÑ¡µ¿á½∞¡« ß»«ß«íÑ¡ «Γ«íαáªáΓ∞ 24000 αẽ¿τ¡δσ µóÑΓ«ó, ¼«ªÑΓ
- «ñ¡«óαѼѡ¡« «Γ«íαáªáΓ∞ Γ«½∞¬« 256 ¿º ¡¿σ ¿º-ºá «úαá¡¿τÑ¡¿⌐
- «í«απñ«óá¡¿∩. Åα¿ ¡á½¿τ¿¿ Γᬿσ «úαá¡¿τÑ¡¿⌐ ñ¿ß»½Ñ¿ τáßΓ«
- ¿ß»«½∞ºπεΓ »á½¿Γαδ. è«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á ΓαÑíπÑΓ ¡Ñ
- «Γ«íαáªáѼδ⌐ ó ¡áßΓ«∩Θ¿⌐ ¼«¼Ñ¡Γ µóÑΓ, πßΓα«⌐ßΓó« «Γ«íαáªÑ¡¿∩
- ñ«íáó½∩ÑΓ ΓαÑíπѼδ⌐ µóÑΓ ¬ »á½¿ΓαÑ. Äñ¡á¬«, ¬«úñá τ¿ß½«
- ΓαÑíπѼδσ µóÑΓ«ó »αÑóδΦáÑΓ ¼á¬ß¿¼π¼, ß½ÑñπεΘ¿Ñ µóÑΓá íπñπΓ
- ºá¼Ñ¡∩Γ∞ »αÑñδñπΘ¿Ñ, ¿ ñÑ⌐ßΓó¿Γѽ∞¡δÑ «Γ«íαáªáѼδÑ µóÑΓá íπñπΓ
- ¡Ñ¬«ααÑ¬Γ¡δ¼¿.
-
- Å὿Γαδ µóÑΓ«ó Windows óδ»«½¡∩εΓ α«½∞ íπΣÑαá ¼Ñªñπ
-
- Windows 3.0/pg/3#3 = 90 =
-
- ¿¡ΓÑ¡ß¿ó¡« ¿ß»«½∞ºπεΘÑ⌐ µóÑΓá »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ ¿ ß¿ßΓѼ«⌐.
- Å὿Γαá µóÑΓ«ó »«ºó«½∩ÑΓ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ¿ß»«½∞º«óáΓ∞
- ßΓ«½∞¬« µóÑΓ«ó, ߬«½∞¬« ¡πª¡«, íѺ ó½¿∩¡¿∩ ¡á µóÑΓá,
- «Γ«íαáªáѼδÑ ñαπú«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐. è«úñá »α¿¬½áñ¡á∩
- »α«úαá¼¼á ¿ß»«½∞ºπεΘá∩ »á½¿Γαπ µóÑΓ«ó, ¿¼ÑÑΓ ºáσóáΓ óó«ñá,
- Windows »«ñαáºπ¼ÑóáÑΓ, τΓ« »α«úαá¼¼á ¿ß»«½∞ºπÑΓ óßÑ ΓαÑíπѼδÑ
- µóÑΓá ¿ ñ«»«½¡¿Γѽ∞¡δÑ µóÑΓá «Γ«íαáªáεΓß∩ ó ß««ΓóÑΓßΓó¿¿ ß
- ñ«ßΓπ»¡δ¼¿ µóÑΓἿ. Windows ßαáó¡¿óáÑΓ µóÑΓá, ΓαπíπѼδÑ
- ¡Ñá¬Γ¿ó¡δ¼ «¬¡«¼, ¿ ¿ß»«½∞ºπÑΓ ¡á¿í«½ÑÑ »«ñσ«ñ∩Θ¿⌐ ¿º ñ«ßΓπ»¡δσ
- µóÑΓ«ó. Åα¿ φΓ«¼ ¿ßτѺáÑΓ ó«º¼«ª¡«ßΓ∞ ¿º¼Ñ¡Ñ¡¿∩ ¿º«íαáªÑ¡¿⌐ ó
- ¡Ñá¬Γ¿ó¡δσ «¬¡áσ.
- 19.2 èᬠαáí«ΓáεΓ »á½¿Γαδ µóÑΓ«ó.
-
- Windows »αÑñ«ßΓáó½∩ÑΓ á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δ⌐ ¼ÑΓ«ñ ñ«ßΓπ»á
- ¬ µóÑΓ«óδ¼ ó«º¼«ª¡«ßΓ∩¼ πßΓα«⌐ßΓó «Γ«íαáªÑ¡¿∩ ß »«¼«Θ∞ε
- ß¿ßΓѼ¡«⌐ »á½¿Γαδ πßΓα«⌐ßΓóá, Ñß½¿ Γá¬á∩ »«ññÑনóáÑΓß∩
- πßΓα«⌐ßΓó«¼.
-
- èᬠ¼δ ߬áºá½¿ αá¡∞ΦÑ, óáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á
- «íαáΘáÑΓß∩ ß ß¿ßΓѼ¡«⌐ ß »«¼«Θ∞ε «ñ¡«⌐ ¿½¿ í«½ÑÑ ½«ú¿τÑ߬¿σ
- »á½¿Γα. ï«ú¿τÑ߬á∩ »á½¿Γαá - φΓ« «íΩÑ¬Γ GDI, «»αÑñѽ∩εΘ¿⌐
- µóÑΓá, ß »«¼«Θ∞ε ¬«Γ«αδσ íπñÑΓ »α«¿ºó«ñ¿Γ∞ß∩ óδó«ñ ó ¬«¡ΓѬßΓÑ
- πßΓα«⌐ßΓóá. èáªñδ⌐ φ½Ñ¼Ñ¡Γ ó »á½¿ΓαÑ ß«ñÑαª¿Γ «»αÑñѽѡ¡δ⌐
- µóÑΓ. çáΓѼ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ úαáΣ¿τÑ߬¿σ «»Ñαᵿ⌐ »α¿¬½áñ¡á∩
- »α«úαá¼¼á ¡Ñ «»αÑñѽ∩ÑΓ µóÑΓ ∩ó¡δ¼ º¡áτÑ¡¿Ñ¼ RGB. é¼ÑßΓ« φΓ«ú«
- óδ ∩ó¡« ¿½¿ ¡Ñ ∩ó¡« ¿ß»«½∞ºπÑΓÑ »á½¿Γαπ. Åα¿ »α∩¼«¼
- ¿ß»«½∞º«óá¡¿¿ óδ «»αÑñѽ∩ÑΓÑ µóÑΓ ó »á½¿ΓαÑ, π¬áºδóá∩ Ñú«
- ¿¡ñÑ¬ß ó »á½¿ΓαÑ µóÑΓ«ó. Åα¿ ¡Ñ»α∩¼«¼ ¼ÑΓ«ñÑ óδ π¬áºδóáÑΓÑ
- »á½¿Γα«-ºáó¿ß¿¼«Ñ º¡áτÑ¡¿Ñ RGB ΓᬠªÑ, ¬á¬ ¿ »α¿ ∩ó¡«¼ π¬áºá¡¿¿
- º¡áτÑ¡¿∩ RGB. Å«½¡«ßΓ∞ε φΓ¿ ¼ÑΓ«ñδ «»¿ßá¡δ ó αáºñѽáσ 19.4.1,
- "ƒó¡«Ñ «»αÑñѽѡ¿Ñ µóÑΓ«ó ó »á½¿ΓαÑ", ¿ 19.4.2, "ìÑ∩ó¡«Ñ
- «»αÑñѽѡ¿Ñ µóÑΓ«ó ó »á½¿ΓαÑ".
-
- è«úñá «¬¡« ΓαÑíπÑΓ «Γ ß¿ßΓÑ¼δ ¿ß»«½∞º«óá¡¿∩ µóÑΓá ¿º
- ½«ú¿τÑ߬«⌐ »á½¿Γαδ «¬¡á (»α«µÑßß ¡áºδóáÑΓß∩ "αÑ὿ºáµ¿Ñ⌐"
- ½«ú¿τÑ߬«⌐ »á½¿Γαδ), Windows ó ¡áτá½Ñ ßαáó¡¿óáÑΓ φ½Ñ¼Ñ¡Γδ
- ½«ú¿τÑ߬«⌐ »á½¿Γαδ ß ΓѬπΘ¿¼¿ φ½Ñ¼Ñ¡ΓἿ ß¿ßΓѼ¡«⌐ »á½¿Γαδ.
-
- àß½¿ Γ«τ¡«Ñ ß«ó»áñÑ¡¿Ñ ñá¡¡«ú« φ½Ñ¼Ñ¡Γá ½«ú¿τÑ߬«⌐ »á½¿Γαδ
- ¡Ñ󫺼«ª¡«, Windows ºá¡«ß¿Γ φ½Ñ¼Ñ¡Γ ½«ú¿τÑ߬«⌐ »á½¿Γαδ ó
- ¡Ñ¿ß»«½∞ºπѼδ⌐ φ½Ñ¼Ñ¡Γ ß¿ßΓѼ¡«⌐ »á½¿Γαδ.
-
- Å«ß½Ñ Γ«ú«, ¬á¬ íπñπΓ ºáñÑ⌐ßΓó«óá¡δ óßÑ φ½Ñ¼Ñ¡Γδ ß¿ßΓѼ¡«⌐
- »á½¿Γαδ, Windows ¿ΘÑΓ ¼á¬ß¿¼á½∞¡«Ñ ß«ó»áñÑ¡¿Ñ φ½Ñ¼Ñ¡Γ«ó
- ½«ú¿τÑ߬«⌐ »á½¿Γαδ ß φ½Ñ¼Ñ¡ΓἿ ß¿ßΓѼ¡«⌐ »á½¿Γαδ. Windows
- «Γñѽ∞¡« πßΓá¡áó½¿óáÑΓ 20 ßΓáΓ¿τÑ߬¿σ µóÑΓ«ó ó ß¿ßΓѼ¡«⌐
- »á½¿ΓαÑ, τΓ«íδ ¿ß»«½∞º«óáΓ∞ ¿σ »α¿ Γᬫ¼ ßαáó¡Ñ¡¿¿.
-
- Windows óßÑúñá πñ«ó½ÑΓó«α∩ÑΓ ó ¡áτá½Ñ ºá»α«ßδ µóÑΓ«ó, φΓ«
- »«ºó«½∩ÑΓ á¬Γ¿ó¡«¼π «¬¡π ¿¼ÑΓ∞ ½πτΦÑÑ «Γ«íαáªÑ¡¿Ñ µóÑΓ«ó. ä½∩
- «ßΓáóΦ¿σß∩ «¬«¡ Windows πñ«ó½ÑΓó«α∩ÑΓ ºá»α«ß ß¡áτá½á «¬¡á,
- »«ß½Ññ¡Ñú« «¬¡á ¿¼ÑóΦÑú« ºáσóáΓ óó«ñá, ºáΓѼ ß½ÑñπεΘÑú«, ¿ Γ.ñ.
-
- Windows 3.0/pg/3#3 = 91 =
-
- É¿ßπ¡«¬ 19.1 ¿½½εßΓα¿απÑΓ φëà »α«µÑßß.
- É¿ßπ¡«¬ 19.1 æ¿ßΓѼ¡á∩ »á½¿Γαá ¿ ½«ú¿τÑ߬¿Ñ »á½¿Γαδ.
- 1. æ¿ßΓѼ¡á∩ »á½¿Γαá.
- 2. ï«ú¿τÑ߬á∩ »á½¿Γαá 1 (Ç¬Γ¿ó¡«Ñ «¬¡«).
- 3. ï«ú¿τÑ߬á∩ »á½¿Γαá 2.
-
- ÅαÑñßΓáó½Ñ¡¡δ⌐ ¡á α¿ßπ¡¬Ñ 19.1 ñ¿ß»½Ñ⌐ ¿¼ÑÑΓ ß¿ßΓѼ¡πε
- »á½¿Γαπ, ß»«ß«í¡πε «Γ«íαáªáΓ∞ 12 µóÑΓ«ó. Åਪ½áñ¡á∩ »α«úαá¼¼á,
- ß«ºñáóΦá∩ ½«ú¿τÑ߬πε »á½¿Γαπ 1, ó½áñÑÑΓ á¬Γ¿ó¡δ¼ «¬¡«¼ ¿ »Ñαóá∩
- αÑ὿ºπÑΓ ½«ú¿τÑ߬πε »á½¿Γαπ. ï«ú¿τÑ߬á∩ »á½¿Γαá 1 ß«ßΓ«¿Γ ¿º
- ó«ß∞¼¿ µóÑΓ«ó. ï«ú¿τÑ߬«⌐ »á½¿Γα«⌐ 2 ó½áñÑÑΓ «¬¡«, ¬«Γ«α«Ñ
- αÑ὿ºπÑΓ ßó«ε ½«ú¿τÑ߬πε »á½¿Γαπ, ¬«úñá «¡« ¡Ñá¬Γ¿ó¡«.
- ï«ú¿τÑ߬á∩ »á½¿Γαá 2 ß«ñÑαª¿Γ ñÑó∩Γ∞ µóÑΓ«ó.
-
- ū߬«½∞¬π «¬¡«, ¬«Γ«α«¼π »α¿¡áñ½Ñª¿Γ ½«ú¿τÑ߬á∩ »á½¿Γαá 1,
- á¬Γ¿ó¡«, Γ« óßÑ µóÑΓá ½«ú¿τÑ߬«⌐ »á½¿Γαδ ¡á»α∩¼πε «Γ«íαáªáεΓß∩
- ó ß¿ßΓѼ¡πε »á½¿Γαπ.
-
- Æα¿ µóÑΓá ½«ú¿τÑ߬«⌐ »á½¿Γαδ 2: 1, 3 ¿ 5 ¿ñÑ¡Γ¿τ¡δ µóÑΓá¼
- ó ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ. è«úñá óΓ«αá∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á
- αÑ὿ºπÑΓ ½«ú¿τÑ߬πε »á½¿Γαπ, Windows »α«ßΓ« «Γ«íαáªáÑΓ φΓ¿
- µóÑΓá ¡á µóÑΓá ß¿ßΓѼ¡«⌐ »á½¿Γαδ, τΓ«íδ ß«σαá¡¿Γ∞ ¼ÑßΓ«.
- ū߬«½∞¬π µóÑΓá 0, 2, 4 ¿ 6 ¡Ñ ß«ñÑαªáΓ∞ß∩ ó ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ,
- Windows «Γ«íαáªáÑΓ ¿σ ó ß¿ßΓѼ¡πε »á½¿Γαπ.
-
- ûóÑΓá 7 ¿ 8 ó ½«ú¿τÑ߬«⌐ »á½¿ΓαÑ 2 Γ«τ¡« ¡Ñ ß«ó»áñáεΓ ß
- µóÑΓἿ ß¿ßΓѼ¡«⌐ »á½¿Γαδ. ì«, Γ.¬. ß¿ßΓѼ¡á∩ »á½¿Γαá πªÑ
- ºá»«½¡Ñ¡á, Windows ¡Ñ ¼«ªÑΓ «Γ«íαếΓ∞ φΓ¿ µóÑΓá ó ß¿ßΓѼ¡πε
- »á½¿Γαπ. Å«φΓ«¼π Windows ¿ΘÑΓ ñ½∩ ¡¿σ ¡á¿í«½ÑÑ »«ñσ«ñ∩Θ¿Ñ µóÑΓá
- ó ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ.
-
- 19.3 櫺ñá¡¿Ñ ¿ ¿ß»«½∞º«óá¡¿Ñ ½«ú¿τÑ߬«⌐ »á½¿Γαδ.
-
- ä½∩ Γ«ú«, τΓ«íδ ¿ß»«½∞º«óáΓ∞ ½«ú¿τÑ߬πε »á½¿Γαπ,
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ ñÑ⌐ßΓó¿∩:
-
- 1. 櫺ñáΓ∞ ßΓαπ¬Γπαπ ñá¡¡δσ LOGPALETTE, «»¿ßδóáεΘπε
- ½«ú¿τÑ߬πε »á½¿Γαπ.
-
- 2. 櫺ñáΓ∞ ßá¼π »á½¿Γαπ.
-
- 3. éδíαáΓ∞ »á½¿Γαπ ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá.
-
- 4. ÉÑ὿º«óáΓ∞ »á½¿Γαπ.
-
- é ß½ÑñπεΘ¿σ αáºñѽáσ «»¿ßá¡«, ¬á¬ φΓ« ßñѽáΓ∞.
- 19.3.1 櫺ñá¡¿Ñ ßΓαπ¬Γπαδ ñá¡¡δσ LOGPALETTE.
-
- æΓαπ¬Γπαá ñá¡¡δσ «»¿ßδóáÑΓ ¿ß»«½∞ºπѼπε óἿ ½«ú¿τÑ߬πε
- »á½¿Γαπ. Ä¡á ß«ñÑনΓ:
-
- - 쫼Ñα óÑαß¿¿ Windows (ñ½∩ Windows 3.0 φΓ« 300ì).
-
- Windows 3.0/pg/3#3 = 92 =
-
-
- - ù¿ß½« φ½Ñ¼Ñ¡Γ«ó ó »á½¿ΓαÑ.
-
- - îáßß¿ó ßΓαπ¬Γπα PALETTEENTRY, ¬áªñá∩ ¿º ¬«Γ«αδσ ß«ñÑনΓ
- «ñ¡«íá⌐Γ«ó«Ñ º¡áτÑ¡¿Ñ ñ½∩ ¬αáß¡«ú«, ºÑ½Ñ¡«ú« ¿ ß¿¡Ñú«
- µóÑΓá, ¿ íá⌐Γ Σ½áú«ó. üá⌐Γ Σ½áú«ó ¼«ªÑΓ ß«ñÑαªáΓ∞
- ß½ÑñπεΘ¿Ñ º¡áτÑ¡¿∩:
-
- - PC_EXPLICIT
-
- - PC_RESERVED
-
- ö½áú PC_EXPLICIT ß««íΘáÑΓ Windows, τΓ« φ½Ñ¼Ñ¡Γ »á½¿Γαδ ¡Ñ
- ß«ñÑαª¿Γ º¡áτÑ¡¿⌐ µóÑΓá. é¼ÑßΓ« φΓ«ú«, ¼½áñΦÑÑ ß½«ó« φ½Ñ¼Ñ¡Γá
- ∩ó½∩ÑΓß∩ ¿¡ñѬ߫¼ φ½Ñ¼Ñ¡Γá ó ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ. ìá»α¿¼Ñα,
- »α¿¼Ñα »α«úαá¼¼δ MyPal óδó«ñ¿Γ ΓѬπΘÑÑ ß«ßΓ«∩¡¿Ñ ß¿ßΓѼ¡«⌐
- »á½¿Γαδ. MyPal ¡Ñ «»αÑñѽ∩ÑΓ µóÑΓá ó φ½Ñ¼Ñ¡Γáσ ½«ú¿τÑ߬«⌐
- »á½¿Γαδ. é¼ÑßΓ« φΓ«ú« MyPal, »«½∞ºπ∩ß∞ φΓ¿¼ Σ½áú«¼ ¿ß»«½∞ºπÑΓ
- ñ½∩ α¿ß«óá¡¿∩ µóÑΓá ó ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ.
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á πßΓá¡áó½¿óáÑΓ Σ½áú PC_RESERVED, ¬«úñá
- «¡ ß«í¿αáÑΓß∩ «ª¿ó½∩Γ∞ φ½Ñ¼Ñ¡Γ (Γ.Ñ. ñ¿¡á¼¿τÑ߬¿ ¿º¼Ñ¡∩Γ∞ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ AnimatePalette). æ »«¼«Θ∞ε φΓ«ú« Σ½áúá óδ
- »αÑñ«ΓóαáΘáÑΓÑ »«»δΓ¬¿ Windows «Γ«íαếΓ∞ µóÑΓá ñαπú¿σ
- ½«ú¿τÑ߬¿σ »á½¿Γα ¡á φëà µóÑΓ, ¬«úñá «¡ «Γ«íαáªÑ¡ ¡á ß¿ßΓѼ¡πε
- »á½¿Γαπ.
-
- é »α«úαá¼¼Ñ ShowDIB ßΓαπ¬Γπαá LOGPALETTE ß«ºñáÑΓß∩
- ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- #define PALETTESIZE 256
- .
- .
- .
- pLogPal = (NPLOGPALETTE) LocalAlloc( LMEM_FIXED,
- (sizeof(LOGPALETTE) +
- (sizeof(PALETTEENTRY)*(MAXPALETTE))));
-
- ShowDIB ¿¡¿µ¿á½¿º¿απÑΓ »á½¿Γαπ ¡á 256 µóÑΓ«ó, «ñ¡á¬« óδ
- ¼«ªÑΓÑ ¿¼ÑΓ∞ »á½¿Γαπ ½εí«ú« αẼÑαá.
-
- ShowDIB ºá»«½¡∩ÑΓ φ½Ñ¼Ñ¡Γδ »á½¿Γαδ, «Γ¬αδóá∩ αáßΓα«óπε
- ¬áαΓπ (.BMP) ¿ ¬«»¿απ∩ º¡áτÑ¡¿∩ µóÑΓ«ó ¿º ßΓαπ¬Γπαδ ñá¡¡δσ
- BITMAPINFO ó ß««ΓóÑΓßΓóπεΘ¿Ñ φ½Ñ¼Ñ¡Γδ »á½¿Γαδ:
-
- HPALETTE CreateBIPalette (lpbi)
- LPBITMAPINFOHEADER lpbi;
- {
- LOGPALETTE *pPal;
- HPALETTE hpal = NULL;
- WORD nNumColors;
- BYTE red;
- BYTE green;
-
- Windows 3.0/pg/3#3 = 93 =
-
- BYTE blue;
- int i;
- RGBQUAD FAR *pRgb;
-
- if (!lpbi)
- return NULL;
-
- if (lpbi->biSize != sizeof(BITMAPINFOHEADER))
- return NULL;
-
- /* Å«½πτ¿Γ∞ π¬áºáΓѽ∞ Γáí½¿µδ µóÑΓ«ó ¿ τ¿ß½« µóÑΓ«ó ó
- ¡Ñ⌐ */
- pRgb = (RGBQUAD FAR *)((LPSTR)lpbi + (WORD)lpbi->biSize);
- nNumColors = DibNumColors(lpbi);
-
- if (nNumColors){
- /* éδñѽ¿Γ∞ ¼ÑßΓ« »«ñ ½«ú¿τÑ߬πε »á½¿Γαπ */
- pPal = (LOGPALETTE*)LocalAlloc(LPTR,
- sizeof(LOGPALETTE) + nNumColors * sizeof(PALETTEENTRY));
- if (!pPal)
- return NULL;
-
- pPal->palNumEntries = nNumColors;
- pPal->palVersion = PALVERSION;
-
- /* çừ½¡¿Γ∞ »á½¿Γαπ µóÑΓἿ ¿º Γáí½¿µδ µóÑΓ«ó DIB
- * ¿ ß«ºñáΓ∞ ½«ú¿τÑ߬πε »á½¿Γαπ
- */
- for (i = 0; i < nNumColors; i++){
- pPal->palPalEntry[i].peRed = pRgb[i].rgbRed;
- pPal->palPalEntry[i].peGreen = pRgb[i].rgbGreen;
- pPal->palPalEntry[i].peBlue = pRgb[i].rgbBlue;
- pPal->palPalEntry[i].peFlags = (BYTE)0;
- }
- hpal = CreatePalette(pPal);
- LocalFree((HANDLE)pPal);
- }
- else if (lpbi->biBitCount == 24){
- /* ìÑΓ Γáí½¿µδ µóÑΓ«ó, »«φΓ«¼π πßΓá¡«ó¿Γ∞ ¿σ τ¿ß½«
- * ó ¼á¬ß¿¼π¼ (256)
- */
- nNumColors = MAXPALETTE;
- pPal = (LOGPALETTE*)LocalAlloc(LPTR,
- sizeof(LOGPALETTE) + nNumColors * sizeof(PALETTEENTRY));
- if (!pPal)
- return NULL;
-
- pPal->palNumEntries = nNumColors;
- pPal->palVersion = PALVERSION;
-
- red = green = blue = 0;
-
- /* æúÑ¡Ñα¿α«óáΓ∞ 256 (= 8*8*4) ¬«¼í¿¡áµ¿⌐ RGB ñ½∩
-
- Windows 3.0/pg/3#3 = 94 =
-
- * ºá»«½¡Ñ¡¿∩ φ½Ñ¼Ñ¡Γ«ó
- */
- for (i = 0; i < pPal->palNumEntries; i++){
- pPal->palPalEntry[i].peRed = red;
- pPal->palPalEntry[i].peGreen = green;
- pPal->palPalEntry[i].peBlue = blue;
- pPal->palPalEntry[i].peFlags = (BYTE)0;
-
- if (!(red += 32))
- if (!(green += 32))
- blue += 64;
- }
- hpal = CreatePalette(pPal);
- LocalFree((HANDLE)pPal);
- }
- return hpal;
- }
-
- é¡áτá½Ñ, ñ½∩ «»αÑñѽѡ¿∩ τ¿ß½á µóÑΓ«ó ó Γáí½¿µÑ ShowDIB
- óδºδóáÑΓ Σπ¡¬µ¿ε DibNumColors. àß½¿ Γáí½¿µá µóÑΓ«ó ¿¼ÑÑΓß∩
- (Γ.Ñ. Ñß½¿ »«½Ñ biClrUsed ¡Ñ αáó¡« 0 ¿ biBitCount ¡Ñ αáó¡« 24),
- «¡á ¬«»¿απÑΓ º¡áτÑ¡¿∩ RGBQUAD ¿º ¬áªñ«ú« »«½∩ bmiColors
- ßΓαπ¬Γπαδ BITMAPINFO ó ß««ΓóÑΓßΓóπεΘ¿⌐ φ½Ñ¼Ñ¡Γ »á½¿Γαδ. ShowDIB
- ß«ºñáÑΓ »á½¿Γαπ ¿º 256 φ½Ñ¼Ñ¡Γ«ó, ß«ñÑαªáΘÑ⌐ »«½¡δ⌐ ¡áí«α
- µóÑΓ«ó. Åα¿ óδó«ñÑ αáßΓα«óδσ ¬áαΓ Windows «Γ«íαáªáÑΓ µóÑΓá
- αáßΓα«ó«⌐ ¬áαΓδ ¡á µóÑΓá ó φΓ«⌐ »á½¿ΓαÑ.
-
- 19.3.2 櫺ñá¡¿Ñ ½«ú¿τÑ߬«⌐ »á½¿Γαδ.
-
- Å«ß½Ñ Γ«ú«, ¬á¬ »α¿¬½áñ¡á∩ »α«úαá¼¼á ß«ºñá½á ßΓαπ¬Γπαπ
- LOGPALETTE, ¡Ñ«íσ«ñ¿¼« ß«ºñáΓ∞ ½«ú¿τÑ߬πε »á½¿Γαπ ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ CreatePalette:
-
- hPal = CreatePalette((LPSTR)pLogPal);
-
- öπ¡¬µ¿∩ CreatePalette »«½πτáÑΓ ó ¬áτÑßΓóÑ Ññ¿¡ßΓóÑ¡¡«ú«
- »áαá¼ÑΓαá ñá½∞¡¿⌐ π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ LOGPALETTE ¿
- ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α »á½¿Γαδ (HPALETTE).
- 19.3.3 éδí«α »á½¿Γαδ ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá.
-
- ä½∩ Γ«ú«, τΓ«íδ ¿ß»«½∞º«óáΓ∞ ½«ú¿ß¬πε »á½¿Γαπ, ÑÑ ¬á¬ ¿
- ½εí«⌐ ñαπú«⌐ «íΩÑ¬Γ GDI ¡Ñ«íσ«ñ¿¼« óδíαáΓ∞ ó ¬«¡ΓѬßΓÑ
- πßΓα«⌐ßΓóá. Äíδτ¡« φΓ« ñѽáÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ SelectObject.
- Äñ¡á¬«, Γ.¬. SelectObject ¡Ñ αáß»«º¡áÑΓ ó ¬áτÑßΓóÑ «íΩѬΓá
- »á½¿Γαπ, Γ« ñ½∩ óδí«αá »á½¿Γαδ óδ ñ«½ª¡δ óδíαáΓ∞ ÑÑ ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ SelectPalette:
-
- hDC = GetDC(hWnd);
- SelectPalette(hDC,hPal,0);
-
- ¥Γ¿¼ óδ ßó∩ºδóáÑΓÑ »á½¿Γαπ ß ¬«¡ΓѬßΓ«¼ πßΓα«⌐ßΓóá, ¿
- Γ.«., óßÑ ßß佬¿ ¡á »á½¿Γαπ (Γá¬¿Ñ ¬á¬ ¿¡ñÑ¬ß φ½Ñ¼Ñ¡Γá »á½¿Γαδ,
-
- Windows 3.0/pg/3#3 = 95 =
-
- »«ßδ½áѼδ⌐ Σπ¡¬µ¿¿ GDI ó¼ÑßΓ« µóÑΓá) íπñπΓ ¡á»αáó½Ñ¡δ ó ñá¡¡πε
- »á½¿Γαπ.
-
- ä½∩ πñá½Ñ¡¿∩ «íΩѬΓá ½«ú¿τÑ߬«⌐ »á½¿Γαδ óδ ¿ß»«½∞ºπÑΓÑ
- Σπ¬¡µ¿ε DeleteObject.
-
- ū߬«½∞¬π »á½¿Γαá ¡Ñºáó¿ß¿¼á «Γ ¬«¡¬αÑΓ¡«ú« ¬«¡ΓѬßΓá
- πßΓα«⌐ßΓóá, «¡á ¼«ªÑΓ αáºñѽ∩Γ∞ß∩ ¡Ñ߬«½∞¬¿¼¿ «¬¡á¼¿. Äñ¡á¬«,
- ¬«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á óδí¿αáÑΓ »á½¿Γαπ ó ¬«¡ΓѬßΓÑ
- πßΓα«⌐ßΓóá Windows ¡Ñ ß«ºñáÑΓ ÑÑ ¬«»¿ε, ¿, ß½Ññ«óáΓѽ∞¡«, ½εíδÑ
- ¿º¼Ñ¡Ñ¡¿∩ »á½¿Γαδ íπñπΓ ó½¿∩Γ∞ ¡á ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá, ó
- ¬«Γ«α«¼ óδíαá¡á ñá¡¡á∩ »á½¿Γαá. Æá¬ªÑ, Ñß½¿ »α¿¬½áñ¡á∩
- »α«úαá¼¼á óδíαá½á »á½¿Γαπ í«½ÑÑ τѼ ó «ñ¡«¼ ¬«¡ΓѬßΓÑ
- πßΓα«⌐ßΓóá, φΓ¿ ¬«¡ΓѬßΓδ ñ«½ª¡δ «Γ¡«ß¿Γ∞ß∩ ¬ «ñ¡«¼π ¿ Γ«¼π ªÑ
- πßΓα«⌐ßΓóπ (Γᬫ¼π ¬á¬ ñ¿ß»½Ñ⌐ ¿½¿ »α¿¡ΓÑα). é« óßÑσ ñαπú¿σ
- «Γ¡«ΦÑ¡¿∩σ »á½¿Γαá á¡á½«ú¿τ¡á ½εí«¼π ñαπú«¼π «íΩѬΓπ Windows.
-
- 19.3.4 ÉÑ὿ºáµ¿∩ »á½¿Γαδ.
-
- Å«ß½Ñ Γ«ú«, ¬á¬ »α¿¬½áñ¡á∩ »α«úαá¼¼á óδíαá½á »á½¿Γαπ ó
- ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá, »ÑαÑñ ÑÑ ¿ß»«½∞º«ó᡿Ѽ ÑÑ ¡Ñ«íσ«ñ¿¼«
- αÑ὿º«óáΓ∞:
-
- RealizePalette(hDC);
-
- Åα¿ ó맮óÑ φΓ«⌐ Σπ¡¬µ¿¿ Windows ßαáó¡¿óáÑΓ µóÑΓá ó
- ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ ß µóÑΓἿ ó ½«ú¿τÑ߬«⌐, πßΓá¡áó½¿óá∩
- ß««ΓóÑΓßΓó¿Ñ ¼Ñªñπ ß«ó»áñáεΘ¿¼¿. àß½¿ ó ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ
- ¿¼ÑÑΓß∩ ¼ÑßΓ«, Windows «Γ«íαáªáÑΓ ó ¡ÑÑ ¡Ñß«ó»áñáεΘ¿Ñ µóÑΓá. ê
- Ñß½¿ ó ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ «ßΓ὿ß∞ µóÑΓá, ¡Ñ«Γ«íαáªÑ¡¡δÑ ó
- ß¿ßΓѼ¡πε ¿ ¡Ñ ß«ó»áñáεΘ¿Ñ ß µóÑΓἿ ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ, Windows
- ¡áσ«ñ¿Γ ñ½∩ ¡¿σ ó ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ ¡á¿í«½ÑÑ í½¿º¬¿Ñ.
-
- 19.4 ɿ߫óá¡¿Ñ ß ¿ß»«½∞º«ó᡿Ѽ µóÑΓ«ó »á½¿Γαδ.
-
- Å«ß½Ñ Γ«ú«, ¬á¬ ½«ú¿τÑ߬á∩ »á½¿Γαá ó »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ
- íδ½á ß«ºñá¡á, óδíαá¡á ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá ¿ αÑ὿º«óá¡á, ÑÑ
- ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ π»αáó½Ñ¡¿∩ µóÑΓἿ, ¿ß»«½∞ºπÑ¼δ¼¿
- Σπ¡¬µ¿∩¼¿ GDI ñ½∩ α¿ß«óá¡¿∩ ó¡πΓα¿ «í½áßΓ¿ »«½∞º«óáΓѽ∩
- πßΓα«⌐ßΓóá. ä½∩ Σπ¡¬µ¿⌐, ΓαÑíπεΘ¿σ π¬áºá¡¿∩ µóÑΓá (¡á»α¿¼Ñα
- CreatePen ¿½¿ CreateSolidBrush), óδ ∩ó¡« ¿½¿ ¡Ñ∩ó¡« π¬áºδóáÑΓÑ
- ¬á¬«⌐ µóÑΓ »á½¿Γαδ ¿ß»«½∞º«óáΓ∞.
- 19.4.1 Åα∩¼«Ñ «»αÑñѽѡ¿Ñ µóÑΓ«ó Γáí½¿µδ.
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ »α∩¼«ú« ¼ÑΓ«ñá π¬áºá¡¿∩ µóÑΓá ¿º
- »á½¿Γαδ óδ ó Σπ¡¬µ¿∩σ, ΓαÑíπεΘ¿σ µóÑΓ, ∩ó¡« π¬áºδóáÑΓÑ ¿¡ñѬß
- µóÑΓá ó »á½¿ΓαÑ ó¼ÑßΓ« ∩ó¡«ú« º¡áτÑ¡¿∩ RGB. îá¬α««»αÑñѽѡ¿Ñ
- PALETTEINDEX »«½πτáÑΓ µÑ½«Ñ τ¿ß½«, »αÑñßΓáó½∩εΘÑÑ ¿¡ñÑ¬ß ó
- óáΦÑ⌐ ½«ú¿τÑ߬«⌐ »á½¿ΓαÑ, ¿ ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ COLORREF,
- ¬«Γ«α«Ñ óδ ¿ß»«½∞ºπÑΓÑ ¬á¬ µóÑΓ, «»αÑñѽѡ¡δ⌐ ñ½∩ Γᬿσ
- Σπ¡¬µ¿⌐. ìá»α¿¼Ñα, ñ½∩ ºá»«½¡Ñ¡¿∩ «í½áßΓ¿, «úαá¡¿τÑ¡¡«⌐
- ºÑ½Ñ¡δ¼, ß»½«Φ¡«⌐ ¬αáß¡«⌐ ¬¿ßΓ∞ε óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞
-
- Windows 3.0/pg/3#3 = 96 =
-
- ß½ÑñπεΘπε »«ß½Ññ«óáΓѽ∞ß¡«ßΓ∞:
-
- pLogPal -> palPalEntry[5].pRed = 0xFF;
- pLogPal -> palPalEntry[5].pGreen = 0x00;
- pLogPal -> palPalEntry[5].pBlue = 0x00;
- pLogPal -> palPalEntry[5].pFlags = (BYTE) 0;
-
- pLogPal -> palPalEntry[6].pRed = 0x00;
- pLogPal -> palPalEntry[6].pGreen = 0xFF;
- pLogPal -> palPalEntry[6].pBlue = 0x00;
- pLogPal -> palPalEntry[6].pFlags = (BYTE) 0;
- .
- .
- .
- hPal = CreatePalette((LPSTR)pLogPal);
- hDC = GetDC(hWnd);
- SelectPalette(hDC,hPal,0);
- RealizePalette(hDC);
- lSolidBrushColor = PALETTEINDEX(5);
- lBoundaryColor = PALETTEINDEX(5);
- hSolidBrush = CreateSolidBrush(lSolidBrushColor);
- hOldSolidBrush = SelectObject(hDC,hSolodBrush);
- hPen = CreatePen(lBoundaryColor);
- hOldPen = SelectObject(hDC,hPen);
- Rectangle(hDC,x1,y1,x2,y2);
-
- é φΓ«¼ Σαáú¼Ñ¡ΓÑ óδ ß««íΘáÑΓÑ Windows, τΓ« ¡Ñ«íσ«ñ¿¼«
- ¡áα¿ß«óáΓ∞ »α¿∩¼«πú«½∞¡¿¬ µóÑΓ«¼ ¡«¼Ñα 6 (ºÑ½Ñ¡δ⌐) ¿º »á½¿Γαδ ¿
- ºá»«½¡¿Γ∞ Ñú« µóÑΓ«¼ ¿º »á½¿Γαδ ß ¿¡ñѬ߫¼ 5 (¬αáß¡δ⌐).
-
- ìÑ«íσ«ñ¿¼« ºá¼ÑΓ¿Γ∞, τΓ« ¬¿ßΓ∞, ß«ºñá¡¡á∩ ß »«¼«Θ∞ε
- CreateSolidBrush, ¡Ñºáó¿ß¿¼á «Γ ½εí«ú« ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá. é
- αѺπ½∞ΓáΓÑ µóÑΓ, «»αÑñѽ∩Ѽδ⌐ »áαá¼ÑΓα«¼ lSolidBrushColor,
- ß«ñÑনΓß∩ ó ΦÑßΓ«¼ φ½Ñ¼Ñ¡ΓÑ óδíαá¡¡«⌐ ó ¡áßΓ«∩Θ¿⌐ ¼«¼Ñ¡Γ ó
- ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá »á½¿Γαδ, á ¡Ñ ó »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ,
- ¿ß»«½∞ºπεΘÑ⌐ ñá¡¡δ⌐ ¬«¡ΓѬßΓ. éδí«α ¿ «ßó«í«ªñÑ¡¿Ñ ñαπú«⌐
- »á½¿Γαδ ¿ óδí«α ¬¿ßΓ¿ ß¡«óá ¿º¼Ñ¡∩Γ µóÑΓ ¬¿ßΓ¿. Æá¬¿¼ «íαẫ¼,
- »α¿ ¿ß»«½∞º«óá¡¿¿ ½«ú¿τÑ߬«⌐ »á½¿Γαδ, óá¼ ¡πª¡« ß«ºñáΓ∞ ½¿Φ∞
- ¬¿ßΓ¿ ¬áªñ«ú« ¿ß»«½∞ºπѼ«ú« óἿ Γ¿»á (¡á»α¿¼Ñα ß»½«Φ¡δÑ ¿½¿
- óÑαΓ¿¬á½∞¡á∩ ΦΓα¿σ«ó¬á). çáΓѼ óδ ¼«ªÑΓÑ ¿º¼Ñ¡¿Γ∞ µóÑΓ ¬¿ßΓ¿,
- ¼Ñ¡∩∩ »á½¿Γαπ ¿½¿ Γ«½∞¬« µóÑΓ ó »á½¿ΓαÑ, ¿ß»«½∞ºπѼδ⌐ ¡πª¡«⌐
- óá¼ ¬¿ßΓ∞ε.
- 19.4.2 ìÑ»α∩¼«Ñ «»αÑñѽѡ¿Ñ µóÑΓ«ó »á½¿Γαδ.
-
- êß»«½∞º«óá¡¿Ñ ¿¡ñÑ¬ß«ó ½«ú¿τÑ߬«⌐ »á½¿Γαδ »«ºó«½∩ÑΓ
- »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ «ßπΘÑßΓó¿Γ∞ ñÑ⌐ßΓó¿Γѽ∞¡«Ñ π»αáó½Ñ¡¿Ñ
- «Γ«íαáªáÑ¼δ¼¿ µóÑΓἿ. Äñ¡á¬« φëà ¼ÑΓ«ñ ßΓá¡«ó¿Γß∩
- ¡Ñ»αá¬Γ¿τ¡δ¼ »α¿ αáí«ΓÑ ß πßΓα«⌐ßΓóἿ, ¬«Γ«αδÑ ¼«úπΓ
- «Γ«íαáªáΓ∞ 2^24 µóÑΓ«ó íѺ ß¿ßΓѼ¡«⌐ »á½¿Γαδ. ìá πßΓα«⌐ßΓóáσ,
- »«ññÑনóáεΘ¿σ »«½¡δÑ 24-í¿Γ«óδÑ µóÑΓá, ½«ú¿τÑ߬á∩ »á½¿Γαá
- «úαá¡¿τ¿óáÑΓ τ¿ß½« µóÑΓ«ó, ¬«Γ«αδÑ ¼«ªÑΓ «Γ«íαáªáΓ∞ óáΦá
- »α«úαá¼¼á. ìÑ»α∩¼«Ñ ºáñá¡¿Ñ µóÑΓ«ó »á½¿Γαδ »«ºó«½∩ÑΓ «í«⌐Γ¿
-
- Windows 3.0/pg/3#3 = 97 =
-
- ñá¡¡«Ñ «úαá¡¿τÑ¡¿Ñ.
-
- ûóÑΓ »á½¿Γαδ π¬áºδóáÑΓß∩ ¡Ñ∩ó¡« »α¿ ¿ß»«½∞º«óá¡¿¿
- ºáó¿ß¿¼«ú« «Γ »á½¿Γαδ º¡áτÑ¡¿∩ RGB COLORREF ó¼ÑßΓ« ¿¡ñѬßá.
- ç¡áτÑ¡¿Ñ RGB «Γ¡«ß¿Γѽ∞¡« »á½¿Γαδ - φΓ« 32-αáºα∩ñ¡«Ñ º¡áτÑ¡¿Ñ,
- ó ¬«Γ«α«¼ ó ßΓáαΦѼ íá⌐ΓÑ πßΓá¡«ó½Ñ¡ í¿Γ 1, ó ß½πτáÑ, Ñß½¿
- «ßΓáóΦ¿Ñß∩ íá⌐Γδ »αÑñßΓáó½∩εΓ ß«í«⌐ º¡áτÑ¡¿∩ ¬αáß¡«ú«, ß¿¡Ñú« ¿
- ºÑ½Ñ¡«ú« µóÑΓá. îá¬α«¬«¼á¡ñá PALETTERGB »«½πτá∩ Γα¿ º¡áτÑ¡¿∩,
- »αÑñßΓáó½∩εΘ¿Ñ ¿º ßÑí∩ ¿¡Γѡ߿ó¡«ßΓ¿ ¬αáß¡«ú«, ºÑ½Ñ¡«ú« ¿
- ß¿¡Ñú« µóÑΓ«ó, ó«ºóαáΘáÑΓ ºáó¿ß¿¼«Ñ «Γ »á½¿Γαδ º¡áτÑ¡¿Ñ
- COLORREF, ¬«Γ«α«Ñ óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ¬á¬ ¿ ¿¡ñÑ¬ß ó »á½¿ΓαÑ
- ñ½∩ Σπ¡¬µ¿⌐, ΓαÑíπεΘ¿σ π¬áºá¡¿∩ µóÑΓá.
-
- Ä»αÑñѽ∩∩ ºáó¿ß¿¼δÑ «Γ »á½¿Γαδ º¡áτÑ¡¿∩ RGB, óáΦá
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ α¿ß«óáΓ∞ ¡á πßΓα«⌐ßΓóÑ óδó«ñá ß
- »«¼«Θ∞ε µóÑΓ«ó »á½¿Γαδ, ¡Ñ «»αÑñѽ∩∩ Γ«ú«, τΓ« πßΓα«⌐ßΓó«
- »«ññÑনóáÑΓ ß¿ßΓѼ¡πε »á½¿Γαπ. ì¿ªÑ »«¬áºá¡«, ¬á¬ Windows
- ¿¡ΓÑα»αÑΓ¿απÑΓ ºáó¿ß¿¼«Ñ «Γ »á½¿Γαδ º¡áτÑ¡¿∩ RGB.
-
- ôßΓα«⌐ßΓó« »«ññÑনóáÑΓ èᬠWindows ¿ß»«½∞ºπÑΓ ºáó¿ß¿¼«Ñ «Γ
- ß¿ßΓѼ¡πε »á½¿Γαπ »á½¿Γαδ º¡áτÑ¡¿Ñ RGB
- ───────────────────────────────────────────────────────────────
- äá Windows ¡áσ«ñ¿Γ ó ½«ú¿τÑ߬«⌐ »á½¿ΓαÑ
- í½¿ªá⌐Φ¿⌐ µóÑΓ ¿ ¿ß»«½∞ºπÑΓ Ñú« Γá¬,
- ¬á¬ íπñΓ« φëà φ½Ñ¼Ñ¡Γ ó »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ ∩ó¡« «»αÑñѽѡ.
-
- ìÑΓ Windows ¿ß»«½∞ºπÑΓ º¡áτÑ¡¿Ñ RGB ºá-
- ó¿ß¿¼«Ñ «Γ »á½¿Γαδ, ¬á¬ Ñß½¿ íδ óδ
- π¬áºá½¿ ∩ó¡«Ñ º¡áτÑ¡¿Ñ RGB.
- ───────────────────────────────────────────────────────────────
-
- ÅαÑñ»«½«ª¿¼, ó óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ñѽáÑΓß∩
- ß½ÑñπεΘÑÑ:
-
- pLogPal -> palPalEntry[5].pRed = 0xFF;
- pLogPal -> palPalEntry[5].pGreen = 0x00;
- pLogPal -> palPalEntry[5].pBlue = 0x00;
- CreatePalette((LPSTR)&pa);
- crRed = PALETTERGB(0xFF,0x00,0x00);
-
- àß½¿ πßΓα«⌐ßΓó« »«ññÑনóáÑΓ ß¿ßΓѼ¡πε »á½¿Γαπ, Γ« crRed
- íπñÑΓ φ¬ó¿óá½Ñ¡ΓÑ¡ ß½ÑñπεΘѼπ:
-
- crRed = PALETTEINDEX(5);
-
- Äñ¡á¬«, Ñß½¿ πßΓα«⌐ßΓó« «Γ«íαáªÑ¡¿∩ ¡Ñ »«ññÑনóáÑΓ
- ß¿ßΓѼ¡πε »á½¿Γαπ, Γ« crRed íπñÑΓ φ¬ó¿óá½Ñ¡Γ¡« ß½ÑñπεΘѼπ:
-
- crRed = RGB(0xFF,0x00,0x00);
-
- äáªÑ »α¿ ¿ß»«½∞º«óá¡¿¿ ½«ú¿τÑ߬«⌐ »á½¿Γαδ »α¿¬½áñ¡á∩
- »α«úαá¼¼á ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ ñ½∩ π¬áºá¡¿∩ µóÑΓá ∩ó¡«Ñ º¡áτÑ¡¿Ñ
-
- Windows 3.0/pg/3#3 = 98 =
-
- RGB. é φΓ«¼ ß½πτáÑ Windows «ßπΘÑßΓó½∩ÑΓ óδó«ñ ΓᬪÑ, ¬á¬ ñ½∩
- »α«úαá¼¼, ¡Ñ ¿ß»«½∞ºπεΘ¿σ »á½¿Γαδ, óδó«ñ∩ í½¿ªá⌐Φ¿⌐ µóÑΓ ¿º
- »á½¿Γαδ, ¿ß»«½∞ºπѼ«⌐ »« π¼«½τá¡¿ε. àß½¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ß«ºñáÑΓ ß»½«Φ¡πε ¬¿ßΓ∞ ß »«¼«Θ∞ε ∩ó¡«ú« ºáñá¡¿∩ º¡áτÑ¡¿⌐ RGB,
- Windows φ¼π½¿απÑΓ ñá¡¡δ⌐ µóÑΓ, óδó«ñ∩ Φáí½«¡, ¿ß»«½∞ºπεΘ¿⌐
- µóÑΓá »á½¿Γαδ »« π¼«½τá¡¿ε.
- 19.4.3 êß»«½∞º«óá¡¿Ñ »á½¿Γαδ »α¿ óδó«ñÑ αáßΓα«óδσ ¬áαΓ.
-
- èᬠ»«¬áºá¡« ó αáºñÑ½Ñ 19.3.1, "櫺ñá¡¿Ñ ßΓαπ¬Γπαδ ñá¡¡δσ
- LOGPALETTE", á»»áαáΓ¡«-¡Ñºáó¿ß¿¼á∩ αáßΓα«óá∩ ¬áαΓá ¼«ªÑΓ
- ¡á»α∩¼πε ¿ß»«½∞º«óáΓ∞ ΓѬπΘπε ½«ú¿τÑ߬πε »á½¿Γαπ ñ½∩ ºá»«½¡Ñ¡¿∩
- Γáí½¿µδ µóÑΓ«ó ÑÑ ¿¡ñѬßἿ ó¼ÑßΓ« ∩ó¡δσ º¡áτÑ¡¿⌐ RGB. çáΓѼ,
- »α¿ ß«ºñá¡¿¿ αáßΓα«ó«⌐ ¬áαΓδ ß »«¼«Θ∞ε CreatDIBitmap »α¿
- »«½πτÑ¡¿¿ í¿Γ ¿º αáßΓα«ó«⌐ ¬áαΓδ ß »«¼«Θ∞ε GetDIBits, »α¿
- πßΓá¡«ó¬Ñ í¿Γ αáßΓα«ó«⌐ ¬áαΓδ ß »«¼«Θ∞ε SetDIBits, ¿½¿ »α¿
- óδó«ñÑ αáßΓα«ó«⌐ ¬áαΓδ ¡Ñ»«ßαÑñßΓóÑ¡¡« ¡á πßΓα«⌐ßΓó«
- «Γ«íαáªÑ¡¿∩ ß »«¼«Θ∞ε SetDIBitsToDevice, »α¿¬½áñ¡á∩ »α«úαá¼¼á
- »«ßδ½áÑΓ φΓ¿¼ Σπ¡¬µ¿∩¼ ó ¬áτÑßΓóÑ »áαá¼ÑΓαá Σ½áú, «»αÑñѽ∩εΘ¿⌐
- τΓ« Γáí½¿µá µóÑΓ«ó ß«ñÑαª¿Γ ¿¡ñѬßδ ó »á½¿ΓαÑ. é ß½ÑñπεΘѼ
- Σαáú¼Ñ¡ΓÑ ¿º »α«úαá¼¼δ ShowDIB »α«¿ßσ«ñ¿Γ πßΓá¡«ó¬á í¿Γ«ó ó
- ß«ºñá¡¡«⌐ ó »á¼∩Γ¿ αáßΓα«ó«⌐ ¬áαΓÑ:
-
- SetDIBits (hMemDC,hBitmap,0,
- pBitmapInfo->bmciHeader.bcHeight,
- pBuf, (LPBITMAPINFO)pBitmapInfo,
- ((pBitmapInfo->bmciHeader.bcBitCount == 24) ?
- DIB_RGB_COLORS :
- DIB_PAL_COLORS));
-
- é ºáó¿ß¿¼«ßΓ¿ «Γ Γ«ú«, ¿ß»«½∞ºπÑΓ ½¿ DIB 24-αáºα∩ñ¡δÑ
- µóÑΓá, ShowDIB πßΓá¡áó½¿óáÑΓ »áαá¼ÑΓα wUsage ó DIB_RGB_COLORS
- (ñ½∩ 24-αáºα∩ñ¡δσ) ¿½¿ ó DIB_PAL_COLORS (ñ½∩ óßÑσ «ßΓá½∞¡δσ).
- DIB_RGB_COLORS ß««íΘáÑΓ Windows, τΓ« »α¿ πßΓá¡«ó¬Ñ µóÑΓ«ó ó
- αáßΓα«ó«⌐ ¬áαΓÑ ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ µóÑΓá ¿º Γáí½¿µδ µóÑΓ«ó
- ßΓαπ¬Γπαδ BITMAPINFO. àß½¿ »áαá¼ÑΓα wUsage αáóÑ¡
- DIB_PAL_COLORS, Γ« Windows ¿¡ΓÑα»αÑΓ¿απÑΓ Γáí½¿µπ µóÑΓ«ó ¬á¬
- 16-αáºα∩ñ¡δÑ ¿¡ñѬßδ ó ½«ú¿τÑ߬«⌐ »á½¿ΓαÑ ¿ ó ß««ΓóÑΓßΓó¿¿ ß
- ¡¿¼¿ πßΓá¡áó½¿óáÑΓ í¿Γδ ó αáßΓα«ó«⌐ ¬áαΓÑ, ¡áσ«ñ∩ΘÑ⌐ß∩ ó
- »á¼∩Γ¿.
-
- àß½¿ ó¼ÑßΓ« ¿¡ñѬ߫ó Γáí½¿µá µóÑΓ«ó ó ßΓαπ¬ΓπαÑ BITMAPINFO
- ß«ñÑαª¿Γ ∩ó¡δÑ º¡áτÑ¡¿∩ RGB, Windows ¿ß»«½∞ºπÑΓ í½¿ªá⌐Φ¿Ñ ¬ ¡¿¼
- µóÑΓá ó ΓѬπΘÑ⌐ óδíαá¡¡«⌐ ½«ú¿τÑ߬«⌐ »á½¿ΓαÑ, ΓᬠªÑ ¬á¬ ¿ ó
- ß½πτáÑ ß ºáó¿ß¿¼δ¼¿ «Γ »á½¿Γαδ RGB.
-
- Åα¿¼Ñτá¡¿Ñ: àß½¿ ¬«¡ΓѬßΓδ πßΓα«⌐ßΓóá ¿ßΓ«τ¡¿¬á ¿
- πßΓα«⌐ßΓóá ¡áº¡áτÑ¡¿∩ ¿¼ÑεΓ óδíαá¡¡δ¼¿ ¿ αÑ὿º«óá¡¡δ¼¿
- αẽ¿τ¡δÑ »á½¿Γαδ, Γ« Σπ¡¬µ¿∩ BitBlt ¡Ñ «ßπΘÑßΓó½∩ÑΓ
- ¬«ααÑ¬Γ¡«ú« »ÑαѼÑΘÑ¡¿∩ αáßΓα«ó«⌐ ¬áαΓδ ¿º ¿½¿ ¡á ¬«¡ΓѬßΓ
- πßΓα«⌐ßΓóá »á¼∩Γ¿. é φΓ«¼ ß½πτáÑ óδ ñ«½ª¡δ óδºóáΓ∞ Σπ¡¬µ¿ε
- GetDIBits ß »áαá¼ÑΓα«¼ wUsage αáó¡δ¼ DIB_RGB_COLORS, τΓ«íδ
- »«½πτ¿Γ∞ í¿Γδ αáßΓα«ó«⌐ ¬áαΓδ πßΓα«⌐ßΓóá ¿ßΓ«τ¡¿¬á ó Σ«α¼áΓÑ
-
- Windows 3.0/pg/3#3 = 99 =
-
- á»»áαáΓ¡«-¡Ñºáó¿ß¿¼«⌐ αáßΓα«ó«⌐ ¬áαΓδ. çáΓѼ, ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- SetDIBits óδ ¼«ªÑΓÑ πßΓá¡«ó¿Γ∞ í¿Γδ αáßΓα«ó«⌐ ¬áαΓδ ¡á
- πßΓα«⌐ßΓóÑ ¡áº¡áτÑ¡¿∩. Åα¿ φΓ«¼ Windows Γ«τ¡« «Γ«íαáº¿Γ µóÑΓá
- «ñ¡«⌐ αáßΓα«ó«⌐ ¬áαΓδ ¡á ñαπúπε.
-
- öπ¡¬µ¿∩ BitBlt ¼«ªÑΓ ¬«ααÑ¬Γ¡« »ÑαѼÑΘáΓ∞ αáßΓα«óδÑ ¬áαΓδ
- ¼Ñªñπ ñóπ¼∩ ¬«¡ΓѬßΓἿ πßΓα«⌐ßΓóá ñ¿ß»½Ñ∩, ñáªÑ Ñß½¿ «¡¿ ¿¼ÑεΓ
- αẽ¿τ¡δÑ óδíαá¡¡δÑ ¿ αÑ὿º«óá¡¡δ⌐ »á½¿Γαδ. öπ¡¬µ¿∩ ScretchBlt
- ¬«ααÑ¬Γ¡« »ÑαѼÑΘáÑΓ αáßΓα«óδÑ ¬áαΓδ ¼Ñªñπ αẽ¿τ¡δ¼¿
- ¬«¡ΓѬßΓἿ πßΓα«⌐ßΓó, ¡Ñºáó¿ß¿¼« «Γ Γ«ú«, τΓ« ¡á ¡¿σ
- αÑ὿º«óá¡δ ¿ óδíαá¡δ αạδÑ »á½¿Γαδ.
- 19.5 꺼ѡѡ¿Ñ ½«ú¿τÑ߬«⌐ »á½¿Γαδ.
-
- éδ ¼«ªÑΓÑ ¿º¼Ñ¡¿Γ∞ «ñ¿¡ ¿½¿ ¡Ñ߬«½∞¬« φ½Ñ¼Ñ¡Γ«ó ½«ú¿τÑ߬«⌐
- »á½¿Γαδ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ SetPaletteEntry. ¥Γá Σπ¡¬µ¿∩ »«½πτáÑΓ
- ß½ÑñπεΘ¿Ñ »áαá¼ÑΓαδ:
-
- - äÑß¬α¿»Γ«α ¿º¼Ñ¡∩Ѽ«⌐ »á½¿Γαδ ¿ µÑ½«Ñ, «»αÑñѽ∩εΘÑÑ
- »áαóδ⌐ ¿º¼Ñ¡∩Ѽδ⌐ φ½Ñ¼Ñ¡Γ.
-
- - ûѽ«Ñ, «»αÑñѽ∩εΘÑÑ τ¿ß½« ¿º¼Ñ¡∩Ѽδσ φ½Ñ¼Ñ¡Γ«ó.
-
- - îáßß¿ó ßΓαπ¬Γπα PALETTEENTRY, ß«ñÑαªáΘ¿⌐ ¿¡Γѡ߿ó¡«ßΓ¿
- ¬αáß¡«ú«, ß¿¡Ñú« ¿ ºÑ½Ñ¡«ú« µóÑΓá ¿ Σ½áú ñ½∩ ¬áªñ«ú«
- φ½Ñ¼Ñ¡Γá.
-
- Windows ¡Ñ «Γ«íαáªáÑΓ ¡á πßΓα«⌐ßΓóÑ óδó«ñá ßñѽᡡδσ
- ¿º¼Ñ¡Ñ¡¿⌐ ñ« ΓÑσ »«α, »«¬á »α¿¬½áñ¡á∩ »α«úαá¼¼á ¡Ñ ó맮óÑΓ
- Σπ¡¬µ¿ε RealizePalette ñ½∩ ½εí«ú« ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá, ó
- ¬«Γ«α«¼ óδíαá¡á ñá¡¡á∩ »á½¿Γαá. ū߬«½∞¬π »α¿ φΓ«¼ »α«¿ºó«ñ¿Γß∩
- ¿º¼Ñ¡Ñ¡¿Ñ ß¿ßΓѼ¡«⌐ »á½¿Γαδ, Γ« µóÑΓá, «Γ«íαáªáѼδÑ ó «í½áßΓ¿
- »«½∞º«óáΓѽ∩ «¬¡á ¼«úπΓ ¿º¼Ñ¡¿Γ∞ß∩. é αáºñÑ½Ñ 19.6, "ÉÑᬵ¿∩ ¡á
- ¿º¼Ñ¡Ñ¡¿Ñ ß¿ßΓѼ¡«⌐ »á½¿Γαδ", «»¿ßá¡«, ¬á¬ αÑáú¿α«óáΓ∞ ¡á
- ¿º¼Ñ¡Ñ¡¿Ñ ß¿ßΓѼ¡«⌐ »á½¿Γαδ.
-
- éΓ«α«⌐ ¼ÑΓ«ñ ¼«ñ¿Σ¿¬áµ¿¿ ½«ú¿τÑ߬«⌐ »á½¿Γαδ ß«ßΓ«¿Γ ó ÑÑ
- «ª¿ó½Ñ¡¿¿. é« ¼¡«ú¿σ ß½πτá∩σ «ª¿ó½Ñ¡¿Ñ ½«ú¿τÑ߬«⌐ »á½¿Γαδ
- »α¿¼Ñ¡∩ÑΓß∩, ¬«úñá ΓαÑíπÑΓß∩ íδßΓα«Ñ ¿ τáßΓ«Ñ ¿º¼Ñ¡Ñ¡¿Ñ
- ½«ú¿τÑ߬«⌐ »á½¿Γαδ ¿ ¬«úñá ¡Ñ«íσ«ñ¿¼«, τΓ«íδ ñá¡¡δÑ ¿º¼Ñ¡Ñ¡¿∩
- ¡Ñ¼Ññ½Ñ¡¡« «Γ«íαáªá½¿ß∞.
-
- ä½∩ «ª¿ó½Ñ¡¿∩ »á½¿Γαδ »α¿¬½áñ¡á∩ »α«úαá¼¼á ó¡áτá½Ñ ñ«½ª¡á
- ó ß««ΓóÑΓßΓóπεΘ¿σ φ½Ñ¼Ñ¡Γáσ πßΓá¡«ó¿Γ∞ Σ½áú PC_RESERVED. ¥Γ«Γ
- Σ½áú óδ»«½¡∩ÑΓ ñóÑ Σπ¡¬µ¿¿:
-
- - ÉáºαÑΦáÑΓ «ª¿ó½Ñ¡¿Ñ ß««ΓóÑΓßΓóπεΘÑú« φ½Ñ¼Ñ¡Γá.
-
- - ÅαÑñ«ΓóαáΘáÑΓ «Γ«íαáªÑ¡¿Ñ µóÑΓ«ó ñαπú«⌐ »á½¿Γαδ ¡á
- ß««ΓóÑΓßΓóπεΘ¿⌐ φ½Ñ¼Ñ¡Γ ó ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ.
-
- é ß½ÑñπεΘѼ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ ShowDIB πßΓá¡áó½¿óáÑΓ
- Σ½áú PC_RESERVED ñ½∩ óßÑσ φ½Ñ¼Ñ¡Γ«ó ó ßπΘÑßΓóπεΘÑ⌐ ½«ú¿τÑ߬«⌐
-
- Windows 3.0/pg/3#3 = 100 =
-
- »á½¿ΓαÑ:
-
- /* ß«ºñáΓ∞ »á½¿Γαπ ñ½∩ «ª¿ó½Ñ¡¿∩ */
- for (i = 0; i < pLogPal->palNumEntries; i++) {
- pLogPal->palPalEntry[i].peFlags = (BYTE)PC_RESERVED;
- }
-
- SetPaletteEntries(hpalCurrent, 0, pLogPal->palNumEntries,
- (LPSTR)&(pLogPal->palPalEntry[0]));
-
- öπ¡¬µ¿∩ AnimatePalette »«½πτáÑΓ ΓÑ ªÑ »áαá¼ÑΓαδ, τΓ« ¿
- SetPaletteEntries. Äñ¡á¬«, ó «Γ½¿τ¿Ñ «Γ ¡ÑÑ AnimatePalette
- ¿º¼Ñ¡∩ÑΓ Γ«½∞¬« φ½Ñ¼Ñ¡Γδ »á½¿Γαδ ß Σ½áú«¼ PC_RESERVED.
-
- Åα¿ ó맮óÑ AnimatePalette »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ Windows
- ¡Ñ¼Ññ½Ñ¡¡« «Γ«íαáªáÑΓ ¿º¼Ñ¡Ñ¡¡δÑ φ½Ñ¼Ñ¡Γδ ó ß¿ßΓѼ¡πε »á½¿Γαπ,
- ¡« ¡Ñ »ÑαÑ«Γ«íαáªáÑΓ µóÑΓá, «Γ«íαáªáѼδÑ ó ¬«¡ΓѬßΓáσ
- πßΓα«⌐ßΓó, ¿ß»«½∞ºπ∩ »á½¿Γαπ ñ½∩ ¬«Γ«α«⌐ »α¿¬½áñ¡á∩ »α«úαá¼¼á
- óδºóá½á AnimatePalette. äαπú¿¼¿ ß½«óἿ, Ñß½¿ »ÑαÑñ ó맮ó«¼
- »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ Σπ¡¬µ¿¿ AnimatePalette »¿¬ßѽ∞
- «Γ«íαáªá½ß∩ µóÑΓ«¼ »∩Γ¡áñµáΓ«ú« φ½Ñ¼Ñ¡Γá ß¿ßΓѼ¡«⌐ »á½¿Γαδ, Γ«
- »«ß½Ñ ó맮óá Σπ¡¬µ¿¿ «¡ íπñÑΓ «Γ«íαáªáΓ∞ß∩ µóÑΓ«¼ φΓ«ú«
- φ½Ñ¼Ñ¡Γá, ñáªÑ Ñß½¿ φ½Ñ¼Ñ¡Γ ß«ñÑαª¿Γ ¡«óδ⌐ µóÑΓ.
-
- ä½∩ ñѼ«¡ßΓαᵿ¿ «ª¿ó½Ñ¡¿∩ ShowDIB πßΓá¡áó½¿óáÑΓ ß¿ßΓѼ¡δ⌐
- Γá⌐¼Ñα ¿ ºáΓѼ óδºδóáÑΓ AnimatePalette ñ½∩ ßñó¿úá ¬áªñ«ú«
- φ½Ñ¼Ñ¡Γá »á½¿Γαδ »α¿ »«½πτÑ¡¿¿ ß««íΘÑ¡¿∩ WM_TIMER:
-
- case WM_TIMER:
- /* æ¿ú¡á½ ñ½∩ «ª¿ó½Ñ¡¿∩ »á½¿Γαδ */
- hDC = GetDC(hWnd);
- hOldPal = SelectPalette(hDC, hpalCurrent, 0);
- {
- PALETTEENTRY peTemp;
-
- /* æñó¿¡πΓ∞ óßÑ φ½Ñ¼Ñ¡Γδ ½«ú¿τÑ߬«⌐ »á½¿Γαδ
- * ó½Ñó« ¡á «ñ¿¡ φ½Ñ¼Ñ¡Γ ¿ »α«¬απΓ¿Γ∞ »Ñαóδ⌐
- * φ½Ñ¼Ñ¡Γ ¡á ¼ÑßΓ« »«ß½Ññ¡Ñú« */
-
- peTemp = pLogPal->palPalEntry[0];
- for (i = 0;
- i < (pLogPal->palNumEntries - 1); i++)
- pLogPal->palPalEntry[i] =
- pLogPal->palPalEntry[i+1];
- pLogPal->palPalEntry[i] = peTemp;
- }
- /* çá¼Ñ¡¿Γ∞ φ½Ñ¼Ñ¡Γδ ½«ú¿τÑ߬«⌐ »á½¿Γαδ ¡á ¡«óδÑ*/
- AnimatePalette(hpalCurrent, 0,
- pLogPal->palNumEntries, pLogPal->palPalEntry);
-
- SelectPalette(hDC, hOldPal, 0);
- ReleaseDC(hWnd, hDC);
-
-
- Windows 3.0/pg/3#3 = 101 =
-
- /* ô¼Ñ¡∞Φ¿Γ∞ ßτÑΓτ¿¬ «ª¿ó½Ñ¡¿⌐ ¿ »α¿ ñ«ßΓ¿ªÑ¡¿¿ 0
- * ºáóÑαΦ¿Γ∞ óδ»«½¡Ñ¡¿Ñ »α«úαá¼¼δ
- */
- if (!(--nAnimating))
- PostMessage(hWnd,WM_COMMAND,IDM_ANIMATE0,0L);
- break;
-
- Ī¿ó½Ñ¡¿Ñ óßÑ⌐ ½«ú¿τÑ߬«⌐ »á½¿Γαδ ¼«ªÑΓ πσπñΦ¿Γ∞ µóÑΓá,
- «Γ«íαáªáѼδÑ ó «¬¡áσ ñαπú¿σ »α¿¬½áñ¡δσ »α«úαá¼¼, Ñß½¿ á¬Γ¿ó¡«Ñ
- ¿ß»«½∞ºπÑΓ «ª¿ó½Ñ¡¡πε »á½¿Γαπ, «ß«íÑ¡¡«, Ñß½¿ «ª¿ó½∩Ѽá∩
- »á½¿Γαá ñ«ßΓáΓ«τ¡« óѽ¿¬á, τΓ«íδ ¡á¬αδΓ∞ ß¿ßΓѼ¡πε »á½¿Γαπ. Å«
- φΓ«⌐ »α¿τ¿¡Ñ ¼δ ¡Ñ ß«óÑΓπѼ «ª¿ó½∩Γ∞ ó »á½¿ΓαÑ í«½∞ΦÑ
- φ½Ñ¼Ñ¡Γ«ó, τѼ ¡Ñ«íσ«ñ¿¼«.
-
- 19.6 ÉÑᬵ¿∩ ¡á ¿º¼Ñ¡Ñ¡¿∩ ß¿ßΓѼ¡«⌐ »á½¿Γαδ.
-
- è«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á αÑ὿ºπÑΓ ½«ú¿τÑ߬πε »á½¿Γαπ
- ñ½∩ «»αÑñѽѡ¡«ú« ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá, Windows «Γ«íαáªáÑΓ
- µóÑΓá ½«ú¿τÑ߬«⌐ »á½¿Γαδ ¡á ß¿ßΓѼ¡πε, Ñß½¿ ó ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ
- ¡ÑΓ Γᬿσ µóÑΓ«ó ¿ ÑßΓ∞ ßó«í«ñ¡δÑ φ½Ñ¼Ñ¡Γδ. ū߬«½∞¬π
- ¿º¼Ñ¡¿½áß∞ ß¿ßΓѼ¡á∩ »á½¿Γαá, Γ« ¼¡«ú¿Ñ ¿½¿ óßÑ µóÑΓá,
- «Γ«íαáªáѼδÑ ó «í½áßΓ¿ »«½∞º«óáΓѽ∩ óßÑσ «¬«¡, ¿ß»«½∞ºπεΘ¿σ
- »á½¿Γαπ Γá¬ªÑ ¿º¼Ñ¡∩Γß∩. ä½∩ Γ«ú«, τΓ«íδ »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ¼«ú½á «ΓαÑáú¿α«óáΓ∞ ¡á Γá¬¿Ñ ¿º¼Ñ¡Ñ¡¿∩, Windows »«ßδ½áÑΓ
- ¡á¬½áñδóáÑ¼δ¼ ¿ »ÑαѬαδóáεΘ¿¼ß∩ «¬¡á¼ ñóá ß««íΘÑ¡¿∩:
-
- - WM_QUERYNEWPALETTE
-
- - WM_PALETTECHANGED
- 19.6.1 Äíαáí«Γ¬á ß««íΘÑ¡¿∩ WM_QUERYNEWPALETTE.
-
- Windows »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ WM_QUERYNEWPALETTE «¬¡π,
- ¬«Γ«α«Ñ ßΓá¡«ó¿Γß∩ á¬Γ¿ó¡δ¼. è«úñá «¬¡« »«½πτáÑΓ φΓ« ß««íΘÑ¡¿Ñ,
- »α¿¬½áñ¡á∩ »α«úαá¼¼á, ¬«Γ«α«⌐ »α¿¡áñ½Ñª¿Γ ñá¡¡«Ñ «¬¡«, ñ«½ª¡á
- αÑ὿º«óáΓ∞ ½«ú¿τÑ߬πε »á½¿Γαπ, »«¼ÑΓ¿Γ∞ ñ½∩ »ÑαÑα¿ß«ó¬¿
- «í½áßΓ∞ »«½∞º«óáΓѽ∩ «¬¡á ¿ óÑα¡πΓ∞ TRUE, τΓ«íδ ß««íΘ¿Γ∞
- Windows, τΓ« ß¿ßΓѼ¡á∩ »á½¿Γαá íδ½á ¿º¼Ñ¡Ñ¡á.
-
- ShowDIB αÑáú¿απÑΓ ¡á ß««íΘÑ¡¿Ñ WM_QUERYNEWPALETTE
- ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- case WM_QUERYNEWPALETTE:
- /* àß½¿ αÑ὿ºáµ¿∩ »á½¿Γαδ »α¿óÑ½á ¬ ÑÑ ¿º¼Ñ¡Ñ-
- * ¡¿ε, Γ« ¡Ñ«íσ«ñ¿¼á »«½¡á∩ »ÑαÑα¿ß«ó¬á.
- */
- if (bLegitDraw) {
- hDC = GetDC (hWnd);
- hOldPal = SelectPalette (hDC, hpalCurrent, 0);
-
- i = RealizePalette(hDC);
-
- SelectPalette (hDC, hOldPal, 0);
-
- Windows 3.0/pg/3#3 = 102 =
-
- ReleaseDC (hWnd, hDC);
-
- if (i) {
- InvalidateRect (hWnd, (LPRECT) (NULL), 1);
- UpdateCount = 0;
- return 1;
- } else
- return FALSE;
- }
- else
- return FALSE;
- break;
- 19.6.2 ÉÑᬵ¿∩ ¡á ß««íΘÑ¡¿Ñ WM_PALETTECHANGED.
-
- Windows »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ WM_PALETTECHANGED óßѼ
- »ÑαѬαδóáÑ¼δ¼ ¿ ¡á¬½áñδóáÑ¼δ¼ «¬¡á¼, ¬«úñá á¬Γ¿ó¡«Ñ «¬¡«
- ¿º¼Ñ¡∩ÑΓ ß¿ßΓѼ¡πε »á½¿Γαπ, τΓ« »α«¿ßσ«ñ¿Γ »α¿ αÑ὿ºáµ¿¿ Ñú«
- ½«ú¿τÑ߬«⌐ »á½¿Γαδ. àß½¿ óáΦÑ «¬¡« αÑáú¿απÑΓ ¡á φΓ« ß««íΘÑ¡¿Ñ,
- αÑ὿ºπ∩ ßó«ε ß«íßΓóÑ¡¡πε »á½¿Γαπ, óδ ñ«½ª¡δ ó ¡áτá½Ñ
- «»αÑñѽ¿Γ∞, τΓ« ñÑß¬α¿»Γ«α ¡Ñ «»αÑñѽ∩ÑΓ óáΦÑ ß«íßΓóÑ¡¡«Ñ «¬¡«,
- ¿¡áτÑ φΓ« »α¿óÑñÑΓ ¬ ºáµ¿¬½¿óá¡¿ε.
-
- è«úñá ¡Ñá¬Γ¿ó¡«Ñ «¬¡« »«½πτáÑΓ φΓ« ß««íΘÑ¡¿Ñ, «¡« ¿¼ÑÑΓ
- Γα¿ ó«º¼«ª¡«ßΓ¿:
-
- - ìÑ ñѽáΓ∞ ¡¿τÑú«. é φΓ«¼ ß½πτáÑΓ µóÑΓá ó «í½áßΓ¿
- »«½∞º«óáΓѽ∩ ¼«úπΓ ¿º¼Ñ¡¿Γ∞ß∩ ñ« ΓÑσ »«α, »«¬á Ñú«
- ß«ñÑন¼«Ñ ¡Ñ íπñÑΓ »ÑαÑα¿ß«óá¡«. éδ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞
- φΓπ 󫺼«ª¡«ßΓ∞ ó ß½πτáÑ, Ñß½¿ óá¼ ¡Ñ ó᪡« ¬áτÑßΓó«
- µóÑΓ«ó, «Γ«íαáªáѼδσ óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐, ¬«úñá
- ÑÑ «¬¡á ¡Ñá¬Γ¿ó¡δ, ¿½¿ Ñß½¿ óáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¡Ñ
- ¿ß»«½∞ºπÑΓ »á½¿Γαπ.
-
- - Ä¡« ¼«ªÑΓ αÑ὿º«óáΓ∞ ßó«ε ß«íßΓóÑ¡¡πε »á½¿Γαπ ¿
- »ÑαÑα¿ß«óáΓ∞ ß«ñÑন¼«Ñ «í½áßΓ¿ »«½∞º«óáΓѽ∩. ¥Γá
- 󫺼«ª¡«ßΓ∞ »«ºó«½∩ÑΓ ñ«í¿Γ∞ß∩ ¼á¬ß¿¼á½∞¡« 󫺼«ª¡«ú«
- ß««ΓóÑΓßΓó¿∩ µóÑΓ«ó, »«ß¬«½∞¬π Windows ¼«ñ¿Σ¿µ¿απÑΓ
- µóÑΓá ó «í½áßΓ¿ »«½∞º«óáΓѽ∩ ó ß««ΓóÑΓßΓó¿¿ ß ½«ú¿τÑ߬«⌐
- »á½¿Γα«⌐ «¬¡á. Äñ¡á¬« αáß»½áΓ«⌐ ºá φΓ« ß½πª¿Γ óαѼ∩,
- ¡Ñ«íσ«ñ¿¼«Ñ ñ½∩ »ÑαÑα¿ß«ó¬¿ «í½áßΓ¿ »«½∞º«óáΓѽ∩. éδ
- ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ φΓπ 󫺼«ª¡«ßΓ∞, Ñß½¿ ñ½∩ óáΦÑ⌐
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¬α¿Γ¿τ¡δ µóÑΓá, ¿ß»«½∞ºπѼδÑ ó
- ¡Ñá¬Γ¿ó¡δσ «¬¡áσ, ¿½¿ Ñß½¿ ¿º«íαáªÑ¡¿Ñ ó «í½áßΓ¿
- »«½∞º«óáΓѽ∩ ¼«ª¡« »ÑαÑα¿ß«óáΓ∞ íδßΓα«.
-
- - Ĭ¡« ¼«ªÑΓ αÑ὿º«óáΓ∞ Ñú« ½«ú¿τÑ߬πε »á½¿Γαπ ¿ »α∩¼«
- ¼«ñ¿Σ¿µ¿α«óáΓ∞ µóÑΓá ó «í½áßΓ¿ »«½∞º«óáΓѽ∩. ¥Γá
- 󫺼«ª¡«ßΓ∞ »αÑñßΓáó½∩ÑΓ ß«í«⌐ ¬«¼»α«¼¿ß ¼Ñªñπ ¼Ñªñπ
- σáαá¬ΓÑα¿ßΓ¿¬á¼¿ ¿ ¬áτÑßó«¼ µóÑΓá. Ĭ¡« »α∩¼«
- ¼«ñ¿Σ¿µ¿απÑΓ µóÑΓá, αÑ὿ºπ∩ »á½¿Γαπ ¿ óδºδóá∩ Σπ¡¬µ¿ε
- UpdateColors. Åα¿ ó맮óÑ UpdateColors Windows íδßΓα«
- ¼«ñ¿Σ¿µ¿απÑΓ µóÑΓá, ßαáó¡¿óá∩ µóÑΓá »¿¬ßѽÑ⌐ ó «í½áßΓ¿
-
- Windows 3.0/pg/3#3 = 103 =
-
- »«½∞º«óáΓѽ∩ ß µóÑΓἿ ó ß¿ßΓѼ¡«⌐ »á½¿ΓαÑ. ū߬«½∞¬π
- «Γ«íαáªÑ¡¿Ñ, íếαπεΘÑÑß∩ ¡á µóÑΓáσ »¿¬ßѽÑ⌐,
- »α«¿ºó«ñ¿Γß∩ ñ« αÑ὿ºáµ¿¿ ½«ú¿τÑ߬«⌐ »á½¿Γαδ, Γ« ¬áªñδ⌐
- ó맮ó UpdateColors π¼Ñ¡∞ΦáÑΓ ¬áτÑßΓó« µóÑΓ«ó.
- æ½Ññ«óáΓѽ∞¡«, Ñß½¿ ¬áτÑßΓó« µóÑΓá ó᪡« ñ½∩ óáΦÑ⌐
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¬«úñá ÑÑ «¬¡á ¡Ñ á¬Γ¿ó¡δ, Γ«
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á «úαá¡¿τ¿Γ∞ τ¿ß½« ó맮ó«ó
- UpdateColors »ÑαÑñ »ÑαÑα¿ß«ó¬«⌐ «í½áßΓ¿ »«½∞º«óáΓѽ∩.
-
- ì¿ªÑ ñѼ«¡ßΓα¿απÑΓß∩, ¬á¬ ó »α«úαá¼¼Ñ ShowDIB ¼«ª¡«
- ¼«ñ¿Σ¿µ¿α«óáΓ∞ «í½áßΓ∞ »«½∞º«óáΓѽ∩ »α¿ »«½πτÑ¡¿¿ ß««íΘÑ¡¿∩
- WM_PALETTECHANGED:
-
- case WM_PALETTECHANGED:
- /* àß½¿ SHOWDIB ¡Ñ «ΓóÑτáÑΓ ¡á ¿º¼Ñ¡Ñ¡¿Ñ »á½¿Γαδ
- ¿½¿ αÑ὿ºáµ¿∩ »á½¿Γαδ »α¿ó«ñ¿Γ ¬ ¿º¼Ñ¡Ñ¡¿ε
- »á½¿Γαδ, óδ»«½¡¿Γ∞ »ÑαÑα¿ß«ó¬π. */
- if (wParam != hWnd){
- if (bLegitDraw){
- hDC = GetDC (hWnd);
- hOldPal = SelectPalette (hDC,
- hpalCurrent, 0);
-
- i = RealizePalette (hDC);
-
- if (i){
- if (bUpdateColors){
- UpdateColors (hDC);
- UpdateCount++;
- }
- else
- InvalidateRect (hWnd,
- (LPRECT) (NULL), 1);
- }
-
- SelectPalette (hDC, hOldPal, 0);
- ReleaseDC (hWnd, hDC);
- }
- }
- break;
-
- è«úñá ShowDIB »«½πτáÑΓ ß««íΘÑ¡¿Ñ WM_PALETTECHANGED, «¡á ó
- ¡áτá½Ñ ßαáó¡¿óáÑΓ ß«ñÑαªáΘ¿⌐ß∩ ó wParam ñÑß¬α¿»Γ«α «¬¡á ß
- ß«íßΓóÑ¡¡δ¼ ñÑß¬α¿»Γ«α«¼. àß½¿ φΓ« ß«íßΓóÑ¡¡δ⌐ ñÑß¬α¿»Γ«α, Γ«
- αÑᬵ¿¿ ¡á αÑ὿ºáµ¿ε ß«íßΓóÑ¡¡«⌐ »á½¿Γαδ ¡Ñ ΓαÑíπÑΓß∩. çáΓѼ,
- »«ß½Ñ óδí«αá ¿ αÑ὿ºáµ¿¿ ß«íßΓóÑ¡¡«⌐ ½«ú¿τÑ߬«⌐ »á½¿Γαδ «¡á
- «»αÑñѽ∩ÑΓ πßΓá¡«ó½Ñ¡ ½¿ Σ½áú, ¬«Γ«αδ⌐ πßΓá¡áó½¿óáÑΓß∩, Ñß½¿
- »«½∞º«óáΓѽ∞ óδíαá½ ó ¼Ñ¡ε Options φ½Ñ¼Ñ¡Γ Update Colors. àß½¿
- φΓ« Γá¬, Γ« «¡á óδºδóáÑΓ Σπ¡¬µ¿ε UpdateColors ñ½∩ »α∩¼«⌐
- ¼«ñ¿Σ¿¬áµ¿¿ «í½áßΓ¿ »«½∞º«óáΓѽ∩ ¿ πßΓá¡áó½¿óáÑΓ Σ½áú,
- ú«ó«α∩Θ¿⌐, τΓ« »α«¿ßσ«ñ¿Γ »α∩¼á∩ ¼«ñ¿Σ¿¬áµ¿∩ «í½áßΓ¿
- »«½∞º«óáΓѽ∩. é »α«Γ¿ó¡«¼ ß½πτáÑ »«¼ÑτáÑΓß∩ ñ½∩ »ÑαÑα¿ß«ó¬¿
- «í½áßΓ∞ »«½∞º«óáΓѽ∩.
-
- Windows 3.0/pg/3#3 = 104 =
-
- 19.7 çᬽετÑ¡¿Ñ.
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ »á½¿Γαδ µóÑΓ«ó óáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ¼«ªÑΓ «Γ«íαáªáΓ∞ ßΓ«½∞¬« µóÑΓ«ó, ߬«½∞¬« ñ«ßΓπ»¡« ¡á ñá¡¡«¼
- πßΓα«⌐ßΓóÑ. Åα¿ óδ»«½¡Ñ¡¿¿ úαáΣ¿τÑ߬¿σ «»Ñαᵿ⌐ óδ ó¼ÑßΓ«
- ∩ó¡«ú« π¬áºá¡¿∩ µóÑΓá ¼«ªÑΓÑ ß«ºñáΓ∞ »á½¿Γαπ, ¿º ¬«Γ«α«⌐ ¿
- íπñπΓ óδí¿αáΓ∞ß∩ µóÑΓá ñ½∩ óδó«ñá. ûóÑΓ ó »á½¿ΓαÑ ¼«ª¡« π¬áºáΓ∞
- ∩ó¡« ß »«¼«Θ∞ε Ñú« ¿¡ñѬßá ó »á½¿ΓαÑ ¿½¿ ¡Ñ∩ó¡« »α¿
- ¿ß»«½∞º«óá¡¿¿ º¡áτÑ¡¿∩ RGB, ºáó¿ß¿¼«ú« «Γ »á½¿Γαδ. è«úñá óáΦÑ
- «¬¡« »«½πτáÑΓ ºáσóáΓ óó«ñá, Windows úáαá¡Γ¿απÑΓ, τΓ« íπñπΓ
- «Γ«íαáªáΓ∞ß∩ µóÑΓá ¿º »á½¿Γαδ (󻽫Γ∞ ñ« ¼á¬ß¿¼á½∞¡« 󫺼«ª¡«ú«
- τ¿ß½á µóÑΓ«ó) ¿ «ßΓáóΦ¿Ñß∩ µóÑΓá íπñπΓ ¡áßΓ«½∞¬« ß«ó»áñáΓ∞ ß
- ñ«ßΓπ»¡δ¼¿, ¡á߬«½∞¬« φΓ« 󫺼«ª¡«. äáªÑ Ñß½¿ óáΦÑ «¬¡«
- ¡Ñá¬Γ¿ó¡«, Windows óßÑ αáó¡« «íÑß»Ñτ¿óáÑΓ «Γ«íαáªÑ¡¿Ñ µóÑΓ«ó
- «¬¡á ¡á߬«½∞¬« 󫺼«ª¡« í½¿º¬« ¬ ΓѼ, τΓ« «»αÑñѽ∩εΓß∩
- ß¿ßΓѼ¡«⌐ »á½¿Γα«⌐.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε »« ó«»α«ßá¼, «Γ¡«ß∩Θ¿¼ß∩ ¬
- »á½¿Γαá¼ µóÑΓ«ó Windows, óδ ¡á⌐ñÑΓÑ ó:
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- ÄΓ«íαáªÑ¡¿Ñ µóÑΓ¡δσ Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá: ú½áóá 11, "ÉáßΓ-
- αáßΓα«óδσ ¬áαΓ α«óδÑ ¬áαΓδ."
-
- öπ¡¬µ¿¿ GDI ¿ Σπ¡¬- æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó« Γ«¼ 1: ú½áóá 2,
- µ¿¿ αáí«Γδ ß »á½¿Γ- "öπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá úαáΣ¿τÑ߬¿σ πßΓα«⌐ßΓó",
- αἿ ú½áóá 4, "滿߫¬ Σπ¡¬µ¿⌐".
-
- Æ¿»δ ñá¡¡δσ ¿ ßΓαπ¬- æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó« Γ«¼ 2: ú½áóá 7,
- Γπαδ, ¿ß»«½∞ºπѼδÑ "Æ¿»δ ñá¡¡δσ ¿ ßΓαπ¬Γπαδ".
- ½«ú¿τÑ߬«⌐ »á½¿Γα«⌐
-
-
-
-
- Windows 3.0/pg/3#3 = 105 =
-
-
- â½áóá 20. 信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿.
- ----------------------------------------------------------------
- Microsoft Windows ß«ñÑαª¿Γ ß»Ñµ¿á½∞¡δÑ í¿í½¿«ΓѬ¿,
- ¡áºδóáѼδÑ ñ¿¡á¼¿τÑ߬¿ »«ñ¬½ετáÑ¼δ¼¿ í¿í½¿«ΓѬἿ (DLL),
- ¬«Γ«αδÑ «íÑß»Ñτ¿óáεΓ αáºñѽѡ¿Ñ ¬«ñá ¿ αÑßπαß«ó ¼Ñªñπ
- »α¿¬½áñ¡δ¼¿ »α«úαἼἿ. Windows ¿ß»«½∞ºπÑΓ DLL ñ½∩ ¬«ñá ¿
- αÑßπαß«ó, ¿ß»«½∞ºπѼδσ óßѼ¿ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ. èα«¼Ñ
- φΓ«ú«, óδ ¼«ªÑΓÑ ß«ºñáóáΓ∞ ßó«¿ ß«íßΓóÑ¡¡δÑ DLL ñ½∩ αáºñѽѡ¿∩
- ¬«ñá ¿ ñá¡¡δσ ¼Ñªñπ óáΦ¿¼¿ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡« ß½ÑñπεΘÑÑ:
-
- - ùΓ« Γá¬«Ñ DLL.
-
- - è«úñá ¿ß»«½∞º«óáΓ∞ DLL.
-
- - 櫺ñá¡¿Ñ DLL.
-
- èα«¼Ñ φΓ«ú«, »α¿ó«ñ¿Γß∩ «»¿ßá¡¿Ñ ß«ºñá¡¿∩ »α«ßΓ«⌐
- í¿í½¿«ΓѬ¿ SELECT.DLL, ¬«Γ«αá∩ ¿½½εßΓα¿απÑΓ ¬«¡µÑ»µ¿¿,
- «»¿ßá¡¡δÑ ó ñá¡¡«⌐ ú½áóÑ.
- 20.1 ùΓ« Γá¬«Ñ DLL.
-
- DLL - φΓ« óδ»«½¡∩Ѽδ⌐ ¼«ñπ½∞, ß«ñÑαªáΘ¿⌐ Σπ¡¬µ¿¿, ß
- ¬«Γ«α묨 ¼«úπΓ ñ¿¡á¼¿τÑ߬¿ ßó∩ºδóáΓ∞ß∩ »α¿¬½áñ¡δÑ »α«úαá¼¼δ
- Windows ¿ ¬«Γ«αδÑ ¼«úπΓ íδΓ∞ óδºóá¡δ ñ½∩ óδ»«½¡Ñ¡¿∩
- «»αÑñѽѡ¡δσ ñÑ⌐ßΓó¿⌐. DLL ßπΘÑßΓóπÑΓ ñ½∩ «íÑß»ÑτÑ¡¿∩ πñ«íßΓóá
- »α¿¬½áñ¡δσ »α«úαá¼¼. é ßαÑñÑ Windows DLL ¿úαáεΓ ó᪡πε α«½∞.
- Windows ¿ß»«½∞ºπÑΓ DLL ñ½∩ «íÑß»ÑτÑ¡¿∩ ñ«ßΓπ»á »α¿¬½áñ¡δσ
- »α«úαá¼¼ ¬ Σπ¡¬µ¿∩¼ ¿ αÑßπαßá¼ Windows.
-
- DLL á¡á½«ú¿τ¡á í¿í½¿«ΓѬἠ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓѼδ (¡á»α¿¼Ñα,
- í¿í½¿«ΓÑ¬Ñ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ) ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« «¡á
- »«ñß«Ññ¿¡∩ÑΓß∩ ¬ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ¡Ñ ¡á φΓá»Ñ ¬«¼»«¡«ó¬¿, á
- ¡á φΓá»Ñ óδ»«½¡Ñ¡¿∩. ¥Γ«Γ ¼ÑΓ«ñ ¬«¼»«¡«ó¬¿ í¿í½¿«ΓѬ¿ ¿
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ
- ¡áºδóáÑΓß∩ ñ¿¡á¼¿τÑ߬«⌐ ¬«¼»«¡«ó¬«⌐. 諼»«¡«ó¬á í¿í½¿«ΓѬ¿ ¿
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¡áºδóáÑΓß∩ ßΓáΓ¿τÑ߬«⌐ ¬«¼»«¡«ó¬«⌐.
-
- ùΓ«íδ »«¡∩Γ∞, τΓ« Γá¬«Ñ DLL, ¼«ª¡« ßαáó¡¿Γ∞ ¿σ ß«
- ßΓáΓ¿τÑ߬¿¼¿ í¿í½¿«ΓѬἿ. Åα¿¼Ñα«¼ ßΓáΓ¿τÑ߬«⌐ í¿í½¿«ΓѬ¿
- ¼«ªÑΓ ß½πª¿Γ∞ MLIBCEW.LIB, ß«ñÑαªáΘá∩ Σπ¡¬µ¿¿ ¿ß»«½¡∩εΘÑ⌐
- ß¿ßΓÑ¼δ æ ñ½∩ ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿. MLIBCEW.LIB ß«ñÑαª¿Γ ΓᬿÑ
- Σπ¡¬µ¿¿, ¬á¬ strcpy ¿ strlenr. éδ ¿ß»«½∞ºπÑΓÑ φΓ¿ Σπ¡¬µ¿¿, ¡Ñ
- ó¬½ετá∩ ¿σ ¿ßσ«ñ¡δ⌐ ¬«ñ ó ßó«ε »α«úαá¼¼π. Åα¿ ¬«¼»¿½∩µ¿¿ óáΦÑ⌐
- »α«úαá¼¼δ ¬«¼»«¡«óΘ¿¬ ßá¼ ó¬½ετáÑΓ ¡Ñ«íσ«ñ¿¼πε ¿¡Σ«α¼áµ¿ε ó
- óáΦπ »α«úαá¼¼π. è«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿¿
- ßΓáΓ¿τÑ߬«⌐ í¿í½¿«ΓѬ¿, ¬«¼»«¡«óΘ¿¬ ¬«»¿απÑΓ ¿σ ¿º í¿í½¿«ΓѬ¿ ó
- .EXE-Σá⌐½.
-
- àñ¿¡ßΓóÑ¡¡δ¼ »αÑ¿¼πΘÑßΓó«¼ ßΓáΓ¿τÑ߬¿σ í¿í½¿«ΓѬ ∩ó½∩ÑΓß∩
- Γ«, τΓ« «¡¿ »αÑñ«ßΓáó½∩εΓ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ßΓá¡ñáαΓ¡δ⌐
-
- Windows 3.0/pg/3#3 = 106 =
-
- ¡áí«α »α«µÑñπα, ¿ óá¼ ¡Ñ ¡πª¡« ó¬½ετáΓ∞ ¿ßσ«ñ¡δÑ ¬«ñδ φΓ¿σ
- »«ñ»α«úαá¼¼ ó ßó«ε »α«úαá¼¼π.
-
- Äñ¡á¬« ßΓáΓ¿τÑ߬¿Ñ í¿í½¿«ΓѬ¿ ¡Ñ φΣΣÑ¬Γ¿ó¡δ ó
- ¼¡«ú«ºáñáτ¡«⌐ ßαÑñÑ, Γᬫ⌐ ¬á¬ Windows. àß½¿ «ñ¡«óαѼѡ¡«
- αáí«ΓáεΓ ñóÑ »α¿¬½áñ¡δÑ »α«úαá¼¼δ ¿ «íÑ ¿ß»«½∞ºπεΓ «ñ¡π ¿ Γπ ªÑ
- Σπ¡¬µ¿ε ßΓáΓ¿τÑ߬«⌐ í¿í½¿«ΓѬ¿, Γ« «íÑ «¡¿ ß«ñÑαªáΓ ¬«»¿ε φΓ«⌐
- Σπ¡¬µ¿¿. ¥Γ« ¡ÑφΣΣÑ¬Γ¿ó¡«Ñ ¿ß»«½∞º«óá¡¿Ñ »á¼∩Γ¿. ü«½ÑÑ
- φΣΣÑ¬Γ¿ó¡« ñ½∩ «í«¿σ »α«úαá¼¼ αáºñѽ∩Γ∞ «ñ¡π ¬«»¿ε φΓ«⌐
- Σπ¡¬µ¿¿, «ñ¡á¬« ßΓáΓ¿τÑ߬¿Ñ í¿í½¿«ΓѬ¿ ¡Ñ »αÑñ«ßΓáó½∩εΓ φΓ«⌐
- 󫺼«ª¡«ßΓ¿.
-
- æ ñαπú«⌐ ßΓ«α«¡δ DLL »«ºó«½∩ÑΓ ¡Ñ߬«½∞¬¿¼ »α¿¬½áñ¡δ¼
- »α«úαἼἠαáºñѽ∩Γ∞ «ñ¡π ¬«»¿ε ¡Ñ¬«Γ«α«⌐ Σπ¡¬µ¿¿. éßÑ
- ßΓá¡ñáαΓ¡δÑ Σπ¡¬µ¿¿ Windows, Γá¬¿Ñ ¬á¬ GetMessage, CreateWindow
- ¿ TextOut, ß«ñÑαªáΓß∩ ó ΓαÑσ DLL: KERNEL.EXE, USER.EXE ¿
- GDI.EXE. àß½¿ ñóÑ «ñ¡«óαѼѡ¡« αáí«ΓáεΘ¿Ñ »α¿¬½áñ¡δÑ »α«úαá¼¼δ
- Windows ¿ß»«½∞ºπεΓ ¡Ñ¬«Γ«απε Σπ¡¬µ¿ε Windows, Γ« «¡¿ αáºñѽ∩εΓ
- «ñ¡π ¬«»¿ε φΓ«⌐ Σπ¡¬µ¿¿.
-
- èα«¼Ñ Γ«ú«, τΓ« »α¿¬½áñ¡δÑ »α«úαá¼¼δ ¼«úπΓ αáºñѽ∩Γ∞ ¬«ñ
- Σπ¡¬µ¿⌐ ¿º DLL, «¡¿ »«ºó«½∩εΓ αáºñѽ∩Γ∞ ñαπú¿Ñ αÑßπαßδ, ΓᬿÑ
- ¬á¬ «í«απñ«óá¡¿Ñ ¿ ñá¡¡δÑ. ìá»α¿¼Ñα Φα¿ΣΓδ Windows φΓ« ñá¡¡δÑ,
- ¬«Γ«αδÑ »α¿¬½áñ¡δÑ »α«úαá¼¼δ αáºñѽ∩εΓ τÑαѺ DLL. ǡὫú¿τ¡«,
- ñαá⌐óÑαδ Windows - φΓ« DLL, ¬«Γ«αδÑ »«ºó«½∩εΓ »α¿¬½áñ¡δ¼
- »α«úαἼἠαáºñѽ∩Γ∞ ñ«ßΓπ» ¬ «í«απñ«óá¡¿ε.
-
- éßÑ í¿í½¿«ΓѬ¿ Windows ∩ó½∩εΓß∩ í¿í½¿«ΓѬἿ ñ¿¡á¼¿τÑ߬«⌐
- ¬«¼»«¡«ó¬¿. ìá»α¿¼Ñα, Σá⌐½δ GDI.EXE, KERNEL.EXE ¿ USER.EXE,
- ¬«Γ«αδÑ ß«ßΓáó½∩εΓ «ß¡«ó¡πε τáßΓ∞ Windows, ∩ó½∩εΓß∩
- í¿í½¿«ΓѬἿ ñ¿¡á¼¿τÑ߬«⌐ ¬«¼»«¡«ó¬¿. ¡« ß«ºñáΓ∞ ßó«ε
- ß«íßΓóÑ¡¡πε í¿í½¿«ΓѬπ ñ¿¡á¼¿τÑ߬«⌐ ¬«¼»«¡«ó¬¿.
-
-
- Windows 3.0/pg/3#3 = 107 =
-
- 20.1.1 ê¼»«αΓ¿απѼδÑ í¿í½¿«ΓѬ¿ ¿ DLL.
-
- Æá¬¿¼ «íαẫ¼, ¼δ «»¿ß὿ ñóá ó¿ñá í¿í½¿«ΓѬ: ßΓáΓ¿τÑ߬¿Ñ
- ¿ ñ¿¡á¼¿τÑ߬¿Ñ. ê¼ÑÑΓß∩ ΓαÑΓ¿⌐ ó¿ñ í¿í½¿«ΓѬ, ¬«Γ«αδ⌐ «ß«íÑ¡¡«
- óáªÑ¡ »α¿ αáí«ΓÑ ß DLL. ¥Γ« ¿¼»«αΓ¿απѼδÑ í¿í½¿«ΓѬ¿.
- ê¼»«αΓ¿απѼδÑ í¿í½¿«ΓѬ¿ ß«ñÑαªáΓ ¿¡Σ«α¼áµ¿ε, ¬«Γ«αá∩ »«¼«úáÑΓ
- Windows «»αÑñѽ¿Γ∞ ¼ÑßΓ«»«½«ªÑ¡¿Ñ ¬«ñá ó DLL.
-
- é« óαѼ∩ ¬«¼»«¡«ó¬¿ ¬«¼»«¡«óΘ¿¬ ¿ß»«½∞ºπÑΓ ßΓáΓ¿τÑ߬¿Ñ ¿
- ¿¼»«αΓ¿απѼδÑ í¿í½¿«ΓѬ¿ ñ½∩ αáºαÑΦÑ¡¿∩ ßß佫¬ ¡á ó¡ÑΦ¡¿Ñ
- »ÑαѼѡ¡δÑ. è«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ »α«µÑñπαδ ¿º
- ßΓáΓ¿τÑ߬¿σ í¿í½¿«ΓѬ, ¬«¼»«¡«óΘ¿¬ ¬«»¿απÑΓ ¬«ñ φΓ¿σ »α«µÑñπα ó
- Σá⌐½ .EXE »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. Äñ¡á¬«, ¬«úñá »α¿¬½áñ¡á∩
- »α«úαá¼¼á ¿ß»«½∞ºπÑΓ »α«µÑñπαδ ¿º DLL, ¬«¼»«¡«óΘ¿¬ ¡Ñ ¬«»¿απÑΓ
- ¬«ñ ¿½¿ ñá¡¡δÑ. é¼ÑßΓ« φΓ«ú« «¡ ¬«»¿απÑΓ ¿¡Σ«α¼áµ¿ε ¿º
- ¿¼»«αΓ¿απѼ«⌐ í¿í½¿«ΓѬ¿, ¬«Γ«αá∩ «»αÑñѽ∩ÑΓ, úñÑ ó DLL ¡πª¡«
- ¿ß¬áΓ∞ ¡Ñ«íσ«ñ¿¼δÑ Σπ¡¬µ¿¿ ó DLL ó« óαѼ∩ óδ»«½¡Ñ¡¿∩. é« óαѼ∩
- óδ»«½¡Ñ¡¿∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ φΓá ¿¡Σ«α¼áµ¿∩ « αẼÑΘÑ¡¿¿
- ß«ºñáÑΓ ñ¿¡á¼¿τÑ߬πε ßó∩º∞ ¼Ñªñπ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ ¿ DLL.
-
- é Γáí½¿µÑ 20.1 ßπ¼¼¿απÑΓß∩ ¿ß»«½∞º«óá¡¿Ñ ¬áªñ«ú« Γ¿»á
- í¿í½¿«ΓѬ.
-
-
-
- Windows 3.0/pg/3#3 = 108 =
-
- Æáí½¿µá 20.1 êß»«½∞º«óá¡¿Ñ ΓαÑσ Γ¿»«ó í¿í½¿«ΓѬ.
- ───────────────────────────────────────────────────────────────
- Æ¿» Å«ñß«Ññ¿¡∩ÑΓß∩ ó« óαѼ∩ Åα¿¼Ñα
- ─────────────────────── ───────────────────────
- ü¿í½¿«ΓѬ¿ ¬«¼»«¡«ó¬¿ óδ»«½¡Ñ¡¿∩ ü¿í½¿«ΓѬ¿ öπ¡¬µ¿¿
- ───────────────────────────────────────────────────────────────
- æΓáΓ¿τÑ߬á∩ äá ìÑΓ MLIBCEW.LIB strcpy
-
- ê¼»«αΓ¿απѼá∩ äá ìÑΓ LIBW.LIB TextOut
-
- 信ἿτÑ߬á∩ ìÑΓ äá GDI.EXE TextOut
- ───────────────────────────────────────────────────────────────
-
- é ñá¡¡«⌐ Γáí½¿µÑ »«¬áºá¡«, τΓ« Ñß½¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á
- óδºδóáÑΓ Σπ¡¬µ¿ε ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ strcpy, Γ« ¬«¼»«¡«óΘ¿σ
- »α¿ß«Ññ¿¡∩ÑΓ ¬«ñ φΓ«⌐ Σπ¡¬µ¿¿ ¿º ßΓáΓ¿τÑ߬«⌐ í¿í½¿«ΓѬ¿
- MLIBCEW.LIB, ß«ñÑαªáΘÑ⌐ Σπ¡¬µ¿¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓѼδ, ¬
- óδ»«½¡∩Ѽ«¼π Σá⌐½π »α¿¬½áñ¡«⌐ »α«úαá¼¼δ .EXE. ì« ¬«úñá
- »α¿¬½áñ¡á∩ »α«úαá¼¼á óδºδóáÑΓ Σπ¡¬µ¿ε GDI TextOut, ¬«¼»«¡«óΘ¿¬
- ¬«»¿απÑΓ ¿¡Σ«α¼áµ¿ε « ÑÑ αẼÑΘÑ¡¿¿ ¿º ¿¼»«αΓ¿απѼ«⌐ í¿í½¿«ΓѬ¿
- LIBW.LIB ó .EXE-Σá⌐½. Ä¡ ¡Ñ ¬«»¿απÑΓ ßá¼ ¬«ñ Σπ¡¬µ¿¿ TextOut.
- é« óαѼ∩ óδ»«½¡Ñ¡¿∩, ¬«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á «ßπΘÑßΓó½∩ÑΓ
- ó맮ó TextOut, Windows, ¿ß»«½∞ºπ∩ ¿¡Σ«α¼áµ¿ε « αẼÑΘÑ¡¿¿,
- ¡áσ«ñ∩Θπεß∩ ó .EXE-Σá⌐½Ñ ¿ΘÑΓ Σπ¡¬µ¿ε TextOut ó GDI.EXE.
- äαπú¿¼¿ ß½«óἿ, ¿¼»«αΓ¿απѼá∩ í¿í½¿«ΓÑ¬á «ßπΘÑßΓó½∩ÑΓ ßó∩º∞
- ¼Ñªñπ ¼«ñπ½∩¼¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿ ¼«ñπ½∩¼¿ DLL.
- 20.1.2 î«ñ㫨 DLL ¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
-
- î«ñπ½∞ - φΓ« «ß¡«ó¡á∩ ßΓαπ¬Γπα¡á∩ Ññ¿¡¿µá ó Windows.
- ê¼ÑÑΓß∩ ñóá Γ¿»á ¼«ñπ½Ñ⌐: ¼«ñ㫨 DLL ¿ ¼«ñ㫨 »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ. æ ¼«ñπ½∩¼¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ óδ πªÑ º¡á¬«¼δ. EXE
- Σá⌐½ ½εí«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Windows αáßß¼áΓα¿óáÑΓß∩ ¬á¬
- ¼«ñπ½∞ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. Åα¿¼Ñα«¼ ¼«ñπ½∩ DLL ¼«ªÑΓ ß½πª¿Γ∞
- ½εí«⌐ ß¿ßΓѼ¡δ⌐ Σá⌐½ Windows ß αáßΦ¿αÑ¡¿Ñ¼ .DLL, .DRV ¿½¿ FON.
- (ìѬ«Γ«αδÑ ß¿ßΓѼ¡δÑ ¼«ñ㫨 Windows ¿¼ÑεΓ ó¼ÑßΓ« αáßΦ¿αÑ¡¿∩
- .DLL αáßΦ¿αÑ¡¿Ñ .EXE).
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á ¿ í¿í½¿«ΓÑτ¡δÑ ¼«ñ㫨 ¿¼Ñεà ëà ªÑ
- Σ«α¼áΓ Σá⌐½á. (öá¬Γ¿τÑ߬¿ φëà ӫα¼áΓ αáºñѽ∩ÑΓ Σá⌐½δ ¿ DLL
- OS/2). ¥Γ«Γ Σ«α¼áΓ Σá⌐½á, ¬«Γ«αδ⌐ ¿¡«úñá ¡áºδóáεΓ "ì«óδ⌐ Σ«α¼áΓ
- ºáú«½«ó¬á EXE Σá⌐½á", »«ºó«½∩ÑΓ «ßπΘÑßΓó¿Γ∞ ñ¿¡á¼¿τÑ߬«Ñ
- ßó∩ºδóá¡¿Ñ. éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ß½πªÑí¡πε »α«úαá¼¼π EXEHDR
- ñ½∩ τΓÑ¡¿∩ ¿¡Σ«α¼áµ¿¿ ¿º ºáú«½«ó¬á Σá⌐½á ¼«ñπ½∩. Åα«úαá¼¼á
- EXEHDR »αÑñ«ßΓáó½∩ÑΓ ¿¡Σ«α¼áµ¿ε « Σπ¡¬µ¿∩σ, ¬«Γ«αδÑ ¼«ñπ½∞
- ¿¼»«αΓ¿απÑΓ ¿½¿ φ¬ß»«αΓ¿απÑΓ. EXEHDR »«ßΓáó½∩ÑΓß∩ ó¼ÑßΓÑ ß
- Microsoft C Optimizing Compiler (ß¼«Γα¿ΓÑ ñ«¬π¼Ñ¡Γáµ¿ε »« C
- Compiler).
-
- î«ñπ½∞ φ¬ß»«αΓ¿απÑΓ Σπ¡¬µ¿¿, τΓ«íδ ßñѽáΓ∞ ¿σ ñ«ßΓπ»¡δ¼¿
- ñαπú¿¼ ¼«ñπ½∩¼. Æá¬¿¼ «íαẫ¼ DLL φ¬ß»«αΓ¿απÑΓ Σπ¡¬µ¿¿, τΓ«íδ
- «¡¿ ¼«ú½¿ ¿ß»«½∞º«óáΓ∞ß∩ ñαπú¿¼¿ DLL ¿ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ.
- ìá»α¿¼Ñα, ñ¿¡á¼¿τÑ߬¿ »«ñ¬½ετáѼá∩ í¿í½¿«ΓѬá Windows GDI.EXE
-
- Windows 3.0/pg/3#3 = 109 =
-
- φ¬ß»«αΓ¿απÑΓ óßÑ Σπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá úαáΣ¿τÑ߬¿σ πßΓα«⌐ßΓó.
- Äñ¡á¬«, ó «Γ½¿τ¿Ñ «Γ DLL, φ¬ß»«αΓ¿απѼδÑ Σπ¡¬µ¿¿ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ ¡Ñ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ñαπú¿¼¿ ¼«ñπ½∩¼¿.
-
- î«ñπ½∞ ¿¼»«αΓ¿απÑΓ Σπ¡¬µ¿ε, ß«ñÑαªáΘπεß∩ ó ñαπú«¼ ¼«ñπ½Ñ,
- Ñß½¿ 󫺡¿¬áÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ó ÑÑ ¿ß»«½∞º«óá¡¿¿. ê¼»«αΓ¿α«óá¡¿Ñ
- Σπ¡¬µ¿¿ ß«ºñáÑΓ ñ¿¡á¼¿τÑ߬πε ßó∩º∞ ß ¬«ñ«¼ ñá¡¡«⌐ Σπ¡¬µ¿¿.
-
- öπ¡¬µ¿ε ¼«ª¡« ¿¼»«αΓ¿α«óáΓ∞ ñóπ¼∩ ß»«ß«íἿ:
-
- - 諼»«¡π∩ ¼«ñπ½∞ ß ¿¼»«αΓ¿απѼ«⌐ í¿í½¿«ΓѬ«⌐, ¬«Γ«αá∩
- ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿ε «í φΓ«⌐ Σπ¡¬µ¿¿.
-
- - Ä»¿ßáó «Γñѽ∞¡δÑ Σπ¡¬µ¿¿ ó αáºñÑ½Ñ IMPORTS ó Σá⌐½Ñ
- «»¿ßá¡¿∩ ¼«ñπ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
-
- ò«Γ∩ ¿ ¼«ñ㫨 »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¿ ¼«ñ㫨 DLL ¼«úπΓ
- φ¬ß»«αΓ¿α«óáΓ∞ ¿ ¿¼»«αΓ¿α«óáΓ∞ Σπ¡¬µ¿¿, ¼Ñªñπ ¡¿¼¿ ßπΘÑßΓóπÑΓ
- «ñ¡« ßπΘÑßΓóÑ¡¡«Ñ «Γ½¿τ¿Ñ - ¼«ñ㫨 DLL ¡Ñ ∩ó½∩εΓß∩ ºáñáτἿ.
- 20.1.3 DLL ¿ ºáñáτ¿.
-
- Äñ¡¿¼ ¿º «ß¡«ó¡δσ «Γ½¿τ¿⌐ ¼Ñªñπ ¼«ñπ½Ñ¼ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ ¿ ñ¿¡á¼¿τÑ߬¿ »«ñß«Ññ¿¡∩Ñ¼δ¼ ¼«ñπ½Ñ¼ ∩ó½∩ÑΓß∩ ¿σ
- «Γ¡«ΦÑ¡¿Ñ ¬ »«¡∩Γ¿ε "ºáñáτá". çáñáτá - φΓ« «ß¡«ó¡«⌐ φ½Ñ¼Ñ¡Γ,
- ¿ß»«½∞ºπѼδ⌐ Windows. î«ñπ½∞ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ßτ¿ΓáÑΓß∩
- óδ»«½¡∩Ñ¼δ¼ ¼«ñπ½Ñ¼ ºáñáτ¿. Å«ß½Ñ ºáúαπº¬¿ ¼«ñπ½∩ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ «ßπΘÑßΓó½∩ÑΓß∩ Ñú« ó맮ó τÑαѺ Γ«τ¬π óσ«ñá, Σπ¡¬µ¿ε
- WinMain, ¬«Γ«αá∩ «íδτ¡« ß«ñÑαª¿Γ µ¿¬½ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐.
- î«ñπ½∞ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ß«ºñáÑΓ «¬¡á ¿ ¡áτ¿¡áÑΓ
- óºá¿¼«ñÑ⌐ßΓó«óáΓ∞ ß »«½∞º«óáΓѽѼ τÑαѺ Windows. Å«¬á
- »«½∞º«óáΓѽ∞ óºá¿¼«ñÑ⌐ßΓóπÑΓ ß »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐, ß««íΘÑ¡¿∩
- »«ßδ½áεΓß∩ ¼«ñπ½ε »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, á «¡ ó«ºóαáΘáÑΓ
- π»αáó½Ñ¡¿Ñ Windows.
-
- DLL ∩ó½∩ÑΓß∩ óδ»«½¡∩Ñ¼δ¼ ¼«ñπ½Ñ¼, ¡Ñ ∩ó½∩εΘ¿¼ß∩ ºáñáτÑ⌐.
- èᬠ¿ ¼«ñπ½∞ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ñ¿¡á¼¿τÑ߬¿ »«ñß«Ññ¿¡∩Ѽδ⌐
- ¼«ñπ½∞ ¼«ªÑΓ ß«ñÑαªáΓ∞ Γ«τ¬π óσ«ñá. Åα¿ ºáúαπº¬Ñ ¬á¬ ¿ ó
- »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ óδºδóáÑΓß∩ Ñú« Γ«τ¬á óσ«ñá, ¡« «íδτ¡« ó
- φΓ«¼ ß½πτáÑ »α«¿ºó«ñ¿Γß∩ Γ«½∞¬« ¼¿¡¿¼á½∞¡á∩ ¿¡¿µ¿á½¿ºáµ¿∩. é
- «Γ½¿τ¿Ñ «Γ ¼«ñπ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ DLL ¡Ñ óºá¿¼«ñÑ⌐ßΓóπÑΓ ß
- »«½∞º«óáΓѽѼ τÑαѺ µ¿¬½ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐. é¼ÑßΓ« φΓ«ú« «¡
- ªñÑΓ «íαáΘÑ¡¿⌐ »α¿¬½áñ¡δσ »α«úαá¼¼ ºá ß«ñÑαªáΘ¿¼¿ß∩ ó ¡Ñ¼
- Σπ¡¬µ¿∩¼¿.
-
- î«ñ㫨 »α¿¬½áñ¡δσ »α«úαá¼¼ ∩ó½∩εΓß∩ á¬Γ¿ó¡δ¼¿ φ½Ñ¼Ñ¡ΓἿ
- Windows. Ä¡¿ »«½πτáε ß««íΘÑ¡¿∩, úÑ¡Ñα¿απѼδÑ ß¿ßΓѼ«⌐ ¿½¿
- »«½∞º«óáΓѽѼ, ¿ ó ß½πτáÑ ¡Ñ«íσ«ñ¿¼«ßΓ¿ óδºδóáεΓ í¿í½¿«ΓÑτ¡δÑ
- ¼«ñ㫨 ñ½∩ óδ»«½¡Ñ¡¿∩ ߻ѵ¿á½∞¡δσ Σπ¡¬µ¿⌐. ü¿í½¿«ΓÑτ¡δÑ ¼«ñπ½¿
- ßπΘÑßΓóπεΓ ñ½∩ «íÑß»ÑτÑ¡¿∩ Σπ¡¬µ¿⌐, ¡Ñ«íσ«ñ¿¼δσ »α¿¬½áñ¡δ¼
- »α«úαá¼¼á¼.
-
- Åα¿¼Ñτá¡¿Ñ: ìѬ«Γ«αδÑ DLL ¡Ñ »«½¡«ßΓ∞ε »áßß¿ó¡δ. ìá»α¿¼Ñα,
-
- Windows 3.0/pg/3#3 = 110 =
-
- ¡Ñ¬«Γ«αδÑ DLL ∩ó½∩εΓß∩ ñαá⌐óÑαἿ πßΓα«⌐ßΓó, π»αáó½∩Ñ¼δ¼¿ τÑαѺ
- »αÑαδóá¡¿∩, ¬á¬, ¡á»α¿¼Ñα, ¬½áó¿áΓπαá, ¼δΦ∞ ¿½¿
- ¬«¼¼π¡¿¬áµ¿«¡¡δ⌐ »«αΓ. Äñ¡á¬« óºá¿¼«ñÑ⌐ßΓó¿Ñ ß Γᬿ¼¿
- í¿í½¿«ΓѬἿ »«½¡«ßΓ∞ε π»αáó½∩ÑΓß∩, ñ½∩ ¿ß¬½ετÑ¡¿∩ ¡áαπΦÑ¡¿∩
- αáí«Γδ Windows. ìỿßá¡¿Ñ DLL, ¿úαáεΘ¿σ Γá¬πε á¬Γ¿ó¡πε α«½∞,
- «»¿ßá¡« ó αáºñÑ½Ñ 20.2.4, "äαá⌐óÑαδ πßΓα«⌐ßΓó".
- 20.1.4 DLL ¿ ßΓѬ¿.
-
- î«ñπ½∞ DLL ó «Γ½¿τ¿Ñ «Γ ¼«ñπ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¡Ñ
- ¿¼ÑÑΓ ßΓѬá. é¼ÑßΓ« φΓ«ú« ñ½∩ σαá¡Ñ¡¿∩ »áαá¼ÑΓα«ó ¿ ½«¬á½∞¡δσ
- »ÑαѼѡ¡δσ «¡á ¿ß»«½∞ºπÑΓ ßΓѬ, óδºδóáεΘÑ⌐ ÑÑ »α«úαá¼¼δ. ¥Γ«
- ¼«ªÑΓ ß«ºñáΓ∞ »α«í½Ñ¼δ, ¬«úñá DLL óδºδóáÑΓ Σπ¡¬µ¿ε, ¬«Γ«αá∩
- »«ñαáºπ¼ÑóáÑΓ, τΓ« ó αÑú¿ßΓαáσ DS ¿ SS σαá¡¿Γß∩ ëà ªÑ áñαÑß.
- ùáΘÑ óßÑú« φΓá »α«í½Ñ¼á 󫺡¿¬áÑΓ ó DLL, ¿ß»«½∞ºπεΘ¿σ ¼á½πε ¿
- ßαÑñ¡εε ¼«ñѽ¿ »á¼∩Γ¿, Γᬠ¬á¬ »« π¼«½τá¡¿ε ó φΓ¿σ ¼«ñѽ∩σ
- ¿ß»«½∞ºπεΓß∩ í½¿ª¡¿Ñ π¬áºáΓѽ¿.
-
- î¡«ú¿Ñ Σπ¡¬µ¿¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ »«ñαáºπ¼ÑóáεΓ, τΓ«
- ß«ñÑন¼«Ñ DS αáó¡« SS. ìÑ«íσ«ñ¿¼« ß«í½εñáΓ∞ «ßë᫪¡«ßΓ∞, »α¿
- ó맮óÑ Γᬿσ Σπ¡¬µ¿⌐ ¿º DLL.
-
- èα«¼Ñ φΓ«ú« DLL ¼«ªÑΓ óßΓαÑΓ¿Γ∞ Γαπñ¡«ßΓ¿ »α¿ ó맮óÑ
- »«½∞º«óáΓѽ∞߬¿σ Σπ¡¬µ¿⌐. Éáßß¼«Γα¿¼, ¡á»α¿¼Ñα, DLL, ¬«Γ«αá∩
- ß«ñÑαª¿Γ Σπ¡¬µ¿ε, «íΩ∩ó½∩εΘπε »ÑαѼѡ¡πε ó¡πΓα¿ Γѽá Σπ¡¬µ¿¿.
- ÇñαÑß φΓ«⌐ Σπ¡¬µ¿¿ íÑαÑΓß∩ «Γ¡«ß¿Γѽ∞¡« ßΓÑ¬á ºáñáτ¿, óδºóáóΦÑ⌐
- Σπ¡¬µ¿ε DLL. àß½¿ φΓá Σπ¡¬µ¿∩ »ÑαÑñáÑΓ Γá¬πε »ÑαѼѡ¡πε ñαπú«⌐
- Σπ¡¬µ¿¿ τÑαѺ í½¿ª¡¿⌐ π¬áºáΓѽ∞, óΓ«αá∩ Σπ¡¬µ¿∩ »«ñαáºπ¼ÑóáÑΓ,
- τΓ« áñαÑß íÑαÑΓß∩ «Γ¡«ß¿Γѽ∞¡« ßÑú¼Ñ¡Γá ñá¡¡δσ DLL, á ¡Ñ
- ßÑú¼Ñ¡Γá ßΓÑ¬á »α«úαá¼¼δ, óδºóáóΦÑ⌐ DLL.
-
- ì¿ªÑ »«¬áºá¡«, ¬á¬ Σπ¡¬µ¿∩ DLL ¼«ªÑΓ »ÑαÑñáóáΓ∞ ñá¡¡δÑ
- τÑαѺ ßΓѬ, á ¡Ñ τÑαѺ ßÑú¼Ñ¡Γ ñá¡¡δσ:
-
- void DLLFunction(WORD wMyWord)
- WORD wMyWord;
- {
- char szMyString[10];
- .
- .
- .
- AnotherFunction(szMyString);
- }
-
- àß½¿ AnotherFunction «íΩ∩ó½Ñ¡á ¬á¬ »«½πτáεΘá∩ í½¿ª¡¿⌐
- π¬áºáΓѽ∞ ¡á ¼áßß¿ó ß¿¼ó«½«ó (char NEAR *), Γ« «¡á
- ¿¡ΓÑα»αÑΓ¿απÑΓ áñαÑß ¬á¬ ß¼ÑΘÑ¡¿Ñ ó ßÑú¼Ñ¡ΓÑ ñá¡¡δσ, á ¡Ñ ó
- ßÑú¼Ñ¡ΓÑ ßΓÑ¬á ºáñáτ¿, óδºóáóΦÑ⌐ DLL.
-
- ùΓ«íδ íδΓ∞ πóÑαÑ¡¡δ¼ ó Γ«¼, τΓ« óáΦá DLL ¡Ñ »ÑαÑñáÑΓ
- »ÑαѼѡ¡δÑ ¿º ßΓѬá Σπ¡¬µ¿∩¼, ¬«Γ«αδÑ »«½πτáεΓ í½¿ª¡¿Ñ
- π¬áºáΓѽ¿, ¬«¼»¿½¿απ⌐ΓÑ DLL ß ¬½ετѼ ¬«¼»¿½∩Γ«αá -Aw. ¥Γ«
- »α¿ó«ñ¿Γ ¬ úÑ¡Ñαᵿ¿ »αÑñπ»αѪñáεΘÑú« ß««íΘÑ¡¿∩ óß∩¬¿⌐ αáº,
-
- Windows 3.0/pg/3#3 = 111 =
-
- ¬«úñá DLL óδºδóáÑΓ Σπ¡¬µ¿ε, »«ñαáºπ¼ÑóáεΘπε, τΓ« ó DS ¿ SS
- ¡áσ«ñ∩Γß∩ «ñ¿¡á¬«óδÑ º¡áτÑ¡¿∩. Åα¿ »«½πτÑ¡¿¿ Γᬫú« ß««íΘÑ¡¿∩
- óδ ¼«ªÑΓÑ πñ὿Γ∞ ó맮ó Σπ¡¬µ¿¿ ¿º DLL ¿½¿ »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δ⌐
- ¼«ñπ½∞ DLL Γᬿ¼ «íαẫ¼, τΓ«íδ ¡Ñ »α«¿ßσ«ñ¿½á »ÑαÑñáτá
- ßΓѬ«óδσ »ÑαѼѡ¡δσ τÑαѺ ßÑú¼Ñ¡Γ ñá¡¡δσ.
- 20.1.5 èᬠWindows ¿ΘÑΓ DLL.
-
- Windows «»αÑñѽ∩ÑΓ ¼ÑßΓ«»«½«ªÑ¡¿Ñ DLL, »α«ß¼áΓα¿óá∩
- ñ¿αÑ¬Γ«α¿¿ ΓѼ ªÑ ß»«ß«í«¼, ¬á¬ ¿ »α¿ »«¿ß¬Ñ ¼«ñπ½∩ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ. ä½∩ Γ«ú«, τΓ«íδ Windows ¡áΦ½á DLL, ¡Ñ«íσ«ñ¿¼«, τΓ«íδ
- «¡á ¡áσ«ñ¿½áß∞ ó «ñ¡«⌐ ¿º ß½ÑñπεΘ¿σ ñ¿αÑ¬Γ«α¿⌐:
-
- 1. ÆÑ¬πΘÑ⌐ ñ¿αÑ¬Γ«α¿¿.
-
- 2. ä¿αÑ¬Γ«α¿¿ Windows (ß«ñÑαªáΘÑ⌐ WIN.COM). öπ¡¬µ¿∩
- GetWindowsDirectory »«½πτáÑΓ ¼áαΦαπΓ φΓ«⌐ ñ¿αÑ¬Γ«α¿¿.
-
- 3. æ¿ßΓѼ¡πε ñ¿αÑ¬Γ«α¿ε Windows (ñ¿αÑ¬Γ«α¿ε, ß«ñÑαªáΘπε
- ß¿ßΓѼ¡δÑ Σá⌐½δ Windows, Γá¬¿Ñ ¬á¬ KERNEL.EXE). öπ¡¬µ¿∩
- GetSystemDirectory ó«ºóαáΘáÑΓ ¼áαΦαπΓ φΓ«⌐ ñ¿αÑ¬Γ«α¿¿.
-
- 4. ä¿αÑ¬Γ«α¿¿, »α¿óÑñÑ¡¡δÑ ó »ÑαѼѡ¡«⌐ ßαÑñδ PATH.
-
- 5. ä¿αÑ¬Γ«α¿¿ ¿º ß»¿ß¬á ñ¿αÑ¬Γ«α¿⌐, «Γ«íαáªáѼδσ ¡á ßÑΓ∞.
-
- Windows »α«ß¼áΓα¿óáÑΓ ñ¿αÑ¬Γ«α¿¿ ó π¬áºá¡¡«¼ »«α∩ñ¬Ñ.
-
- ìÑ∩ó¡« ºáúαπªáѼδÑ í¿í½¿«ΓѬ¿ ñ«½ª¡δ ¿¼ÑΓ∞ αáßΦ¿αÑ¡¿Ñ DLL.
-
- é ñá¡¡«¼ αáºñÑ½Ñ «»¿ßá¡«, τΓ« ñѽáεΓ DLL ó ¬«¡ΓѬßΓÑ ßαÑñδ
- Windows. é ß½ÑñπεΘѼ αáºñÑ½Ñ «»¿ßá¡«, τΓ« ¼«úπΓ ñѽáΓ∞ DLL ñ½∩
- óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
- 20.2 è«úñá ¿ß»«½∞º«óáΓ∞ ß«íßΓóÑ¡¡δÑ DLL.
-
- ò«Γ∩ DLL ∩ó½∩εΓß∩ µÑ¡Γα«¼ áασ¿ΓѬΓπαδ Windows, ñ½∩
- »α¿¬½áñ¡δσ »α«úαá¼¼ «¡¿ ¡Ñ ∩ó½∩εΓß∩ ¡Ñ«íσ«ñ¿¼δ¼ ¬«¼»«¡Ñ¡Γ«¼.
- éáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á, ¡Ñ ¿ß»«½∞ºπεΘá∩ DLL, »α«ßΓ«
- πóѽ¿τ¿óáÑΓ ºáΓαáΓδ Windows ¡á π»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε. àß½¿ óδ
- αáºñѽ¿ΓÑ óáΦπ »α¿¬½áñ¡πε »α«úαá¼¼π ¡á «Γñѽ∞¡δÑ ¬«ñ«óδÑ
- ßÑú¼Ñ¡Γδ, Windows óδ»«½¡¿Γ ¡Ñ¬«Γ«αδ⌐ α«ñ ñ¿¡á¼¿τÑ߬«⌐ ßó∩º¿
- ¼Ñªñπ ßÑú¼Ñ¡ΓἿ, τΓ«íδ «íÑß»Ñτ¿Γ∞ ¡á¿í«½ÑÑ φΣΣÑ¬Γ¿ó¡«Ñ
- π»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε. ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε »« »«ó«ñπ
- ¿ß»«½∞º«óá¡¿∩ ¡Ñ߬«½∞¬¿σ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó óδ ¡á⌐ñÑΓÑ ó ú½áóÑ
- 16, "àΘÑ «í π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε".
-
- Äñ¡á¬«, ¬α«¼Ñ óßÑú« »α«τÑú«, DLL ¿ß»«½∞ºπεΓß∩ ñ½∩:
-
- - Éáºñѽѡ¿∩ ¬«ñá ¿ αÑßπαß«ó ¼Ñªñπ »α¿¬½áñ¡δ¼¿
- »α«úαἼἿ.
-
- - ô»α«ΘÑ¡¿∩ ¼«ñ¿Σ¿¬áµ¿¿ »α«úαá¼¼ ñ½∩ αẽ¿τ¡δσ α뭪«ó.
-
- Windows 3.0/pg/3#3 = 112 =
-
-
- - ö¿½∞Γαᵿ¿ ß««íΘÑ¡¿⌐ ó« óßÑ⌐ ß¿ßΓѼÑ.
-
- - 櫺ñá¡¿∩ ñαá⌐óÑα«ó πßΓα«⌐ßΓó.
-
- - ÄíÑß»ÑτÑ¡¿∩ ñ½∩ αÑñá¬Γ«αá ñ¿á½«úá (DIALOG) »«ññÑ᪬¿
- óáΦ¿σ ß«íßΓóÑ¡¡δσ í½«¬«ó π»αáó½Ñ¡¿∩.
-
- - ÄíÑß»ÑτÑ¡¿∩ αáºαáí«Γ¬¿ ß½«ª¡δσ »α¿¬½áñ¡δσ »α«úαá¼¼.
-
- é ñá¡¡«¼ αáºñÑ½Ñ ¼δ «íßπñ¿¼ αẽ¿τ¡δÑ ¬α¿ΓÑα¿¿, ¬«Γ«αδÑ
- »«¼«úπΓ ¡á¼ αÑΦ¿Γ∞, ¡πª¡« ½¿ ¿ß»«½∞º«óáΓ∞ DLL.
- 20.2.1 Éáºñѽѡ¿Ñ ¼Ñªñπ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ.
-
- DLL ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ αáºñѽѡ¿∩ «íΩÑ¬Γ«ó ¼Ñªñπ
- »α¿¬½áñ¡δ¼¿ »α«úαἼἿ. ìѬ«Γ«αδÑ Γ¿»δ «íΩÑ¬Γ«ó, ó¬½ετá∩ ¬«ñ ¿
- αÑßπαßδ, ¼«úπΓ ßó«í«ñ¡« αáºñѽ∩Γ∞ß∩ τÑαѺ DLL. Éáºñѽѡ¿Ñ
- ñαπú¿σ Γ¿»«ó «íΩÑ¬Γ«ó, ó¬½ετáεΘ¿σ ñá¡¡δÑ ¿ ñÑß¬α¿»Γ«αδ Σá⌐½«ó,
- ¡á¼¡«ú« í«½ÑÑ «úαá¡¿τÑ¡«. ¥Γ« »α«¿ßσ«ñ¿Γ «Γ Γ«ú«, τΓ«
- ñÑß¬α¿»Γ«αδ Σá⌐½«ó ¿ ñá¡¡δÑ ¡áσ«ñ∩Γß∩ ó áñαÑß¡«¼ »α«ßΓαá¡ßΓóÑ
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. Å«»δΓ¬á αáºñѽѡ¿∩ ñÑß¬α¿»Γ«αá Σá⌐½á ¿½¿
- ñá¡¡δσ (ºá ¿ß¬½ετÑ¡¿Ñ¼ DDE, ß¿ßΓѼ¡«ú« íπΣÑαá ¿ ßÑú¼Ñ¡Γá ñá¡¡δσ
- DLL) ¼«ªÑΓ »α¿óÑßΓ¿ ¬ ¡Ñ»αÑñ߬áºπÑ¼δ¼ αѺπ½∞ΓáΓá¼ ¿ 󫺼«ª¡«
- íπñÑΓ ¡Ñß«ó¼ÑßΓ¿¼« ß« ß½ÑñπεΘ¿¼¿ óÑαß¿∩¼¿ Windows.
-
- é ñá¡¡«¼ αáºñÑ½Ñ «»¿ßá¡«, ¬á¬ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ DLL Γá¬,
- τΓ«íδ »α¿¬½áñ¡δÑ »α«úαá¼¼δ ¼«ú½¿ αáºñѽ∩Γ∞ ¬«ñ ¿ αÑßπαßδ.
-
- Éáºñѽѡ¿Ñ ¬«ñá.
-
- àß½¿ óδ αáºαáíáΓδóáÑΓÑ ßѼÑ⌐ßΓó« »α¿¬½áñ¡δσ »α«úαá¼¼, Γ«,
- 󫺼«ª¡«, óδ ºáσ«Γ¿ΓÑ ¿ß»«½∞º«óáΓ∞ «ñ¡π ¿½¿ í«½∞ΦÑ DLL. DLL
- »«ºó«½∩ÑΓ π¼Ñ¡∞Φ¿Γ∞ ¡Ñ«íσ«ñ¿¼πε »á¼∩Γ∞, ¬«úñá ÑÑ »α«µÑñπαδ
- ¿ß»«½∞ºπεΓ ñóÑ ¿½¿ í«½ÑÑ »α¿¬½áñ¡δσ »α«úαá¼¼, αáí«ΓáεΘ¿σ
- «ñ¡«óαѼѡ¡«. DLL »«ºó«½∩ÑΓ ¡Ñ߬«½∞¬¿¼ »α¿¬½áñ¡δ¼ »α«úαá¼¼á¼
- αáºñѽ∩Γ∞ »α«µÑñπαδ, ¬«Γ«αδÑ »α¿ ¿ß»«½∞º«óá¡¿¿ ßΓáΓ¿τÑ߬¿σ
- í¿í½¿«ΓѬ í뫨 íδ «ñ¿¡á¬«óδ.
-
- ÅαÑñ»«½«ª¿¼, τΓ« óδ ß«ºñáÑΓÑ ñóÑ úαáΣ¿τÑ߬¿Ñ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ, «ñ¡á ¿º ¬«Γ«αδσ óÑ¬Γ«α¡á∩ (α¿ß«óá¡¿∩), á ñαπúá∩
- αáßΓα«óá∩. ÄíΘÑÑ ΓαÑí«óá¡¿Ñ ¬ «í«¿¼ »α¿¬½áñ¡δ¼ »α«úαἼἠ- φΓ«
- 󫺼«ª¡«ßΓ∞ ¿¼»«αΓ¿α«óáΓ∞ ¿º«íαáªÑ¡¿∩, ß«ºñá¡¡δÑ ñαπú«⌐
- »α«úαá¼¼«⌐. éδ ¼«ªÑΓÑ ß«ºñáΓ∞ DLL ñ½∩ »«ññÑ᪬¿ ¬áªñ«ú«
- »«ññÑনóáѼ«ú« "ó¡ÑΦ¡Ñú«" Σ«α¼áΓá Σá⌐½á, ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞
- »αÑ«íαẫóá¡ ó« ó¡πΓαÑ¡¡¿⌐ Σ«α¼áΓ. çáΓѼ óáΦ¿ »α«úαá¼¼δ ¼«úπΓ
- »αÑ«íαẫóδóáΓ∞ ñá¡¡δÑ ó ß«íßΓóÑ¡¡δ⌐ Σ«α¼áΓ. Æá¬¿¼ «íαẫ¼,
- ßἿ¼ »α¿¬½áñ¡δ¼ »α«úαἼἠ¡Ñ«íσ«ñ¿¼« ¿¼ÑΓ∞ Γ«½∞¬« »α«µÑñπαδ
- »αÑ«íαẫóá¡¿∩ ó¡πΓαÑ¡¡Ñú« Σ«α¼áΓá ó ßó«⌐ ß«íßΓóÑ¡¡δ⌐ Σ«α¼áΓ.
- Åα¿ ñ«íáó½Ñ¡¿¿ ¬«¡óÑαΓÑαá ñ½∩ ¡«ó«ú« Σ«α¼áΓá Σá⌐½á óá¼ ¡πª¡«
- ½¿Φ∞ ß«ºñáΓ∞ ¡«óπε DLL, «íÑß»Ñτ¿óáεΘπε φΓ« »αÑ«íαẫóá¡¿Ñ, ¿
- »ÑαÑß½áΓ∞ ÑÑ óáΦ¿¼ »«½∞º«óáΓѽ∩¼ ó¼ÑßΓ« Γ«ú«, τΓ«íδ
- »ÑαѬ«¼»¿½¿α«óáΓ∞ ßἿ ¼«ñ㫨 »α¿¬½áñ¡δσ »α«úαá¼¼.
-
- Windows 3.0/pg/3#3 = 113 =
-
-
- Éáºñѽѡ¿Ñ αÑßπαß«ó.
-
- ÉÑßπαßδ - φΓ« «íΩѬΓδ ñá¡¡δσ, »αÑñ¡áº¡áτÑ¡¡δÑ Γ«½∞¬« ñ½∩
- τΓÑ¡¿∩, ¬«Γ«αδÑ »«ñ¬½ετáεΓß∩ ¬ óδ»«½¡∩Ѽ«¼π Σá⌐½π ¬«¼»¿½∩Γ«α«¼
- αÑßπαß«ó (RC). ÉÑßπαßδ ¼«ª¡« ñ«íáó¿Γ∞ ¬á¬ ¬ .EXE Σá⌐½π, Γᬠ¿ ¬
- Σá⌐½π DLL. Windows »«ññÑনóáÑΓ ó«ßѼ∞ óßΓα«Ñ¡¡δσ Γ¿»«ó
- αÑßπαß«ó:
-
- - Æáí½¿µδ π߬«α¿ΓѽÑ⌐.
-
- - ÉáßΓα«óδÑ ¬áαΓδ.
-
- - èπαß«αδ.
-
- - ÿáí½«¡δ »á¡Ñ½Ñ⌐ ñ¿á½«úá.
-
- - ÿα¿ΣΓδ.
-
- - ꬫ¡δ.
-
- - ÿáí½«¡δ ¼Ñ¡ε.
-
- - Æáí½¿µδ ßΓ᫬.
-
- èα«¼Ñ ßΓá¡ñáαΓ¡δσ αÑßπαß«ó Windows óδ ¼«ªÑΓÑ ß«ºñáΓ∞
- ß«íßΓóÑ¡¡δÑ αÑßπαßδ ¿ »«ñ¬½ετ¿Γ∞ ¿σ ¬ óδ»«½¡∩Ѽ«¼π Σá⌐½π.
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε »« »«ó«ñπ αÑßπαß«ó óδ ¡á⌐ñÑΓÑ ó ú½áóÑ
- 16, "àΘÑ «í π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε".
-
- ÉÑßπαßδ ó DLL ¼«úπΓ αáºñѽ∩Γ∞ß∩ ¼Ñªñπ »α¿¬½áñ¡δ¼¿
- »α«úαἼἿ, φΓ« »«ºó«½∩ÑΓ ßφ¬«¡«¼¿Γ∞ ¼ÑßΓ« »α¿ ¿ß»«½∞º«óá¡¿¿ ó
- αạδσ »α«úαá¼¼áσ «ñ¡¿σ ¿ ΓÑσ ªÑ αÑßπαß«ó.
-
- ÉÑßπαßδ, αáß»«½«ªÑ¡¡δÑ ó DLL, ¼«úπΓ ßó«í«ñ¡«
- ¿ß»«½∞º«óáΓ∞ß∩ ó ½εí«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ. Äñ¡á¬« ó᪡«,
- τΓ«íδ ¬áªñá∩ »α«úαá¼¼á ∩ó¡« ºá»αáΦ¿óá½á ¬áªñδ⌐ ¡πª¡δ⌐ Ñ⌐
- αÑßπαß. ìá»α¿¼Ñα, Ñß½¿ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ αÑßπαß ¼Ñ¡ε ß
- ¿¼Ñ¡Ñ¼ MainMenu, ¬«Γ«αδ⌐ αáß»«½«ªÑ¡ ó í¿í½¿«ΓÑ¬Ñ MENULIB.DLL,
- Γ« »α«úαá¼¼á íπñÑΓ ß«ñÑαªáΓ∞ ß½ÑñπεΘ¿Ñ ßΓ᫬¿:
-
- HANDLE hLibrary;
- HMENU hMenu;
-
- hLibrary = LoadLibrary("MENULIB.DLL");
-
- hMenu = LoadMenu(hLibrary,"MainMenu");
- 20.2.2 î«ñ¿Σ¿¬áµ¿∩ »α«úαá¼¼ ñ½∩ αẽ¿τ¡δσ α뭪«ó.
-
- éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ DLL ñ½∩ ¼«ñ¿Σ¿¬áµ¿¿ »α«úαá¼¼ »«ñ
- αẽ¿τ¡δÑ α뭪¿. ä½∩ ¬áªñ«ú« α뭪á óδ ß«ºñáÑΓÑ DLL, ¬«Γ«αá∩
- ß«ñÑαª¿Γ ¬«ñ, ñá¡¡δÑ ¿ αÑßπαßδ, ߻ѵ¿Σ¿τ¡δÑ ñ½∩ ñá¡¡«ú« α뭪á.
-
- Windows 3.0/pg/3#3 = 114 =
-
- éδ ¡Ñ »ÑαÑαáíáΓδóáÑΓÑ »«½¡«ßΓ∞ε ¼«ñ㫨 »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ñ½∩
- ¬áªñ«ú« α뭪á. é¼ÑßΓ« φΓ«ú« óδ ß«ºñáÑΓÑ «ß¡«ó¡πε »α«úαá¼¼π,
- ¿ß»«½∞ºπεΘπε ߻ѵ¿Σ¿τ¡πε ñ½∩ αδ¡¬á ¿¡Σ«α¼áµ¿ε, ß«ñÑαªáΘπεß∩ ó
- DLL.
-
- DLL τáßΓ« ¿ß»«½∞ºπεΓß∩ ñ½∩ ¼«ñ¿Σ¿¬áµ¿¿ »α¿¬½áñ¡δσ »α«úαá¼¼
- »«ñ ¼Ñªñπ¡áα«ñ¡δÑ α뭪¿. DLL ¼«ªÑΓ ß«ñÑαªáΓ∞ ¿¡Σ«α¼áµ¿ε,
- ºáó¿ß¿¼πε «Γ ∩ºδ¬á ¿ ¬π½∞Γπαδ, »α«úαá¼¼δ, αáß»α«ßΓαá¡∩Ѽ«⌐ ó
- αẽ¿τ¡δσ ßΓαá¡áσ. ìá»α¿¼Ñα, »α¿¬½áñ¡¡á∩ »α«úαá¼¼á ¼«ªÑΓ
- ß«ßΓ«∩Γ∞ ¿º «ß¡«ó¡«ú« ¼«ñπ½∩ APPFILE.EXE ¿ ΓαÑσ í¿í½¿«ΓѬ,
- ß«ñÑαªáΘ¿σ ºáó¿ß¿¼πε «Γ ¿ß»«½∞ºπѼ«ú« ∩ºδ¬á ¿¡Σ«α¼áµ¿ε:
- ENGLISH.DLL, FRENCH.DLL ¿ GERMAN.DLL.
-
- Å«ß½Ñ πßΓá¡«ó¬¿ »α«ñπ¬Γá ¼«ª¡« óδíαáΓ∞ ¡πª¡πε í¿í½¿«ΓѬπ,
- ¬«Γ«αá∩ ß«ñÑαª¿Γ Φáí½«¡δ »á¡Ñ½Ñ⌐ ñ¿á½«úá, ¼Ñ¡ε, ßΓ᫬¿ ¿ ñαπúπε
- ¿¡Σ«α¼áµ¿ε ñ½∩ ñá¡¡«ú« ∩ºδ¬á.
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ αÑßπαß«ó í¿í½¿«ΓѬ¿ ñ½∩ ÑÑ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿
- óδ ¿ß»«½∞ºπÑΓÑ ñÑß¬α¿»Γ«α φ¬º¡¼»½∩αá í¿í½¿«ΓѬ¿. äÑß¬α¿»Γ«α
- φ¬ºÑ¼»½∩αá í¿í½¿«ΓѬ¿ ó«ºóαáΘáÑΓß∩ Σπ¡¬µ¿Ñ⌐ LoadLibrary:
-
- HANDLE hLibrary;
-
- hLibrary = LoadLibrary("FRENCH.DLL");
-
- ç¡áτÑ¡¿Ñ hLibrary ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ó« óßÑσ ß½πτá∩σ,
- ¬«úñá »α¿ ¿ß»«½∞º«óá¡¿¿ αÑßπαß«ó ¡Ñ«íσ«ñ¿¼ ñÑß¬α¿»Γ«α
- φ¬ºÑ¼»½∩αá. ìá»α¿¼Ñα, Ñß½¿ í¿í½¿«ΓѬá FRENCH.DLL ß«ñÑনΓ
- Φáí½«¡ ¼Ñ¡ε "MainMenu", Γ« »α«úαá¼¼á ºáúαπªáÑΓ ¼Ñ¡ε ¿
- «ßπΘÑßΓó½∩ÑΓ ¬ ¡Ñ¼π ñ«ßΓπ» ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- HMENU hMenu;
-
- hMenu = LoadMenu(hLibrary,"MainMenu");
- 20.2.3 ï«óπΦ¬¿ «¬«¡.
-
- Windows »«ºó«½∩ÑΓ »α¿¬½áñ¡δ¼ »α«úαἼἠ¿ß»«½∞º«óáΓ∞
- "½«óπΦ¬¿" ñ½∩ Σ¿½∞Γαᵿ¿ ß««íΘÑ¡¿⌐ ó« óßÑ⌐ ß¿ßΓѼÑ. ï«óπΦ¬á ó
- Windows - φΓ« Σπ¡¬µ¿∩, ¬«Γ«αá∩ »«½πτáÑΓ ¿ «íαáíáΓδóáÑΓ ß«íδΓ¿∩
- ñ« Γ«ú«, ¬á¬ «¡¿ »«ßδ½áεΓß∩ µ¿¬½π «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. Åα¿¼Ñα«¼ Γᬫ⌐ Σπ¡¬µ¿¿ ¼«ªÑΓ ß½πª¿Γ∞
- Σπ¡¬µ¿∩, «íαáíáΓδóáεΘá∩ ¡áªáΓ¿Ñ »«½∞º«óáΓѽѼ ¡á ¬½áó¿Φ¿.
-
- ê¼ÑÑΓß∩ ßѼ∞ Γ¿»«ó ½«óπΦѬ, ¬«Γ«αδÑ í«½ÑÑ »«ñα«í¡« «»¿ßá¡δ
- ó »Ñαó«¼ Γ«¼Ñ æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá.
-
- æ¿ßΓѼ¡δÑ ½«óπΦ¬¿ Windows ñ«½ª¡δ íδΓ∞ αÑ὿º«óá¡δ ß
- ¿ß»«½∞º«ó᡿Ѽ DLL ¿ ñ«½ª¡δ αáß»«½áúáΓ∞ß∩ ó Σ¿¬ß¿α«óá¡¡δσ
- ¬«ñ«óδσ ßÑú¼Ñ¡Γáσ. ¥Γ« ñѽáÑΓß∩ »«Γ«¼π, τΓ« ¬á¬ ¿ óß∩¬¿⌐
- ß¿ßΓѼ¡δ⌐ αÑßπαß ¬«ñ, ßó∩ºá¡¡δ⌐ ß ½«óπΦ¬«⌐, ñ«½ª¡Ñ¡ íδΓ∞
- ñ«ßΓπ»Ñ¡ ó ½εí«⌐ ¼«¼Ñ¡Γ. é ¡Ñ¬«Γ«αδσ ¬«¡Σ¿úπαᵿ∩σ ß EMS ¬«ñ,
- ºá ¿ß¬½ετÑ¡¿Ñ¼ ¬«ñá ó Σ¿¬ß¿α«óá¡¡δσ ßÑú¼Ñ¡Γáσ, αáß»«½áúáÑΓß∩ ó
-
- Windows 3.0/pg/3#3 = 115 =
-
- »á¼∩Γ¿ EMS, »α¿¡áñ½ÑªáΘÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ. Æá¬«Ñ
- αẼÑΘÑ¡¿Ñ ¡áºδóáÑΓß∩ "óδΦÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩". ä«ßΓπ»¡«ßΓ∞
- Γᬫú« ¬«ñá «úαá¡¿τÑ¡á »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐, ó½áñÑεΘÑ⌐ ñá¡¡«⌐
- «í½áßΓ∞ε »á¼∩Γ¿ EMS. ü«½ÑÑ Γ«ú«, ó맮ó φΓ«ú« ¬«ñá ¡Ñ
- «ßπΘÑßΓó½∩ÑΓß∩ ¿º ¬«¡ΓѬßΓá ºáúαπº¿óΦÑ⌐ ½«óπΦ¬π »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ. é ºáΘ¿ΘÑ¡¡«¼ αѪ¿¼Ñ Windows αáßß¼áΓα¿óáÑΓ
- Σ¿¬ß¿α«óá¡¡δ⌐ ¬«ñ í¿í½¿«ΓѬ¿ ¬á¬ «ß«íδ⌐ ß½πτá⌐ ñ½∩ Γ«ú«, τΓ«íδ
- ¼«ª¡« í佫 «ßπΘÑßΓó¿Γ∞ Ñú« ó맮ó. àñ¿¡ßΓóÑ¡¡á∩ ½«óπΦ¬á Windows,
- ¬«Γ«αá∩ ¡Ñ ΓαÑíπÑΓ αẼÑΘÑ¡¿∩ ó DLL, ¿¼ÑÑΓ Γ¿» WH_MSGFILTER,
- ¬«Γ«αá∩ ߻ѵ¿Σ¿τ¡á ñ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. èα«¼Ñ φΓ«ú«, »α¿
- αáí«ΓÑ ó ºáΘ¿ΘÑ¡¡«¼ αѪ¿¼Ñ (ßΓá¡ñáαΓ¡«¼ ¿½¿ αáßΦ¿αÑ¡¡«¼),
- »«ñαáºπ¼ÑóáÑΓß∩, τΓ« ß¿ßΓѼ¡δÑ ½«óπΦ¬¿ αáß»«½áúáεΓß∩ ó
- Σ¿¬ß¿α«óá¡¡«¼ ¬«ñ«ó«¼ ßÑú¼Ñ¡ΓÑ DLL.
- 20.2.4 äαá⌐óÑαδ πßΓα«⌐ßΓó.
-
- æΓá¡ñáαΓ¡δÑ ñαá⌐óÑαδ πßΓα«⌐ßΓó Windows αÑ὿º«óá¡δ ó ó¿ñÑ
- DLL. ì¿ªÑ »α¿óÑñÑ¡ ß»¿ß«¬ ¿¼Ñ¡, ¿ß»«½∞ºπѼδσ »« π¼«½τá¡¿ε ñ½∩
- í«½∞Φ¿¡ßΓóá ßΓá¡ñáαΓ¡δσ ñαá⌐óÑα«ó:
-
- äαá⌐óÑα ìạáτÑ¡¿Ñ
- ──────────────────────────────────────────────────────────
- COMM.DRV äαá⌐óÑα »«ß½Ññ«óáΓѽ∞¡«ú« »«αΓá.
-
- DISPLAY.DRV äαá⌐óÑα ó¿ñÑ« ñ¿ß»½Ñ∩.
-
- KEYBOARD.DRV äαá⌐óÑα ¬½áó¿áΓπαδ.
-
- MOUSE.DRV äαá⌐óÑα ¼δΦ¿.
-
- SOUND.DRV çóπ¬«ó«⌐ óδó«ñ.
-
- SYSTEM.DRV Æá⌐¼Ñα.
- ──────────────────────────────────────────────────────────
-
- öá⌐½ SYSTEM.INI «»αÑñѽ∩ÑΓ, ¬á¬¿Ñ ñαá⌐óÑαδ ¿¡ßΓá½½¿απεΓß∩
- »α¿ ºáúαπº¬Ñ Windows.
-
- äαá⌐óÑαδ ñ½∩ ¡ÑßΓá¡ñáαΓ¡δσ πßΓα«⌐ßΓó Γá¬ªÑ ñ«½ª¡δ íδΓ∞
- αÑ὿º«óá¡δ ó ó¿ñÑ ß«íßΓóÑ¡¡δσ DLL. Å«ß½Ñ φΓ«ú« αẽ¿τ¡δÑ
- »α¿¬½áñ¡δÑ »α«úαá¼¼δ ¼«úπΓ «ßπΘÑßΓó½∩Γ∞ ñ«ßΓπ» ¬ πßΓα«⌐ßΓóπ,
- ñαá⌐óÑα ßá¼ óδ»«½¡∩ÑΓ ¡Ñ«íσ«ñ¿¼πε ß¿¡σα«¡¿ºáµ¿ε ñ½∩
- »αÑñ«ΓóαáΘÑ¡¿∩ ¬«¡Σ½¿¬Γ«ó ñ«ßΓπ»á ¬ πßΓα«⌐ßΓóπ.
-
- ū߬«½∞¬π ó ½εí«⌐ ¼«¼Ñ¡Γ, á ¡Ñ Γ«½∞¬« ó Γ« óαѼ∩, ¬«úñá
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ πßΓα«⌐Γßó«, ¼«úπΓ »α«¿º«⌐Γ¿
- »αÑαδóá¡¿∩, ¬«ñ «íαáí«Γ¬¿ »αÑαδóá¡¿∩ ñ½∩ πßΓα«⌐ßΓóá ñ«½ªÑ¡
- αáß»«½áúáΓ∞ß∩ ó Σ¿¬ß¿α«óá¡¡«¼ ¬«ñ«ó«¼ ßÑú¼Ñ¡ΓÑ. é ¬«¡Σ¿úπαᵿ∩σ
- »á¼∩Γ¿ EMS ß í«½∞Φ¿¼ ΣαÑ⌐¼«¼ «Γ«íαáªÑ¡¿∩ Γ«½∞¬« ñ½∩
- Σ¿¬ß¿α«óá¡¡«ú« ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá DLL úáαá¡Γ¿απÑΓß∩, τΓ« «¡
- íπñÑΓ ñ«ßΓπ»Ñ¡ ó ½εí«⌐ óαѼ∩. é ºáΘ¿ΘÑ¡¡«¼ αѪ¿¼Ñ ΓᬪÑ
- ΓαÑíπÑΓß∩, τΓ«íδ Γᬫ⌐ ¬«ñ αáß»«½áúá½ß∩ ó ¬«ñ«ó«¼ ßÑú¼Ñ¡ΓÑ DLL.
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε »« »«ó«ñ𠬫¡Σ¿úπαᵿ⌐ »á¼∩Γ¿ óδ
-
- Windows 3.0/pg/3#3 = 116 =
-
- ¡á⌐ñÑΓÑ ó ú½áóÑ 16, "àΘÑ «í π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε".
-
- è«ñ «íαáí«Γ¬¿ »αÑαδóá¡¿∩ ó ñαá⌐óÑαÑ πßΓα«⌐ßΓóá ¡Ñ
- óδºδóáÑΓß∩ ¡á»α∩¼πε »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐. èα«¼Ñ φΓ«ú«, ΓᬿÑ
- ñαá⌐óÑαδ ¡Ñ ñ«½ª¡δ óδºδóáΓ∞ ¬«ñ »α¿¬½áñ¡δσ »α«úαá¼¼ ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ SendMessage, »«ß¬«½∞¬π ¡ÑΓ ¼Ñσá¡¿º¼á ß¿¡σα«¡¿ºáµ¿¿
- Γᬿσ ß««íΘÑ¡¿⌐ ß »α«µÑßß«¼ «íαáí«Γ¬¿ ¡«α¼á½∞¡δσ ß««íΘÑ¡¿⌐.
- Æá¬¿Ñ ó맮óδ ¼«úπΓ »α¿óÑßΓ¿ ¬ ¡Ñ«»αÑñѽѡ¡δ¼ ß«ßΓ«∩¡¿∩¼, »«ΓÑαÑ
- ñá¡¡δσ ¿ ¡Ñ»αÑñ߬áºπÑ¼δ¼ αѺπ½∞ΓáΓá¼.
-
- é¼ÑßΓ« φΓ«ú«, ñαá⌐óÑα πßΓα«⌐ßΓóá ñ«½ªÑ¡ «ª¿ñáΓ∞, »«¬á Ñú«
- ¡Ñ ºá»α«ß¿Γ »α¿¬½áñ¡á∩ »α«úαá¼¼á ¬½¿Ñ¡Γ, ΓᬠªÑ ¬á¬ ñαá⌐óÑα
- ¬«¼¼π¡¿¬áµ¿«¡¡«⌐ »α«úαá¼¼δ ñ«½ªÑ¡ «ª¿ñáΓ∞, »«¬á Ñú« ¡Ñ ºá»α«ß¿Γ
- »α¿¬½áñ¡á∩ »α«úαá¼¼á. é¼ÑßΓ« φΓ«ú« ñαá⌐óÑα ¼«ªÑΓ ñ½∩ »«ß佬¿
- ß««íΘÑ¡¿⌐ »α¿¬½áñ¡δ¼ »α«úαἼἠ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε
- PostMessage.
- 20.2.5 æ«íßΓóÑ¡¡δÑ í½«¬¿ π»αáó½Ñ¡¿∩.
-
- àß½¿ óδ αáºαáíáΓδóáÑΓÑ ß«íßΓóÑ¡¡δÑ í½«¬¿ π»αáó½Ñ¡¿∩, óδ
- ¼«ªÑΓÑ »«¼ÑßΓ¿Γ∞ ¬«ñ φΓ¿σ í½«¬«ó ó DLL. èᬠ«»¿ßá¡« ó "Tools",
- Dialog Editor (DIALOG) ¼«ªÑΓ ºáΓѼ «ßπΘÑßΓó½∩Γ∞ ñ«ßΓπ» ¬ DLL
- ñ½∩ «Γ«íαáªÑ¡¿∩ óáΦ¿σ í½«¬«ó π»αáó½Ñ¡¿∩ ó« óαѼ∩ αÑñá¬Γ¿α«óá¡¿∩
- »á¡Ñ½Ñ⌐ ñ¿á½«úá.
-
- ä½∩ Γ«ú«, τΓ«íδ í¿í½¿«ΓѬá óáΦÑú« í½«¬á π»αáó½Ñ¡¿∩ ¼«ú½á
- íδΓ∞ ¿ß»«½∞º«óá¡á Dialog Editor, óδ ñ«½ª¡δ «»αÑñѽ¿Γ∞ ¿
- φ¬ß»«αΓ¿α«óáΓ∞ Σπ¡¬µ¿¿, «»¿ßá¡¡δÑ ó ñá¡¡«¼ αáºñѽÑ. Åα¿¼Ñα
- »α«úαá¼¼δ Rainbow ¿½½εßΓα¿απÑΓ, ¬á¬ »¿ßáΓ∞ DLL ñ½∩ ß«íßΓóÑ¡¡δσ
- í½«¬«ó π»αáó½Ñ¡¿∩.
-
- é «»¿ßá¡¿∩σ ß½ÑñπεΘ¿σ Σπ¡¬µ¿⌐ "Class" ¿ß»«½∞ºπÑΓß∩ ¬á¬
- Φáí½«¡ ñ½∩ ¿¼Ñ¡¿ ¬½áßßá óáΦÑú« í½«¬á π»αáó½Ñ¡¿∩. ê¼∩ í½«¬á
- π»αáó½Ñ¡¿∩ - φΓ« Γ«ªÑ ßá¼«Ñ ¿¼∩, ¬«Γ«α«Ñ π¬áºδóáÑΓ »«½∞º«óáΓѽ∞
- ó Dialog Editor ñ½∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ í½«¬á π»αáó½Ñ¡¿∩. ê¼∩ í½«¬á
- π»αáó½Ñ¡¿∩ «íδτ¡« ß«ó»áñáÑΓ ß ¿¼Ñ¡Ñ¼ DLL, σ«Γ∩ φΓ« ¿ ¡Ñ
- «í∩ºáΓѽ∞¡«.
-
- Ä»¿ßá¡¿∩ ßΓαπ¬Γπα, Γᬿσ ¬á¬ CTLINFO, ¿ ¬«¡ßΓá¡Γ,
- «»αÑñѽ∩εΘ¿σ ¿¡ΓÑαΣÑ⌐ß ß Dialog Editor óáΦÑú« í½«¬á π»αáó½Ñ¡¿∩,
- ß«ñÑαªáΓß∩ ó Σá⌐½Ñ CUSTCNTL.H.
-
- é ñá¡¡«¼ αáºñÑ½Ñ «»¿ßá¡« ΦÑßΓ∞ Σπ¡¬µ¿⌐, ¬«Γ«αδÑ ñ«½ª¡á
- φ¬ß»«αΓ¿α«óáΓ∞ DLL ñ½∩ í½«¬á π»αáó½Ñ¡¿∩. öπ¡¬µ¿¿ ñ«½ª¡δ
- φ¬ß»«αΓ¿α«óáΓ∞ß∩ ß« ß½ÑñπεΘ¿¼¿ º¡áτÑ¡¿∩¼¿:
-
- ¥¬ß»«αΓ¿απѼá∩ Σπ¡¬µ¿∩ ç¡áτÑ¡¿Ñ
- ───────────────────────────────────────────────────────────────
- WEP ïεí«Ñ τ¿ß½«, ºá ¿ß¬½ετÑ¡¿Ñ¼ 2 - 6.
-
- ClassInit ¿½¿ LibMain ìÑ ΓαÑíπÑΓß∩.
-
- ClassInfo 2
-
- Windows 3.0/pg/3#3 = 117 =
-
-
- ClassStyle 3
-
- ClassFlags 4
-
- ClassWndFn 5
-
- ClassDlgFn 6
- ───────────────────────────────────────────────────────────────
-
- ìá»α¿¼Ñα, Σπ¡¬µ¿¿, φ¬ß»«αΓ¿απѼδÑ ó »α¿¼ÑαÑ Rainbow,
- «íΩ∩ó½Ñ¡δ ó Σá⌐½Ñ RAINBOW.DEF ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- EXPORTS
- WEP @1 RESIDENTNAME
- RAINBOWINFO @2
- RAINBOWSTYLE @3
- RAINBOWFLAGS @4
- RAINBOWWNDFN @5
- RAINBOWDLGFN @6
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε « Σπ¡¬µ¿¿ LibMain óδ ¡á⌐ñÑΓÑ ó
- αáºñÑ½Ñ 20.3.1, "ê¡¿µ¿á½¿ºáµ¿∩ DLL". ä«»«½¡¿Γѽ∞¡á∩ ¿¡Σ«α¼áµ¿∩
- « Σπ¡¬µ¿¿ WEP ß«ñÑনΓß∩ ó αáºñÑ½Ñ 20.3.1, "çáóÑαΦÑ¡¿Ñ DLL".
-
- öπ¡¬µ¿∩ ClassInit.
-
- æ¿¡Γá¬ß¿ß
-
- HANDLE FAR PASCAL ClassInit(hInstance, wDataSegment,
- wHeapSize, lpszCmdLine);
-
- öπ¡¬µ¿∩ ClassInit «ΓóÑτáÑΓ ºá óßε ¿¡¿µ¿á½¿ºáµ¿ε,
- ¡Ñ«íσ«ñ¿¼πε ñ½∩ ¿ß»«½∞º«óá¡¿∩ ñ¿¡á¼¿τÑ߬¿ »«ñ¬½ετáѼ«⌐
- í¿í½¿«ΓѬ¿ óáΦÑú« í½«¬á π»αáó½Ñ¡¿∩. Æ«τ¬á óσ«ñá ¡á áßßѼí½ÑαÑ
- «íδτ¡« óδºδóáÑΓ φΓπ Σπ¡¬µ¿ε. èα«¼Ñ ß«σαá¡Ñ¡¿∩ ñÑß¬α¿»Γ«αá
- φ¬ºÑ¼»½∩αá ó ú½«íá½∞¡«⌐ ßΓáΓ¿τÑ߬«⌐ »ÑαѼѡ¡«⌐ φΓá Σπ¡¬µ¿∩
- ñ«½ª¡á ºáαÑú¿ßΓα¿α«óáΓ∞ ¬½áßß «¬¡á í½«¬á π»αáó½Ñ¡¿∩ ¿
- ¿¡¿µ¿á½¿º¿α«óáΓ∞ ½«¬á½∞¡πε ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞ »á¼∩Γ¿ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ LocalInit, Ñß½¿ φΓ«ú« ¡Ñ ñѽáÑΓ Γ«τ¬á óσ«ñá ¡á
- áßßѼí½ÑαÑ.
-
- àß½¿ óδ ¬«¼»«¡πÑΓÑ DLL í½«¬á π»αáó½Ñ¡¿∩ ß LIBENTRY.OBJ
- ó¼ÑßΓ« Γ«ú«, τΓ«íδ »¿ßáΓ∞ ¡á áßßѼí½ÑαÑ ß«íßΓóÑ¡¡πε Γ«τ¬π
- óσ«ñá, φΓá Σπ¡¬µ¿∩ ñ«½ª¡á ¿¼ÑΓ∞ ¿¼∩ LibMain. ä«»«½¡¿Γѽ∞¡πε
- ¿¡Σ«α¼áµ¿ε « Σπ¡¬µ¿¿ LibMain óδ ¡á⌐ñÑΓÑ ó αáºñÑ½Ñ 20.3.1,
- "ê¡¿µ¿á½¿ºáµ¿∩ DLL".
-
- Åáαá¼ÑΓα Æ¿»/Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- hInstance HANDLE êñÑ¡Γ¿Σ¿µ¿απÑΓ φ¬ºÑ¼»½∩α í¿í½¿«ΓѬ¿.
-
- wDataSegment WORD Ä»αÑñѽ∩ÑΓ ßÑú¼Ñ¡Γ ñá¡¡δσ í¿í½¿«ΓѬ¿.
-
- Windows 3.0/pg/3#3 = 118 =
-
-
- wHeapSize WORD Ä»αÑñѽ∩ÑΓ αẼÑα ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑß-
- ¬«⌐ «í½áßΓ¿ »á¼∩Γ¿ í¿í½¿«ΓѬ¿.
-
- lpszCmdLine LPSTR Ä»αÑñѽ∩ÑΓ áαúπ¼Ñ¡Γδ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿.
- ───────────────────────────────────────────────────────────────
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ - φΓ« ñÑß¬α¿»Γ«α φ¬ºÑ¼»½∩αá
- í¿í½¿«ΓѬ¿ ºáαÑú¿ßΓα¿α«óá¡¡«ú« ¬½áßßá í½«¬á π»αáó½Ñ¡¿∩ ó
- ß½πτáÑ, Ñß½¿ ¿¡¿µ¿á½¿ºáµ¿∩ »α«Φ½á πß»ÑΦ¡«. àß½¿ ¿¡¿µ¿á½¿ºáµ¿∩
- ºáóÑαΦ¿½áß∞ ¡Ñπñáτ¡«, Γ« ó«ºóαáΘáÑΓß∩ NULL.
-
- öπ¡¬µ¿∩ ClassInfo.
-
- æ¿¡Γá¬ß¿ß
-
- HANDLE FAR PASCAL ClassInfo()
-
- öπ¡¬µ¿∩ ClassInfo ß¡áíªáÑΓ óδºδóáεΘ¿⌐ »α«µÑßß ¿¡Σ«α¼áµ¿Ñ⌐
- « í¿í½¿«ΓÑ¬Ñ í½«¬á π»αáó½Ñ¡¿∩. ìá «ß¡«óÑ φΓ«⌐ ¿¡Σ«α¼áµ¿¿
- óδºδóáεΘ¿⌐ »α«µÑßß ¼«ªÑΓ ß«ºñáΓ∞ φ¬ºÑ¼»½∩αδ í½«¬á π»αáó½Ñ¡¿∩,
- ¿ß»«½∞ºπ∩ «ñ¿¡ ¿º »«ññÑনóáѼδσ Γ¿»«ó. ìá»α¿¼Ñα, Dialog Editor
- ºá»αáΦ¿óáÑΓ π φΓ«⌐ Σπ¡¬µ¿¿ Γ¿»δ í½«¬«ó π»αáó½Ñ¡¿∩, ¬«Γ«αδÑ
- »«ññÑনóáÑΓ í¿í½¿«ΓѬá.
-
- öπ¡¬µ¿∩ ¡Ñ ¿¼ÑÑΓ »áαá¼ÑΓα«ó.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ «»αÑñѽ∩ÑΓ ßΓαπ¬Γπαπ ñá¡¡δσ CTLINFO.
- ¥Γá ¿¡Σ«α¼áµ¿∩ ßΓá¡«ó¿Γ∞ß∩ »α¿¡áñ½ÑªáΘÑ⌐ óδºóáóΦѼπ »α«µÑßßπ.
- Å«ß½Ñ Γ«ú«, ¬á¬ ßΓαπ¬Γπαá í«½∞ΦÑ ¡Ñ ¡πª¡á, óδºóáóΦ¿⌐ »α«µÑßß
- ñ«½ªÑ¡ ∩ó¡« «ßó«í«ñ¿Γ∞ »á¼∩Γ∞ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GlobalFree. é
- ß½πτáÑ, Ñß½¿ ñ½∩ óδñѽѡ¿∩ ¼ÑßΓá »«ñ ßΓαπ¬Γπαπ ¡Ñ σóáΓáÑΓ
- »á¼∩Γ¿, Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ NULL.
-
- æΓαπ¬Γπαá CTLINFO «»αÑñѽ∩ÑΓ ¿¼∩ ¬½áßßá ¿ ¡«¼Ñα óÑαß¿¿.
- èα«¼Ñ φΓ«ú« «¡á ß«ñÑαª¿Γ ¼áßß¿ó ßΓαπ¬Γπα CTLTYPE, ¬«Γ«αδ⌐
- »αÑñßΓáó½∩ÑΓ ß«í«⌐ ß»¿ß«¬ ¿ß»«½∞ºπѼδσ ¬«¼í¿¡áµ¿⌐ Γ¿»«ó í½«¬á
- π»αáó½Ñ¡¿∩ (óáα¿á¡Γ«ó) ß ¬«α«Γ¬¿¼ «»¿ß᡿Ѽ ¿ ¿¡Σ«α¼áµ¿Ñ⌐ «
- αẼÑαÑ.
-
- ì¿ªÑ »α¿óÑñÑ¡« «»¿ßá¡¿Ñ φΓ¿σ ßΓαπ¬Γπα ¿ ºáó¿ß¿¼δσ
- º¡áτÑ¡¿⌐.
-
- /* «ß¡«ó¡δÑ Γ¿»δ ¿ «»αÑñѽѡ¿Ñ αẼÑα«ó */
- #define CTLTYPES 12
- #define CTLDESCR 22
- #define CTLCLASS 20
- #define CTLTITLE 94
-
- /* ßΓαπ¬Γπαá «»¿ßá¡¿∩ í½«¬á π»αáó½Ñ¡¿∩ */
- typedef struct {
-
- Windows 3.0/pg/3#3 = 119 =
-
- WORD wType;
- WORD wWidth;
- WORD wHeight;
- DWORD dwStyle;
- char szDescr[CTLDESCR];
- } CTLTYPE;
-
- typedef struct {
- WORD wVersion;
- WORD wCtlTypes;
- char szClass[CTLCLASS];
- char szTitle[CTLTITLE];
- char szReserved[10];
- CTLTYPE Type[CTLTYPES];
- } CTLINFO;
-
- typedef CTLINFO * PCTLINFO;
- typedef CTLINFO FAR * LPCTLINFO;
-
- æΓαπ¬Γπαá CTLTYPE ß«ñÑαª¿Γ ß½ÑñπεΘ¿Ñ »«½∩:
-
- Å«½Ñ Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- wType çáαѺÑαó¿α«óá¡« ñ½∩ »«ß½ÑñπεΘ¿σ αÑ὿ºáµ¿⌐.
- ¥Γ« »«½Ñ ñ«½ª¡« íδΓ∞ αáó¡« 0.
-
- wWidth Ä»αÑñѽ∩ÑΓ ñ½∩ Dialog Editor Φ¿α¿¡π í½«¬á
- π»αáó½Ñ¡¿∩, ¬«Γ«αá∩ »αÑñ½áúáÑΓß∩ »α¿ Ñú«
- ß«ºñá¡¿¿. àß½¿ ßá¼δ⌐ º¡áτ¿¼δ⌐ í¿Γ αáóÑ¡ ¡π½ε,
- Γ« ¼½áñΦ¿⌐ íá⌐Γ ß«ñÑαª¿Γ óѽ¿τ¿¡π »«
- π¼«½τá¡¿ε ó ¬««αñ¿¡áΓáσ ¬«¼»¿½∩Γ«αá αÑßπαß«ó.
- àß½¿ φëà íá⌐Γ αáóÑ¡ 1, Γ« «ßΓáóΦ¿Ñß∩ í¿Γδ
- «»αÑñѽ∩εΓ Φ¿α¿¡π í½«¬á π»αáó½Ñ¡¿∩ ó
- »¿¬ßѽ∩σ.
-
- wWidth Ä»αÑñѽ∩ÑΓ ñ½∩ Dialog Editor óδß«Γπ í½«¬á
- π»αáó½Ñ¡¿∩, ¬«Γ«αá∩ »αÑñ½áúáÑΓß∩ »α¿ Ñú«
- ß«ºñá¡¿¿. àß½¿ ßá¼δ⌐ º¡áτ¿¼δ⌐ í¿Γ αáóÑ¡ ¡π½ε,
- Γ« ¼½áñΦ¿⌐ íá⌐Γ ß«ñÑαª¿Γ óѽ¿τ¿¡π »«
- π¼«½τá¡¿ε ó ¬««αñ¿¡áΓáσ ¬«¼»¿½∩Γ«αá αÑßπαß«ó.
- àß½¿ φëà íá⌐Γ αáóÑ¡ 1, Γ« «ßΓáóΦ¿Ñß∩ í¿Γδ
- «»αÑñѽ∩εΓ óδß«Γπ í½«¬á π»αáó½Ñ¡¿∩ ó
- »¿¬ßѽ∩σ.
-
- dwStyle Ä»αÑñѽ∩ÑΓ ¿ßσ«ñ¡δÑ í¿Γδ Γ¿»á, ¿ß»«½∞ºπѼδÑ
- ñ½∩ «»αÑñѽѡ¿∩ ñá¡¡«ú« Γ¿»á. ¥Γ« º¡áτÑ¡¿Ñ
- ó¬½ετáÑΓ ¿ Σ½áú¿, «»αÑñѽ∩ѼδÑ í½«¬«¼
- π»αáó½Ñ¡¿∩ ó ßΓáαΦѼ ß½«óÑ, ¿ Σ½áú¿,
- «»αÑñѽ∩ѼδÑ Windows ó ¼½áñΦѼ ß½«óÑ.
-
- szDescr Ä»αÑñѽ∩ÑΓ ¿¼∩, ¿ß»«½∞ºπѼ«Ñ ñαπú¿¼¿ ßαÑñßΓ-
- óἿ αáºαáí«Γ¬¿ »α¿ ßß佬¿ ¡á ñá¡¡δ⌐ óáα¿á¡Γ
- í½«¬á π»αáó½Ñ¡¿∩. Dialog Editor ¡Ñ ¿ß»«½∞ºπÑΓ
- φΓπ ¿¡Σ«α¼áµ¿ε.
- ──────────────────────────────────────────────────────────────
-
- Windows 3.0/pg/3#3 = 120 =
-
-
- æΓαπ¬Γπαá CTLINFO ß«ñÑαª¿Γ ß½ÑñπεΘ¿Ñ »«½∩:
-
- Å«½Ñ Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- wVersion Ä»αÑñѽ∩ÑΓ ¡«¼Ñα óÑαß¿¿ í½«¬á π»αáó½Ñ¡¿∩. ò«-
- Γ∩ óδ ¼«ªÑΓÑ ¡áτáΓ∞ ¡π¼Ñαᵿε ß Ññ¿¡¿µδ, ó
- í«½∞Φ¿¡ßΓóÑ αÑ὿ºáµ¿⌐ ñóÑ ¼½áñΦ¿Ñ µ¿Σαδ
- ¿ß»«½∞ºπεΓß∩ ñ½∩ »αÑñßΓáó½Ñ¡¿∩ ¼½áñΦ¿σ µ¿Σα
- óÑαß¿¿.
-
- wCtlTypes Ä»αÑñѽ∩ÑΓ τ¿ß½« Γ¿»«ó í½«¬«ó π»αáó½Ñ¡¿∩, »«ñ-
- ñÑনóáѼδσ φΓ¿¼ ¬½áßß«¼. ¥Γ« º¡áτÑ¡¿Ñ ñ«½ª¡«
- íδΓ∞ óßÑúñá í«½∞ΦÑ 0 ¿ ¼Ñ¡∞ΦÑ CTLTYPES.
-
- szClass Ä»αÑñѽ∩ÑΓ ßΓ᫬π ß ¡π½Ñóδ¼ «¬«¡τ᡿Ѽ, ¬«Γ«-
- αá∩ ß«ñÑαª¿Γ ¿¼∩ ¬½áßßá í½«¬á π»αáó½Ñ¡¿∩,
- »«ññÑনóáѼ«ú« DLL.
-
- szTitle Ä»αÑñѽ∩ÑΓ ßΓ᫬π ß ¡π½Ñóδ¼ «¬«¡τ᡿Ѽ, ¬«Γ«-
- αá∩ ß«ñÑαª¿Γ αẽ¿τ¡πε ¿¡Σ«α¼áµ¿ε « ºáΘ¿ΓÑ
- áóΓ«α߬¿σ »αáó ¿½¿ «í áóΓ«αÑ, «Γ¡«ß∩Θπεß∩ ¬
- í½«¬π π»αáó½Ñ¡¿∩.
-
- Type[] Ä»αÑñѽ∩ÑΓ ¼áßß¿ó ßΓαπ¬Γπα CTLTYPE, ß«ñÑαªá-
- Θ¿σ ¿¡Σ«α¼áµ¿ε « ¬áªñ«¼ »«ññÑনóáѼ«¼ ñá¡¡δ¼
- ¬½áßß«¼ Γ¿»Ñ í½«¬«ó π»αáó½Ñ¡¿∩.
- ───────────────────────────────────────────────────────────────
-
- öπ¡¬µ¿∩ ClassStyle.
-
- æ¿¡Γá¬ß¿ß
-
- BOOL FAR PASCAL ClassStyle(hWnd, hCtlStyle, lpfnStrToId,
- lpfnIdToStr);
-
- Dialog Editor óδºδóáÑΓ Σπ¡¬µ¿ε ClassStyle ñ½∩ «Γ«íαáªÑ¡¿∩
- í½«¬á ñ¿á½«úá, »αÑñ¡áº¡áτÑ¡¡«ú« ñ½∩ αÑñá¬Γ¿α«óá¡¿∩ Γ¿»á
- óδíαá¡¡«ú« í½«¬á π»αáó½Ñ¡¿∩. Åα¿ ó맮óÑ φΓ«⌐ Σπ¡¬µ¿¿ «¡á ñ«½ª¡á
- «Γ«íαếΓ∞ ¼«ñá½∞¡πε »á¡Ñ½∞ ñ¿á½«úá, τΓ«íδ »«½∞º«óáΓѽ∞ ¼«ú
- «ΓαÑñá¬Γ¿α«óáΓ∞ »áαá¼ÑΓαδ CTLSTYLE. Å«½∞º«óáΓѽ∞߬¿⌐ ¿¡ΓÑαΣÑ⌐ß
- ñ«½ªÑ¡ ß«ó»áñáΓ∞ ß ¿¡ΓÑαΣÑ⌐ß«¼ »αÑñ«»αÑñѽѡ¡δσ í½«¬«ó
- π»αáó½Ñ¡¿∩, »«ññÑনóáѼδσ Dialog Editor.
-
- Åáαá¼ÑΓα Æ¿»/Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- hWnd HWND Ä»αÑñѽ∩ÑΓ α«ñ¿Γѽ∞߬«Ñ «¬¡« »á¡Ñ½¿
- ñ¿á½«úá.
-
- hCtlStyle HANDLE Ä»αÑñѽ∩ÑΓ ßΓαπ¬Γπαπ ñá¡¡δσ CTLSTYLE.
-
-
- Windows 3.0/pg/3#3 = 121 =
-
- lpfnStrToId LPFNSTRTOID ô¬áºδóáÑΓ ¡á Σπ¡¬µ¿ε, »αÑñ«ßΓáó-
- ½∩Ѽπε Dialog Editor, ¬«Γ«αá∩ »αÑ«íαáºπÑΓ
- ßΓ᫬π ó τ¿ß½«ó«⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α. 漫Γα¿ΓÑ
- αáºñѽ "諼¼Ñ¡Γáα¿¿" ¡¿ªÑ.
-
- lpfnIdToStr LPFNIDTOSTR ô¬áºδóáÑΓ ¡á Σπ¡¬µ¿ε, »αÑñ«ßΓáó-
- ½∩Ѽπε Dialog Editor, ¬«Γ«αá∩ »αÑ«íαáºπÑΓ
- τ¿ß½«ó«⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ó ßΓ᫬π. 漫Γα¿ΓÑ
- αáºñѽ "諼¼Ñ¡Γáα¿¿" ¡¿ªÑ.
- ───────────────────────────────────────────────────────────────
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- é ß½πτáÑ, Ñß½¿ ßΓαπ¬Γπαá CTLTYPE íδ½á ¿º¼Ñ¡Ñ¡á,
- ó«ºóαáΘáÑΓß∩ TRUE. àß½¿ »«½∞º«óáΓѽ∞ «Γ¼Ñ¡¿½ ¿º¼Ñ¡Ñ¡¿Ñ ¿½¿
- »α«¿º«Φ½á «Φ¿í¬á, ó«ºóαáΘáÑΓß∩ FALSE.
-
- 諼¼Ñ¡Γáα¿¿.
-
- æΓαπ¬Γπαá CTLSTYLE «»αÑñѽ∩ÑΓ áΓα¿íπΓδ óδíαá¡¡«ú« í½«¬á
- π»αáó½Ñ¡¿∩, ó¬½ετá∩ ΓѬπΘ¿Ñ Σ½áú¿ Γ¿»á, ¼ÑßΓ«»«½«ªÑ¡¿Ñ,
- αẼÑαδ ¿ ßó∩ºá¡¡δ⌐ ß ñá¡¡δ¼ í½«¬«¼ π»αáó½Ñ¡¿∩ ΓѬßΓ. 쿪Ñ
- »«¬áºá¡« «»αÑñѽѡ¿Ñ ßΓαπ¬Γπαδ CTLSTYLE:
-
- /* ßΓαπ¬Γπαá Γ¿»á í½«¬á π»αáó½Ñ¡¿∩ */
- typedef struct {
- WORD wX;
- WORD wY;
- WORD wCx;
- WORD wCy;
- WORD wId;
- DWORD dwStyle;
- char szClass[CTLCLASS];
- char szTitle[CTLTITLE];
- } CTLSTYLE;
-
- typedef CTLSTYLE * PCTLSTYLE;
- typedef CTLSTYLE FAR * LPCTLSTYLE;
-
- æΓαπ¬Γπαá CTLSTYLE ß«ñÑαª¿Γ ß½ÑñπεΘ¿Ñ »«½∩:
-
- Å«½Ñ Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- wX Ä»αÑñѽ∩ÑΓ σ-¬««αñ¿¡áΓπ í½«¬á π»αáó½Ñ¡¿∩ ó
- ¬««αñ¿¡áΓáσ φ¬αá¡á «Γ¡«ß¿Γѽ∞¡« «í½áßΓ¿
- »«½∞º«óáΓѽ∩ α«ñ¿Γѽ∞߬«ú« «¬¡á.
-
- wY Ä»αÑñѽ∩ÑΓ y-¬««αñ¿¡áΓπ í½«¬á π»αáó½Ñ¡¿∩ ó
- ¬««αñ¿¡áΓáσ φ¬αá¡á «Γ¡«ß¿Γѽ∞¡« «í½áßΓ¿
- »«½∞º«óáΓѽ∩ α«ñ¿Γѽ∞߬«ú« «¬¡á.
-
- wCx Ä»αÑñѽ∩ÑΓ Φ¿α¿¡π í½«¬á π»αáó½Ñ¡¿∩ ó ¬««αñ¿-
- ¡áΓáσ φ¬αá¡á.
-
- Windows 3.0/pg/3#3 = 122 =
-
-
- wCy Ä»αÑñѽ∩ÑΓ óδß«Γπ í½«¬á π»αáó½Ñ¡¿∩ ó ¬««αñ¿-
- ¡áΓáσ φ¬αá¡á.
-
- dwStyle Ä»αÑñѽ∩ÑΓ ΓѬπΘ¿⌐ Γ¿» í½«¬á π»αáó½Ñ¡¿∩. ¥Γ«
- º¡áτÑ¡¿Ñ ó¬½ετáÑΓ ¿ Σ½áú¿, «»αÑñѽ∩ѼδÑ
- í½«¬«¼ π»αáó½Ñ¡¿∩ ó ßΓáαΦѼ ß½«óÑ, ¿ Σ½áú¿,
- «»αÑñѽ∩ѼδÑ Windows ó ¼½áñΦѼ ß½«óÑ. éδ
- ¼«ªÑΓÑ »«ºó«½¿Γ∞ »«½∞º«óáΓÑ½ε ¿º¼Ñ¡¿Γ∞ φΓ¿
- Σ½áú¿ ¡á ½εí«Ñ º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ
- »«ññÑনóáÑΓß∩ óáΦ¿¼ í½«¬«¼ π»αáó½Ñ¡¿∩.
-
- szClass Ä»αÑñѽ∩ÑΓ ßΓ᫬π ß ¡π½Ñóδ¼ «¬«¡τ᡿Ѽ, ¬«Γ«-
- αá∩ ß«ñÑαª¿Γ ¿¼∩ ¬½áßßá ΓѬπΘÑú« í½«¬á
- π»αáó½Ñ¡¿∩. éδ ¡Ñ ¼«ªÑΓÑ »«ºó«½¿Γ∞
- »«½∞º«óáΓѽε αÑñá¬Γ¿α«óáΓ∞ φΓ« »«½Ñ, «¡«
- »α¿ó«ñ¿Γß∩ Γ«½∞¬« ñ½∩ ¿¡Σ«α¼áµ¿¿.
-
- szTitle Ä»αÑñѽ∩ÑΓ ßΓ᫬π ß ¡π½Ñóδ¼ «¬«¡τ᡿Ѽ, ¬«Γ«-
- αá∩ ß«ñÑαª¿Γ ΓѬßΓ, ßó∩ºá¡¡δ⌐ ß í½«¬«¼
- π»αáó½Ñ¡¿∩. Äíδτ¡« φëà ΓѬßΓ «Γ«íαáªáÑΓß∩
- ó¡πΓα¿ í½«¬á π»αáó½Ñ¡¿∩ ¿½¿ ¿ß»«½∞ºπÑΓß∩ ñ½∩
- ß«σαá¡Ñ¡¿∩ ñαπú«⌐ ¿¡Σ«α¼áµ¿¿, ΓαÑíπѼ«⌐ í½«¬π
- π»αáó½Ñ¡¿∩.
- ───────────────────────────────────────────────────────────────
-
- Dialog Editor «Γ߽Ѫ¿óáÑΓ «»αÑñѽ∩ѼδÑ »«½∞º«óáΓѽѼ ¿¼Ñ¡á
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó í½«¬«ó π»αáó½Ñ¡¿∩ ¿ ß««ΓóÑΓßΓóπεΘÑÑ ¿¼ ¿¼∩
- ß¿¼ó«½¿τÑ߬¿σ ¬«¡ßΓá¡Γ, ß«ñÑαªáΘ¿σß∩ ó« ó¬½ετáѼ«¼ Σá⌐½Ñ,
- ¬«Γ«αδ⌐ »«ñ¬½ετáÑΓß∩ ó ¼«¼Ñ¡Γ Γαá¡ß½∩µ¿¿. öπ¡¬µ¿∩ «»αÑñѽѡ¿∩
- Γ¿»á í½«¬á π»αáó½Ñ¡¿∩ »«½πτáÑΓ φΓπ ¿¡Σ«α¼áµ¿ε τÑαѺ Σπ¡¬µ¿¿
- lpfnStrToId ¿ lpfnIdToStr.
-
- Åáαá¼ÑΓαδ lpfnStrToId ¿ lpfnIdToStr «»αÑñѽ∩εΓ ñóÑ Γ«τ¬¿
- óσ«ñá ó Σπ¡¬µ¿¿ Dialog Editor. ä½∩ ó맮óá φΓ¿σ Σπ¡¬µ¿⌐ óδ
- ñ«½ª¡δ π¬áºáΓ∞ ¿σ »α«Γ«Γ¿»δ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- /* öπ¡¬µ¿¿ »αÑ«íαẫóá¡¿∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ó ßΓ᫬π */
- typedef WORD (FAR PASCAL * LPFNIDTOSTR)(WORD,LPSTR,WORD);
- typedef DWPRD (FAR PASCAL *LPFNSTRTOID)(LPSTR);
-
- Æ«τ¬á óσ«ñá lpfnIdToStr ó Dialog Editor »«ºó«½∩ÑΓ óá¼
- »αÑ«íαẫóáΓ∞ τ¿ß½«ó«Ñ º¡áτÑ¡¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá, ß«ñÑαªáΘÑú«ß∩ ó
- ßΓαπ¬ΓπαÑ CTLSTYLE, ó ΓѬßΓ«óπε ßΓ᫬π, ß«ñÑαªáΘπε
- ß¿¼ó«½¿τÑ߬«Ñ ¿¼∩ ¬«¡ßΓá¡Γδ, «»αÑñѽѡ¡«Ñ ó« ó¬½ετáѼ«¼ Σá⌐½Ñ.
- çáΓѼ φΓá ßΓα«¬á ¼«ªÑΓ íδΓ∞ «Γ«íαáªÑ¡á ó »á¡Ñ½¿ ñ¿á½«úá ó¼ÑßΓ«
- τ¿ß½«ó«ú« º¡áτÑ¡¿∩. ÅÑαóδ⌐ »áαá¼ÑΓα - φΓ« ¿ñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á
- π»αáó½Ñ¡¿∩. éΓ«α«⌐ »áαá¼ÑΓα - φΓ« ñá½∞¡¿⌐ π¬áºáΓѽ∞ ¡á íπΣÑα, ó
- ¬«Γ«αδ⌐ ºá¡«ß¿Γß∩ ßΓ᫬á, á ΓαÑΓ¿⌐ »áαá¼ÑΓα «»αÑñѽ∩ÑΓ
- ¼á¬ß¿¼á½∞¡πε ñ½¿¡π íπΣÑαá. öπ¡¬µ¿∩ lpfnIdToStr ó«ºóαáΘáÑΓ τ¿ß½«
- ߬«»¿α«óá¡¡δσ ó íπΣÑα ß¿¼ó«½«ó. àß½¿ Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¡«½∞,
- φΓ« «º¡áτáÑΓ, τΓ« ó맮ó ºá¬«¡τ¿½ß∩ ¡Ñπñáτ¡«.
-
-
- Windows 3.0/pg/3#3 = 123 =
-
- öπ¡¬µ¿∩ lpfnStrToId óδ»«½¡∩ÑΓ «íαáΓ¡«Ñ ñÑ⌐ßΓó¿Ñ,
- »αÑ«íαáºπ∩ ßΓ᫬π ó τ¿ß½«ó«⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α. öπ¡¬µ¿∩ »«½πτáÑΓ
- ßΓ᫬π, ß«ñÑαªáΘπε ¿¼∩ ß¿¼ó«½¿τÑ߬«⌐ ¬«¡ßΓá¡Γδ, ¿ ó«ºóαáΘáÑΓ
- ß««ΓóÑΓßΓóπεΘÑÑ º¡áτÑ¡¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá. àß½¿ ¼½áñΦÑÑ ß½«ó«
- ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ ¡Ñ αáó¡« 0, Γ« ßΓáαΦÑÑ ß½«ó« ß«ñÑনΓ
- º¡áτÑ¡¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá, ¬«Γ«α«Ñ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩
- ¼«ñ¿Σ¿¬áµ¿¿ ß«ñÑন¼«ú« »«½∩ wID ßΓαπ¬Γπαδ CTLSTYLE. àß½¿
- ¼½áñΦÑÑ ß½«ó« ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩ αáó¡« 0, Γ« ¬«¡ßΓá¡Γ¡«Ñ
- º¡áτÑ¡¿Ñ ñ½∩ ñá¡¡«ú« ¿¼Ñ¡¿ ¡Ñ «»αÑñѽѡ« ¿ Σπ¡¬µ¿∩ ClassStyle
- ñ«½ª¡δ óδñáΓ∞ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ.
-
- Äíδτ¡« »α¿ ó맮óÑ Σπ¡¬µ¿¿ ClassStyle «¡á óδºδóáÑΓ
- lpfnIdToStr, »ÑαÑñáóá∩ Ñ⌐ ß«ñÑন¼«Ñ »«½∩ CTLSTYLE.wID. àß½¿
- Σπ¡¬µ¿∩ lpfnIdToStr ó«ºóαáΘáÑΓ ¡Ñ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ, Γ«
- ClassStyle «Γ«íαáªáÑΓ »«½πτÑ¡¡πε ßΓ᫬π ó αáñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½Ñ¡¿∩, τΓ«íδ »«½∞º«óáΓѽ∞ ¼«ú ¿º¼Ñ¡¿Γ∞ ÑÑ. ê¡áτÑ, «¡á
- «Γ«íαáªáÑΓ τ¿ß½«ó«Ñ º¡áτÑ¡¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá. àß½¿ »«½∞º«óáΓѽ∞
- óδ»«½¡¿½ ¿º¼Ñ¡Ñ¡¿∩ ó í½«¬Ñ αÑñá¬Γ¿α«óá¡¿∩, Γ« classStyle
- óδºδóáÑΓ Σπ¡¬µ¿ε lpfnStrToId ñ½∩ »α«óÑન, τΓ« ßΓ᫬á
- «»αÑñѽ∩ÑΓ ß¿¼ó«½¿τÑ߬πε ¬«¡ßΓá¡Γπ, ¿ Ñß½¿ φΓ« Γá¬, ºá¼Ñ¡∩ÑΓ
- ß«ñÑন¼«Ñ »«½∩ CTLSTYLE.wID ¡á ß«ñÑন¼«Ñ ßΓáαΦÑú« ß½«óá
- ó«ºóαáΘáѼ«ú« º¡áτÑ¡¿∩.
-
- öπ¡¬µ¿∩ ClassDlgFn.
-
- æ¿¡Γá¬ß¿ß
-
- BOOL FAR PASCAL ClassDlgFn(hDlg,wMessage,wParam,lParam);
-
- öπ¡¬µ¿∩ ClassDlgFn - φΓ« »α«µÑñπαá «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐
- »á¡Ñ½¿ ñ¿á½«úá. Åá¡Ñ½∞ ñ¿á½«úá óδºδóáÑΓß∩ »α¿ ó맮óÑ Σπ¡¬µ¿¿
- ClassStyle. öπ¡¬µ¿∩ ClassDlgFn ñ«½ª¡á »«ºó«½∩Γ∞ »«½∞º«óáΓѽε
- αÑñá¬Γ¿α«óáΓ∞ óδíαá¡¡δÑ τáßΓ¿ ßΓαπ¬Γπαδ CTLSTYLE, »ÑαÑñá¡¡«⌐
- Σπ¡¬µ¿¿ ClassStyle.
-
- Åáαá¼ÑΓα Æ¿»/Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- hDlg HWND êñÑ¡Γ¿Σ¿µ¿απÑΓ «¬¡«, »«½πτáεΘÑÑ ß««í-
- ΘÑ¡¿Ñ.
-
- wMessage WORD Ä»αÑñѽ∩ÑΓ ß««íΘÑ¡¿Ñ.
-
- wParam WORD Ä»αÑñѽ∩ÑΓ »áαá¼ÑΓα ß««íΘÑ¡¿∩ αẼÑα«¼
- 16 í¿Γ.
-
- lParam LONG Ä»αÑñѽ∩ÑΓ »áαá¼ÑΓα ß««íΘÑ¡¿∩ αẼÑα«¼
- 32 í¿Γá.
- ───────────────────────────────────────────────────────────────
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ αáó¡« TRUE, Ñß½¿ Σπ¡¬µ¿∩ «íαáí«Γá½á
- ß««íΘÑ¡¿Ñ, ¿½¿ FALSE ó »α«Γ¿ó¡«¼ ß½πτáÑ.
-
- Windows 3.0/pg/3#3 = 124 =
-
-
- öπ¡¬µ¿∩ ClassFlags.
-
- æ¿¡Γá¬ß¿ß
-
- WORD FAR PASCAL ClassFlags(dwFlags,lpStyle,wMaxString);
-
- öπ¡¬µ¿∩ ClassFlags »αÑ«íαáºπÑΓ Σ½áú¿ Γ¿»á ¬½áßßá í½«¬á
- π»αáó½Ñ¡¿∩ ó ß««ΓóÑΓßΓóπεΘ¿Ñ ΓѬßΓ«óδÑ ßΓ᫬¿, »αÑñ¡áº¡áτÑ¡¡δÑ
- ñ½∩ óδó«ñá, ó Σá⌐½ «»¿ßá¡¿∩ αÑßπαß«ó. ¥Γá Σπ¡¬µ¿∩ ¡Ñ
- ¿¡ΓÑα»αÑΓ¿απÑΓ Σ½áú¿, ß«ñÑαªáΘ¿Ñß∩ ó ßΓáαΦѼ ß½«óÑ, »«ß¬«½∞¬π
- «¡¿ π»αáó½∩εΓß∩ Dialog Editor. çá¼ÑΓ¿¼, τΓ« óδ ñ«½ª¡δ
- ¿ß»«½∞º«óáΓ∞ ΓÑ ªÑ «»αÑñѽѡ¿∩ Γ¿»á í½«¬á π»αáó½Ñ¡¿∩, ¬«Γ«αδÑ
- »α¿óÑñÑ¡δ ó« ó¬½ετáѼ«¼ Σá⌐½Ñ óáΦÑú« í½«¬á π»αáó½Ñ¡¿∩.
-
- Åáαá¼ÑΓα Æ¿»/Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- dwFlags DWORD Ä»αÑñѽ∩ÑΓ ΓѬπΘ¿Ñ Σ½áú¿ í½«¬á π»αáó-
- ½Ñ¡¿∩.
-
- lpStyle LPSTR ô¬áºδóáÑΓ ¡á íπΣÑα, ó ¬«Γ«αδ⌐ »«¼ÑΘá-
- ÑΓß∩ ßΓα«¬á «»αÑñѽѡ¿∩ Γ¿»á.
-
- wMaxString WORD Ä»αÑñѽ∩ÑΓ ¼á¬ß¿¼á½∞¡πε ñ½¿¡π ßΓ᫬¿.
- ───────────────────────────────────────────────────────────────
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ φΓ« τ¿ß½« ß¿¼ó«½«ó, ߬«»¿α«óá¡¡δσ ó
- íπΣÑα, «»αÑñѽ∩Ѽδ⌐ »áαá¼ÑΓα«¼ lpStyle. àß½¿ »α«¿º«Φ½á «Φ¿í¬á,
- ó«ºóαáΘáÑΓß∩ 0.
-
- öπ¡¬µ¿∩ ClassWndFn.
-
- æ¿¡Γá¬ß¿ß
-
- LONG FAR PASCAL ClassWndFn(hWnd,wMessage,wParam,lParam);
-
- ClassWndFn - φΓ« Σπ¡¬µ¿∩ «¬¡á, «ΓóÑτáεΘá∩ ºá «íαáí«Γ¬π
- ß««íΘÑ¡¿⌐, »«ßδ½áѼδσ ñá¡¡«¼π í½«¬π π»αáó½Ñ¡¿∩.
-
- Åáαá¼ÑΓα Æ¿»/Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- hDlg HWND êñÑ¡Γ¿Σ¿µ¿απÑΓ «¬¡«, »«½πτáεΘÑÑ ß««í-
- ΘÑ¡¿Ñ.
-
- wMessage WORD Ä»αÑñѽ∩ÑΓ ß««íΘÑ¡¿Ñ.
-
- wParam WORD Ä»αÑñѽ∩ÑΓ »áαá¼ÑΓα ß««íΘÑ¡¿∩ αẼÑα«¼
- 16 í¿Γ.
-
- lParam LONG Ä»αÑñѽ∩ÑΓ »áαá¼ÑΓα ß««íΘÑ¡¿∩ αẼÑα«¼
- 32 í¿Γá.
- ───────────────────────────────────────────────────────────────
-
- Windows 3.0/pg/3#3 = 125 =
-
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ.
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ «»αÑñѽ∩ÑΓ αѺπ½∞ΓáΓ «íαáí«Γ¬¿
- ß««íΘÑ¡¿∩ ¿ ºáó¿ß¿Γ «Γ ¬«¡¬αÑΓ¡«ú« ß««íΘÑ¡¿∩.
- 20.2.6 ô»αáó½Ñ¡¿Ñ »α«Ñ¬ΓἿ.
-
- àß½¿ óδ αáºαáíáΓδóáÑΓÑ í«½∞Φπε ¿½¿ ß½«ª¡πε »α¿¬½áñ¡πε
- »α«úαá¼¼π, óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ DLL ñ½∩ «í½ÑúτÑ¡¿∩
- αáºαáí«Γ¬¿. äѽѡ¿Ñ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¡á »«½¡«ßΓ∞ε
- «»αÑñѽѡ¡δÑ »«ñß¿ßΓѼδ ∩ó½∩ÑΓß∩ ½«ú¿τ¡δ¼ »πΓѼ αáºñѽѡ¿∩
- αáí«Γδ ¼Ñªñπ αáº¡δ¼¿ úαπ»»á¼¿ αáºαáí«Γτ¿¬«ó. èáªñá∩ »«ñß¿ßΓѼá
- ¼«ªÑΓ íδΓ∞ ºáΓѼ αÑ὿º«óá¡á ó ó¿ñÑ DLL.
-
- Äñ¡«⌐ ¿º ß½«ª¡δσ ºáñáτ ó Γᬿσ »α«Ñ¬Γáσ ∩ó½∩ÑΓß∩
- «»αÑñѽѡ¿Ñ ¿¡ΓÑαΣÑ⌐ßá ñ½∩ ¬áªñ«⌐ »«ñß¿ßΓѼδ. ū߬«½∞¬π Σπ¡¬µ¿¿
- DLL ¼«úπΓ ßó«í«ñ¡« óδºδóáΓ∞ Σπ¡¬µ¿¿ ¿º ñαπú«⌐ DLL, Γᬿ¼
- «íαẫ¼ Windows ¡Ñ ß«ºñáÑΓ »αÑ»∩ΓßΓó¿⌐ »α¿ «»αÑñѽѡ¿¿
- »«ñß¿ßΓѼ. èα«¼Ñ φΓ«ú«, Windows π»αáó½∩ÑΓ »ÑαѼÑΘÑ¡¿Ñ¼ ¿
- ßíαáßδó᡿Ѽ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó ñ½∩ ¼¿¡¿¼¿ºáµ¿¿ »α«í½Ñ¼, τáßΓ«
- 󫺡¿¬áεΘ¿σ »ÑαÑñ αáºαáí«Γτ¿¬á¼¿ »α«úαá¼¼ ñ½∩ DOS ¿º-ºá
- «úαá¡¿τÑ¡¿⌐ »á¼∩Γ¿. ä½∩ ¿ß»«½∞º«óá¡¿∩ φΓ¿σ »αÑ¿¼πΘÑßΓó ¬«ñ«óδÑ
- ßÑú¼Ñ¡Γδ ñ«½ª¡δ íδΓ∞ «»αÑñѽѡδ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ (.DEF), ¬á¬ MOVEABLE ¿½¿ MOVEABLE ¿
- DISCARDABLE.
-
- Äñ¡¿¼ ¿º πñ«íßΓó ¿ß»«½∞º«óá¡¿∩ ¡Ñ߬«½∞¬¿σ DLL ∩ó½∩ÑΓß∩ Γ«,
- τΓ«, »«ß¬«½∞¬π ¬áªñá∩ DLL ¿¼ÑÑΓ ßó«⌐ ß«íßΓóÑ¡¡δ⌐ ßÑú¼Ñ¡Γ
- ñá¡¡δσ, Γ« óºá¿¼«ó½¿∩¡¿Ñ ñá¡¡δσ αạδσ »«ñß¿ßΓѼ íπñÑΓ
- ¼¿¡¿¼á½∞¡δ¼. ¥Γ«Γ Γ¿» ¿¡¬á»ßπ½∩µ¿¿ ¿ß»«½∞ºπÑΓß∩ »α¿ αáºαáí«Γ¬Ñ
- í«½∞Φ¿σ »α¿¬½áñ¡δσ »α«úαá¼¼.
-
- äαπú«⌐ Γ¿» ¿¡¬á»ßπ½∩µ¿¿ ¼«ªÑΓ ß«ºñáΓ∞ »α«í½Ñ¼δ ó í«½∞Φ«¼
- »α«Ñ¬ΓÑ, ¬«Γ«αδ⌐ ΓαÑíπÑΓ «ñ¡«óαѼѡ¡«⌐ αáí«Γδ ¡Ñ߬«½∞¬¿σ
- »α¿¬½áñ¡δσ »α«úαá¼¼. êß»«½∞ºπ∩ ëà Σá¬Γ, τΓ« ¬áªñá∩ »α¿¬½áñ¡á∩
- »α«úαá¼¼á αáßß¼áΓα¿óáÑΓß∩, ¬á¬ ¿¼ÑεΘá∩ ß«íßΓóÑ¡¡«Ñ áñαÑß¡«Ñ
- »α«ßΓαá¡ßΓó«, «¡á ¼«ªÑΓ »ÑαÑñáΓ∞ ú½«íá½∞¡δ⌐ í½«¬ »á¼∩Γ¿ Γ«½∞¬«
- ß »«¼«Θ∞ε Åα«Γ«¬«½á 信ἿτÑ߬«ú« Äí¼Ñ¡á äá¡¡δ¼¿ (DDE).
- 漫Γα¿ΓÑ ú½áóπ 22, "信ἿτÑ߬¿⌐ «í¼Ñ¡ ñá¡¡δ¼¿".
-
-
- 20.3 櫺ñá¡¿Ñ DLL.
-
- é ñá¡¡«¼ αáºñÑ½Ñ »α¿ó«ñ¿Γß∩ »α¿¼Ñα ¬«ñá, ¬«Γ«αδ⌐ óδ ¼«ªÑΓÑ
- ¿ß»«½∞º«óáΓ∞ ¬á¬ Φáí½«¡ »α¿ ß«ºñá¡¿¿ ß«íßΓóÑ¡¡δσ DLL.
-
- ä½∩ ß«ºñá¡¿∩ DLL óδ ñ«½ª¡δ ß«ºñáΓ∞ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ Γα¿
- Σá⌐½á:
-
- - öá⌐½ ß ¿ßσ«ñ¡δ¼ ¬«ñ«¼ ¡á æ.
-
-
- Windows 3.0/pg/3#3 = 126 =
-
- - öá⌐½ «»αÑñѽѡ¿∩ ¼«ñπ½∩ (.DEF).
-
- - Make-Σá⌐½.
-
- Å«ß½Ñ ß«ºñá¡¿∩ φΓ¿σ Σá⌐½«ó óδ ºá»π߬áÑΓÑ MAKE ñ½∩ ¿σ
- Γαá¡ß½∩µ¿¿ ¿ ¬«¼»«¡«ó¬¿. ÄßΓáóΦá∩ τáßΓ∞ φΓ«ú« αáºñÑ½á »«ßó∩ΘÑ¡á
- «»¿ßá¡¿ε Γ«ú«, ¬á¬ ß«ºñáΓ∞ φΓ¿ Σá⌐½δ.
- 20.3.1 櫺ñá¡¿Ñ Σá⌐½á ß ¿ßσ«ñ¡δ¼ ¬«ñ«¼ ¡á æ.
-
- é ñá¡¡«¼ αáºñÑ½Ñ »α¿ó«ñ¿Γß∩ ¿ßσ«ñ¡δ⌐ ¬«ñ, ¬«Γ«αδ⌐ óδ
- ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ¬á¬ Φáí½«¡ »α¿ ß«ºñá¡¿¿ DLL. èᬠ¿ ñαπú¿Ñ
- »α«úαá¼¼δ ¡á æ, DLL ¼«ªÑΓ ß«ñÑαªáΓ∞ ¡Ñ߬«½∞¬« Σπ¡¬µ¿⌐. éßÑ
- Σπ¡¬µ¿¿, ¬«Γ«αδÑ óδºδóáÑΓ ñαπúá∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿½¿ DLL,
- ñ«½ª¡δ íδΓ∞ «íΩ∩ó½Ñ¡δ ¬á¬ FAR ¿ »α¿óÑñÑ¡δ ó αáºñÑ½Ñ EXPORTS
- Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩ í¿í½¿«ΓѬ¿ (.DEF). öá⌐½ «»αÑñѽѡ¿∩
- ¼«ñπ½∩ í¿í½¿«ΓѬ¿ «íßπªñáÑΓß∩ ñá½ÑÑ ó αáºñÑ½Ñ 20.3.2, "櫺ñá¡¿Ñ
- Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩".
-
- /* MINDLL.C -- »α¿¼Ñα ¬«ñá DLL, ¬«Γ«αδ⌐ ñѼ«¡ßΓα¿απÑΓ
- ¼¿¡¿¼á½∞¡« ¡Ñ«íσ«ñ¿¼δ⌐ ñ½∩ DLL ¬«ñ */
-
- #include WINDOWS.H
-
- int FAR PASCAL LibMain(HANDLE hInstance,
- WORD wDataSeg,
- WORD cbHeapSize,
- LPSTR lpszCmdLine)
- {
- .
- .
- /* ê¡¿µ¿á½¿ºáµ¿∩ DLL */
- .
- .
- if(cbHeapSize != 0) /* Ñß½¿ ßÑú¼Ñ¡Γ ñá¡¡δσ DLL
- »ÑαѼÑΘáѼδ⌐ */
- UnlockData(0);
-
- return(1); /* ¿¡¿µ¿á½¿ºáµ¿∩ »α«Φ½á πß»ÑΦ¡« */
- }
-
- VOID FAR PASCAL MinRoutine (int iParam1,
- LPSTR lpszParam2)
- {
- char cLocalVariable; /* ½«¬á½∞¡á∩ »ÑαѼѡ¡á∩ ó ßΓÑ¬Ñ */
- .
- .
- /* ¬«ñ Σπ¡¬µ¿¿ MinRoutine */
- .
- .
- }
-
- VOID FAR PASCAL WEP (int nParameter)
-
- Windows 3.0/pg/3#3 = 127 =
-
- {
- if(nParameter == WEP_SYSTEMEXIT)
- {
- /* óδ»«½¡∩ÑΓß∩ ºáóÑαΦÑ¡¿Ñ αáí«Γδ ß¿ßΓѼδ.
- óδ»«½¡¿Γ∞ ß««ΓóÑΓßΓóπεΘ¿Ñ ñÑ⌐ßΓó¿∩ */
- return(1);
- }
- else
- {
- if(nParameter == WEP_FREE_DLL)
- {
- /* ßτÑΓτ¿¬ «íαáΘÑ¡¿⌐ ¬ DLL αáóÑ¡ 0. éßÑ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ, ºáúαπº¿óΦ¿Ñ DLL, πªÑ ÑÑ «ßó«í«ñ¿½¿. */
- return(1);
- }
- else
- {
- /* ¡Ñ¿ºóÑßΓ¡«Ñ º¡áτÑ¡¿Ñ. êú¡«α¿α«óáΓ∞ */
- return(1);
- }
- }
- }
-
- êßσ«ñ¡δ⌐ ¬«ñ DLL ¿ß»«½∞ºπÑΓ WINDOWS.H ΓᬠªÑ, ¬á¬ ¿
- «ßΓá½∞¡δÑ »α¿¬½áñ¡δÑ »α«úαá¼¼δ. WINDOWS.H ß«ñÑαª¿Γ «»αÑñѽѡ¿∩
- ñá¡¡δσ ¿ Γ¿»«ó, «»αÑñѽѡ¿∩ Γ«τѬ óσ«ñá API ¿ ñαπúπε
- ¿¡Σ«α¼áµ¿ε, ¿ß»«½∞ºπѼπε »α¿ »α«úαá¼¼¿α«óá¡¿¿.
-
- ÄíΩ∩ó½Ñ¡¿Ñ PASCAL «»αÑñѽ∩ÑΓ ß«ú½áΦÑ¡¿Ñ »« ó맮óπ ¿
- «τ¿ß⪥ ßΓѬá. ¥Γ« ¡Ñ ΓαÑíπÑΓß∩ ñ½∩ DLL, «ñ¡á¬« Ñú«
- ¿ß»«½∞º«óá¡¿Ñ »«ºó«½∩ÑΓ ß«ºñáΓ∞ τπΓ∞ ¼Ñ¡∞Φ¿⌐ ¿ í«½ÑÑ íδßΓαδ⌐
- ¬«ñ. æ«ú½áΦÑ¡¿Ñ »« ó맮óπ ∩ºδ¬á Pascal ¡Ñ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩
- ß Σπ¡¬µ¿∩¼¿, »«½πτáεΘ¿¼¿ »ÑαѼѡ¡«Ñ τ¿ß½« »áαá¼ÑΓα«ó, ¿½¿ ñ½∩
- ó맮óá Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ. é Γᬿσ ß½πτá∩σ ΓαÑíπÑΓß∩
- «íΩ∩ó½Ñ¡¿Ñ CDECL.
-
- öπ¡¬µ¿¿ MinRoutine »ÑαÑñáεΓß∩ ñóá »áαá¼ÑΓαá, «ñ¡á¬«
- Σπ¡¬µ¿¿ DLL ¼«úπΓ ¿¼ÑΓ∞ ßΓ«½∞¬« »áαá¼ÑΓα«ó, ߬«½∞¬« ¡πª¡«.
- àñ¿¡ßΓóÑ¡¡δ¼ «úαá¡¿τÑ¡¿Ñ¼ ∩ó½∩ÑΓß∩ Γ«, τΓ« Σπ¡¬µ¿∩¼ DLL ¼«ª¡«
- »ÑαÑñáóáΓ∞ Γ«½∞¬« ñá½∞¡¿Ñ π¬áºáΓѽ¿.
-
- ê¡¿µ¿á½¿ºáµ¿∩ DLL.
-
- éδ ñ«½ª¡δ ó¬½ετ¿Γ∞ ó DLL Σπ¡¬µ¿ε áóΓ«¼áΓ¿τÑ߬«⌐
- ¿¡¿µ¿á½¿ºáµ¿¿. ¥Γá Σπ¡¬µ¿∩ óδ»«½¡∩ÑΓß∩ Γ«½∞¬« «ñ¿¡ αẠ»α¿
- ºáúαπº¬Ñ í¿í½¿«ΓѬ¿. è«úñá ñαπú¿Ñ »α¿¬½áñ¡δÑ »α«úαá¼¼δ,
- ¿ß»«½∞ºπεΘ¿Ñ ñá¡¡πε í¿í½¿«ΓѬπ, ºáúαπªáεΓ ÑÑ, Windows ¡Ñ
- óδºδóáÑΓ Σπ¡¬µ¿ε ¿¡¿µ¿á½¿ºáµ¿¿, á »α«ßΓ« πóѽ¿τ¿óáÑΓ ßτÑΓτ¿¬
- ßß佫¬ ¡á DLL.
-
- Windows ñÑαª¿Γ í¿í½¿«ΓѬπ ó »á¼∩Γ¿, »«¬á ßτÑΓτ¿¬ ßß佫¬ ¡á
- ¡ÑÑ ¡Ñ αáóÑ¡ 0. àß½¿ «¡ ßΓá½ αáóÑ¡ 0, Γ« í¿í½¿«ΓѬá πñá½∩ÑΓß∩
- ¿º »á¼∩Γ¿. è«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á «»∩Γ∞ »δΓáÑΓß∩ ºáúαπº¿Γ∞
-
- Windows 3.0/pg/3#3 = 128 =
-
- í¿í½¿«ΓѬπ, ºá¡«ó« óδºδóáÑΓß∩ Σπ¡¬µ¿∩ ¿¡¿µ¿á½¿ºáµ¿¿.
-
- ì¿ªÑ »α¿óÑñÑ¡ ß»¿ß«¬ ºáñáτ, ¬«Γ«αδÑ ñ«½ª¡á óδ»«½¡¿Γ∞
- Σπ¡¬µ¿∩ ¿¡¿µ¿á½¿ºáµ¿¿:
-
- - çáαÑú¿ßΓα¿α«óáΓ∞ ¬½áßßδ «¬«¡ ñ½∩ Σπ¡¬µ¿⌐ «¬«¡,
- ß«ñÑαªáΘ¿σß∩ ó DLL.
-
- - ê¡¿µ¿á½¿º¿α«óáΓ∞ ½«¬á½∞¡πε ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞ »á¼∩Γ¿
- DLL.
-
- - ôßΓá¡«ó¿Γ∞ ¿ßσ«ñ¡δÑ º¡áτÑ¡¿∩ ñ½∩ ú½«íá½∞¡δσ »ÑαѼѡ¡δσ
- DLL.
-
- Åα«µÑñπαá ¿¡¿µ¿á½¿ºáµ¿¿ í¿í½¿«ΓѬ¿ ΓαÑíπÑΓß∩ ñ½∩ óδñѽѡ¿∩
- ¼ÑßΓá »«ñ ½«¬á½∞¡πε ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞ »á¼∩Γ¿. 﫬á½∞¡á∩
- ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿ ñ«½ª¡á íδΓ∞ ß«ºñá¡á »ÑαÑñ ½εíδ¼
- óδº«ó«¼ ó DLL Σπ¡¬µ¿⌐ αáí«Γδ ß ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ∞ε
- »á¼∩Γ¿, Γᬿσ ¬á¬ LocalAlloc. ò«Γ∩ ñ½∩ »α¿¬½áñ¡δσ »α«úαá¼¼
- Windows ¿¡¿µ¿á½¿º¿απÑΓ ½«¬á½∞¡πε ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞ »á¼∩Γ¿
- áóΓ«¼áΓ¿τÑ߬¿, DLL ñ«½ª¡á ßñѽáΓ∞ φΓ« ßἫßΓ«∩Γѽ∞¡« ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ LocalInit.
-
- èα«¼Ñ φΓ«ú«, óδ ñ«½ª¡δ ó¬½ετ¿Γ∞ ó »α«µÑñπαπ ¿¡¿µ¿á½¿ºáµ¿¿
- ß½ÑñπεΘÑÑ «íΩ∩ó½Ñ¡¿Ñ:
-
- extrn __acrtuses:abs
-
- ¥Γ¿¼ óδ «»αÑñѽ∩ÑΓÑ, τΓ« DLL íπñÑΓ ß¬«¼»«¡«óá¡á ß
- ßΓáαΓ«óδ¼ ¬«ñ«¼ ¿º í¿í½¿«ΓѬ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ñ½∩
- Windows DLL (xDLLCy.LIB).
-
- Åα¿ ºáúαπº¬Ñ ¿¡Σ«α¼áµ¿∩ Σπ¡¬µ¿¿ ¿¡¿µ¿á½¿ºáµ¿¿ »ÑαÑñáÑΓß∩ ó
- αÑú¿ßΓαáσ. ū߬«½∞¬π αÑú¿ßΓαδ ó æ ¡Ññ«ßΓπ»¡δ, Γ« ñ½∩ ñ«ßΓπ»á ¬
- φΓ¿¼ º¡áτÑ¡¿∩ ¡Ñ«íσ«ñ¿¼« ¡á»¿ßáΓ∞ Σπ¡¬µ¿ε ¡á áßßѼí½ÑαÑ.
- Éáß»«½«ªÑ¡¿Ñ ¿ º¡áτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ « ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿ »α¿óÑñÑ¡« ¡¿ªÑ:
-
- ÉÑú¿ßΓα ç¡áτÑ¡¿Ñ
- ───────────────────────────────────────────────────────────────
- DI äÑß¬α¿»Γ«α φ¬ºÑ¼»½∩αá DLL.
-
- DS æÑú¼Ñ¡Γ ñá¡¡δσ DLL, Ñß½¿ ÑßΓ∞.
-
- CX ÉẼÑα ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿, «»αÑñÑ-
- ½∩Ѽδ⌐ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩
- í¿í½¿«ΓѬ¿.
-
- ES:SI 諼á¡ñ¡á∩ ßΓ᫬á (ó »«½Ñ lpCmdLine »áαá¼ÑΓαá
- lpParameterBlock Σπ¡¬µ¿¿ LoadModule).
- ───────────────────────────────────────────────────────────────
-
- ìá ñ¿ß¬áσ ß SDK ß«ñÑনΓß∩ Σá⌐½ LIBENTRY.ASM, ¬«Γ«αδ⌐
-
- Windows 3.0/pg/3#3 = 129 =
-
- ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ ß«ºñá¡¿∩ Σπ¡¬µ¿¿ ¿¡¿µ¿á½¿ºáµ¿¿ DLL. (éδ
- ¼«ªÑΓÑ ¡á⌐Γ¿ φëà Σá⌐½ ó ñ¿αÑ¬Γ«α¿¿ SELECT ¡á ñ¿ß¬Ñ Sample
- Source Code Disk). öπ¡¬µ¿∩ LibEntry «»αÑñѽѡá ó φΓ«¼ Σá⌐½Ñ
- ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;
- ; LIBENTRY.ASM
- ;
- ; Æ«τ¬á óσ«ñá ó ñ¿¡á¼¿τÑ߬πε í¿í½¿«ΓѬπ Windows.
- ;
- ; ¥Γ«Γ ¼«ñπ½∞ úÑ¡Ñα¿απÑΓ ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ ß ¿¼Ñ¡Ñ¼ INIT_TEXT.
- ; Ä¡ ¿¡¿µ¿á½¿º¿απÑΓ ½«¬á½∞¡πε ñ¿¡á¼¿τÑ߬πε «í½áΓ∞ »á¼∩Γ¿, Ñß½¿
- ; «¡á ÑßΓ∞ ¿ ºáΓѼ óδºδóáÑΓ Σπ¡¬µ¿ε C LibMain(), ¬«Γ«αá∩ ñ«½ª¡á
- ; óδú½∩ñÑΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
- ;
- ; BOOL FAR PASCAL LibMain(HANDLE hInstance,
- ; WORD wDataSeg,
- ; WORD cbHeap,
- ; LPSTR lpszCmdLine);
- ;
- ; ÉѺπ½∞ΓáΓ ó맮óá LibMain ó«ºóαáΘáÑΓß∩ Windows.
- ; öπ¡¬µ¿∩ C ñ«½ª¡á óÑα¡πΓ∞ º¡áτÑ¡¿Ñ TRUE, Ñß½¿ ¿¡¿µ¿á½¿ºáµ¿∩ ºá-
- ; óÑαΦÑ¡á πß»ÑΦ¡«, ¿½¿ FALSE »α¿ 󫺡¿¬¡«óÑ¡¿¿ «Φ¿í¬¿.
- ;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- include cmacros.inc
-
- externFP <LibMain> ; éδºδóáѼá∩ »α«µÑñπαá æ
- externFP <LocalInit> ; öπ¡¬µ¿∩ ¿¡¿á½¿ºáµ¿¿ ñ¿¡á¼¿τÑ߬«⌐
- ; «í½áßΓ¿ »á¼∩Γ¿ Windows
- extrn __acrtused:abs ; »«ñ¬½ετ¿Γ∞ ßΓáαΓ«óδ⌐ ¬«ñ DLL
-
- public LibEntry ; Γ«τ¬á óσ«ñá ó DLL
-
- INIT_TEXT segment byte pablic 'CODE'
- assume CS,INIT_TEXT
-
-
- LibEntry proc far
-
- push di ; ñÑ¬α¿»Γ«α φ¬ºÑ¼»½∩αá í¿í½¿«ΓѬ¿
- push ds ; ßÑú¼Ñ¡Γ ñá¡¡δσ í¿í½¿«ΓѬ¿
- push cx ; αẼÑα ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- push es ; ßÑú¼Ñ¡Γ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿
- push si ; ß¼ÑΘÑ¡¿Ñ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿
-
- ; Ñß½¿ ¡πª¡« ¿¡¿µ¿á½¿º¿α«óáΓ∞ ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞
- jcxz callc ; »ÑαÑσ«ñ Ñß½¿ ¡Ñ ¡πª¡«
-
- ; éδºóáΓ∞ Σπ¡¬µ¿ε Windows LocalInit
- ; LocalInit((LPSTR)start, WORD cbHeap);
-
- Windows 3.0/pg/3#3 = 130 =
-
-
- push ds ; ßÑú¼Ñ¡Γ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- xor ax,ax
- push ax ; ß¼ÑΘÑ¡¿Ñ ¡áτá½á ñ¿¡á¼¿τÑ߬«⌐
- ; «í½áßΓ¿ »á¼∩Γ¿
- push cx ; ß¼ÑΘÑ¡¿Ñ ¬«¡µá ñ¿¡á¼¿τÑ߬«⌐
- ; «í½áßΓ¿ »á¼∩Γ¿
-
- call LocalInit ; »«»δΓ¬á ¿¡¿µ¿á½¿ºáµ¿¿
- or ax,ax ; óßÑ ó »«α∩ñ¬Ñ?
- jz exit ; óδσ«ñ »« «Φ¿í¬Ñ
-
- ; é맮ó Σπ¡¬µ¿¿ C ñ½∩ óδ»«½¡Ñ¡¿∩ ߻ѵ¿á½∞¡«⌐
- ; ¿¡¿µ¿á½¿ºáµ¿¿.
-
- callc:
- call LibMain ; é맮ó »α«µÑñπαδ C (αѺ. ó AX)
-
- exit:
- ret ; óÑα¡πΓ∞ αѺπ½∞ΓáΓ
-
- LibEntry endp
-
- INIT_TEXT ends
-
- end LibEntry
-
- ìá ñ¿ß¬áσ SDK Γá¬ªÑ ¿¼ÑÑΓß∩ «ΓáßßÑ¼í½¿α«óá¡¡á∩ ¬«»¿∩ φΓ«⌐
- Σπ¡¬µ¿¿: LIBENTRY.OBJ. (éδ ¼«ªÑΓÑ ¡á⌐Γ¿ φëà Σá⌐½ ó ñ¿αÑ¬Γ«α¿¿
- SELECT ¡á ñ¿ß¬Ñ Sample Source Code Disk). öπ¡¬µ¿∩ LibEntry
- »«ºó«½∩ÑΓ óδºóáΓ∞ Σπ¡¬µ¿ε ¿¡¿µ¿á½¿ºáµ¿¿ ¡á æ. ä½∩ ¿ß»«½∞º«óá¡¿∩
- Σπ¡µ¿¿ LibEntry ó Γᬫ¼ ó¿ñÑ ñ«íáó∞ΓÑ ÑÑ ¬ ¬«¼á¡ñ¡«⌐ ßΓ᫬Ñ
- ¬«¼»«¡«óΘ¿¬á:
-
- LINK MINDLL.OBJ LIBENTRY.OBJ, MINDLL.DLL, MINDLL.MAP/map,
- MDLLCEW.LIB LIBW.LIB/NOE/NOD,MINDLL.DEF
-
- LibEntry «ßπΘÑßΓó½∩ÑΓ ñá½∞¡¿⌐ ó맮ó ß ¿ß»«½∞º«ó᡿Ѽ
- ß«ú½áΦÑ¡¿∩ »« ó맮óπ ∩ºδ¬á PASCAL Σπ¡¬µ¿¿ LibMain. àß½¿ óδ
- ¬«¼»«¡πÑΓÑ DLL ß LIBENTRY.OBJ, óáΦá í¿í½¿«ΓѬá ñ«½ª¡á ¿¼ÑΓ∞
- Σπ¡¬µ¿ε LibMain.
-
- ì¿ªÑ ñá¡ »α¿¼Ñα Σπ¡¬µ¿¿ LibMain:
-
- int FAR PASCAL LibMain(HANDLE hInstance,
- WORD wDataSeg,
- WORD cbHeapSize,
- LPSTR lpszCmdLine)
- {
- .
- .
- /* ê¡¿µ¿á½¿ºáµ¿∩ DLL */
- .
-
- Windows 3.0/pg/3#3 = 131 =
-
- .
- if(cbHeapSize != 0) /* Ñß½¿ ßÑú¼Ñ¡Γ ñá¡¡δσ DLL
- »ÑαѼÑΘáѼδ⌐ */
- UnlockData(0);
-
- return(1); /* ¿¡¿µ¿á½¿ºáµ¿∩ »α«Φ½á πß»ÑΦ¡« */
- }
-
- LibMain »«½πτáÑΓ τÑΓδαÑ »áαá¼ÑΓαá: hInstance, wDataSeg,
- cbHeapSize, lpszCmdLine. ÅÑαóδ⌐ »áαá¼ÑΓα hInstance - ñÑß¬α¿»Γ«α
- φ¬ºÑ¼»½∩αá DLL. Åáαá¼ÑΓα wDataSeg φΓ« ß«ñÑন¼«Ñ αÑú¿ßΓαá DS,
- «»αÑñѽ∩εΘÑú« ßÑú¼Ñ¡Γ ñá¡¡δσ. Åáαá¼ÑΓα cbHeapSize «»αÑñѽ∩ÑΓ
- αẼÑα ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ ñá¡¡δσ, »«½πτáѼδ⌐ ¿º Σá⌐½á
- «»αÑñѽѡ¿∩ ¼«ñπ½∩ í¿í½¿«ΓѬ¿. LibEntry ¿ß»«½∞ºπÑΓ φΓ«Γ
- »áαá¼ÑΓα ñ½∩ ¿¡¿µ¿á½¿ºáµ¿¿ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- ñá¡¡δσ. Åáαá¼ÑΓα lpszCmdLine ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿ε ¿º ¬«¼á¡ñ¡«⌐
- ßΓ᫬¿ ¿ αÑñ¬« ¿ß»«½∞ºπÑΓß∩ ó DLL.
-
- àß½¿ óδ ¡Ñ σ«Γ¿ΓÑ, τΓ«íδ ßÑú¼Ñ¡Γ ñá¡¡δσ «ßΓáóá½ß∩
- ºáí½«¬¿α«óá¡¡δ¼, Γ« ó맮ó¿ΓÑ Σπ¡¬µ¿ε UnlockData, »«ß¬«½∞¬π
- LocalInit ¡Ñ αáºí½«¬¿απÑΓ ßÑú¼Ñ¡Γ.
-
- àß½¿ ¿¡¿µ¿á½¿ºáµ¿∩ DLL ºáóÑαΦ¿½áß∞ πß»ÑΦ¡«, DLL ñ«½ª¡á
- óÑα¡πΓ∞ º¡áτÑ¡¿Ñ 1. ìπ½Ñó«Ñ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ «»αÑñѽ∩ÑΓ
- ¡Ñπñáτ¡«Ñ ºáóÑαΦÑ¡¿Ñ ¿¡¿µ¿á½¿ºáµ¿¿, ¿ DLL óδúαπªáÑΓß∩ ¿º
- ß¿ßΓѼ¡«⌐ »á¼∩Γ¿.
-
- Åα¿¼Ñτá¡¿Ñ: àß½¿ óδ »¿Φ¿ΓÑ óßε DLL ¡á áßßѼí½ÑαÑ, óδ
- ñ«½ª¡δ ßἫßΓ«∩Γѽ∞¡« ºáαѺÑαó¿α«óáΓ∞ ¿ ¿¡¿µ¿á½¿º¿α«óáΓ∞ ¡π½∩¼¿
- »ÑαóδÑ 16 íá⌐Γ ßÑú¼Ñ¡Γá ñá¡¡δσ DLL. Äñ¡á¬«, Ñß½¿ ¼«ñπ½∞ DLL
- ß«ñÑαª¿Γ ½εí«⌐ ¬«ñ ¡á æ, ¬«¼»¿½∩Γ«α æ ºáαѺÑαó¿απÑΓ φΓπ «í½áßΓ∞
- áóΓ«¼áΓ¿τÑ߬¿.
-
- çáóÑαΦÑ¡¿Ñ DLL.
-
- Windows DLL ñ«½ª¡á ó¬½ετáΓ∞ Σπ¡¬µ¿ε ºáóÑαΦÑ¡¿∩. öπ¡¬µ¿∩
- ºáóÑαΦÑ¡¿∩, ¿¡«úñá ¡áºδóáѼá∩ »α«µÑñπα«⌐ óδσ«ñá, óδ»«½¡∩ÑΓ
- «τ¿ßΓ¬π DLL »ÑαÑñ ÑÑ óδúαπº¬«⌐.
-
- ä½∩ DLL ß«ñÑαªáΘÑ⌐ Σπ¡¬µ¿¿ «¬¡á (ºáαÑú¿ßΓα¿α«óá¡¡δÑ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ RegisterClass), ¡Ñ ΓαÑíπÑΓß∩ πñá½∩Γ∞
- αÑú¿ßΓαáµ¿ε ¬½áßßá (ß »«¼«Θ∞ε UnRegisterClass), Γ.¬. Windows
- ñѽáÑΓ φΓ« áóΓ«¼áΓ¿τÑ߬¿ »α¿ ºáóÑαΦÑ¡¿¿ DLL.
-
- ì¿ªÑ »α¿óÑñÑ¡ »α¿¼Ñα »α«ßΓ«⌐ Σπ¡¬µ¿¿ ºáóÑαΦÑ¡¿∩. öπ¡¬µ¿∩
- ºáóÑαΦÑ¡¿∩ ñ«½ª¡á íδΓ∞ ºáαÑú¿ßΓα¿α«óá¡á Γá¬, ¬á¬ ºñÑß∞
- »«¬áºá¡«. à⌐ »ÑαÑñáÑΓß∩ «ñ¿¡ áαπú¼Ñ¡Γ (nParameter), ¬«Γ«αδ⌐
- «»αÑñѽ∩ÑΓ, ºáóÑαΦáÑΓß∩ ½¿ αáí«Γá Windows (nParameter ==
- WEP_SYSTEMEXIT) ¿½¿ Γ«½∞¬« DLL (nParameter == WEP_FREE_DLL).
- Ä¡á óßÑúñá ó«ºóαáΘáÑΓ 1, «í«º¡áτáεΘπε πß»ÑΦ¡«Ñ ºáóÑαΦÑ¡¿Ñ.
-
- VOID FAR PASCAL WEP (int nParameter)
- {
-
- Windows 3.0/pg/3#3 = 132 =
-
- if(nParameter == WEP_SYSTEMEXIT)
- {
- /* óδ»«½¡∩ÑΓß∩ ºáóÑαΦÑ¡¿Ñ αáí«Γδ ß¿ßΓѼδ.
- óδ»«½¡¿Γ∞ ß««ΓóÑΓßΓóπεΘ¿Ñ ñÑ⌐ßΓó¿∩ */
- return(1);
- }
- else
- {
- if(nParameter == WEP_FREE_DLL)
- {
- /* ßτÑΓτ¿¬ «íαáΘÑ¡¿⌐ ¬ DLL αáóÑ¡ 0. éßÑ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ, ºáúαπº¿óΦ¿Ñ DLL, πªÑ ÑÑ «ßó«í«ñ¿½¿. */
- return(1);
- }
- else
- {
- /* ¡Ñ¿ºóÑßΓ¡«Ñ º¡áτÑ¡¿Ñ. êú¡«α¿α«óáΓ∞ */
- return(1);
- }
- }
- }
-
- öπ¡¬µ¿∩ ºáóÑαΦÑ¡¿∩ ñ«½ª¡á ¡áºδóáΓ∞ß∩ WEP ¿ ñ«½ª¡á íδΓ∞
- «»¿ßá¡á ó αáºñÑ½Ñ EXPORTS Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩ í¿í½¿«ΓѬ¿.
- îδ ¡áßΓ«∩Γѽ∞¡« αѬ«¼Ñ¡ñπѼ ¿º-ºá ÑÑ ó½¿∩¡¿∩ ¡á σáαá¬ΓÑα¿ßΓ¿¬¿
- ß¿ßΓѼδ, τΓ«íδ ß ¡Ñ⌐ ¿ß»«½∞º«óὫß∞ «α¿ú¿¡á½∞¡«Ñ óσ«ñ¡«Ñ
- º¡áτÑ¡¿Ñ ¿ ¬½ετÑó«Ñ ß½«ó« RESIDENTNAME, τΓ«íδ π¼Ñ¡∞Φ¿Γ∞ óαѼ∩
- »«¿ß¬á Σπ¡¬µ¿¿. è½ετÑó«Ñ ß½«ó« RESIDENTNAME ºáßΓáó½∩ÑΓ Windows
- ñÑαªáΓ∞ ¿¡Σ«α¼áµ¿ε «í φ¬ß»«αΓ¿απѼ«⌐ Σπ¡¬µ¿¿ »«ßΓ«∩¡¡« ó
- »á¼∩Γ¿, ¿ ¼δ ¡Ñ αѬ«¼Ñ¡ñπѼ ¿ß»«½∞º«óáΓ∞ Ñú« ß ñαπú¿¼¿
- Σπ¡¬µ¿∩¼¿.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε óδ ¡á⌐ñÑΓÑ ó ß½ÑñπεΘѼ αáºñѽÑ.
- 20.3.2 櫺ñá¡¿Ñ Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩.
-
- é ñá¡¡«¼ αáºñÑ½Ñ »α¿óÑñÑ¡ Σá⌐½ «»αÑñѽѡ¿∩ ¼«ñπ½∩ ñ½∩
- ¼¿¡¿¼á½∞¡«⌐ DLL. ¥Γ«Γ Σá⌐½ ß«ñÑαª¿Γ óσ«ñ¡πε ¿¡Σ«α¼áµ¿ε ñ½∩
- ¬«¼»«¡«óΘ¿¬á (LINK), ¬«Γ«αá∩ «»αÑñѽ∩ÑΓ αẽ¿τ¡δÑ áΓα¿íπΓδ DLL.
- çá¼ÑΓ¿¼, τΓ« ó ñá¡¡«¼ Σá⌐½Ñ ¡ÑΓ «»ÑαáΓ«αá STACKSIZE, »«ß¬«½∞¬π
- DLL ¿ß»«½∞ºπÑΓ ßΓѬ óδºδóáεΘÑ⌐ ÑÑ »α«úαá¼¼δ. Å«½¡«Ñ «»¿ßá¡¿Ñ
- Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩ óδ ¡á⌐ñÑΓÑ ó« óΓ«α«¼ Γ«¼Ñ æ»αáó«τ¡«ú«
- απ¬«ó«ñßΓóá.
-
- LIBRARY MinDLL
-
- DESCRIPTION "MinDLL - î¿¡¿¼á½∞¡δ⌐ ΓαÑíπѼδ⌐ ñ½∩ DLL ¬«ñ"
-
- EXETYPE WINDOWS
-
- STUB 'WINSTUB.EXE'
-
- CODE MOVEABLE DISCARDABLE
-
- Windows 3.0/pg/3#3 = 133 =
-
-
- DATA MOVEABLE SINGLE
-
- HEAPSIZE 0
-
- EXPORTS
- MinRoutine @1
- WEP @2 RESIDENTNAME
-
- è½ετÑó«Ñ ß½«ó« LIBRARY «»αÑñѽ∩ÑΓ, τΓ« ¼«ñπ½∞ -
- í¿í½¿«ΓѬá. ê¼∩ í¿í½¿«ΓѬ¿, ó ñá¡¡«¼ ß½πτáÑ MinDLL, ß½ÑñπÑΓ ºá
- ¬½ετÑóδ¼ ß½«ó«¼ ¿ ñ«½ª¡« íδΓ∞ ΓѼ ªÑ, τΓ« ¿ ¿¼∩ Σá⌐½á
- í¿í½¿«ΓѬ¿.
-
- Ä»ÑαáΓ«α EXETYPE WINDOWS ΓαÑíπÑΓß∩ ñ½∩ óßÑσ »α¿¬½áñ¡δσ
- »α«úαá¼¼ ¿ DLL Windows.
-
- Ä»ÑαáΓ«α DESCRIPTION ß«ñÑαª¿Γ ßΓ᫬π ñ½¿¡«⌐ ñ« 128
- ß¿¼ó«½«ó. Äíδτ¡« Ñú« ¿ß»«½∞ºπεΓ ñ½∩ «»¿ßá¡¿∩ ¼«ñπ½∩ ¿ ñ½∩
- «Γ¼ÑΓ¬¿ «í áóΓ«α߬¿σ »αáóáσ. ¥Γ«Γ «»ÑαáΓ«α ¡Ñ«í∩ºáΓѽѡ.
-
- Ä»ÑαáΓ«α STUB «»αÑñѽ∩ÑΓ »α«úαá¼¼π ñ½∩ DOS 2.σ, ¬«Γ«αá∩
- ¬«»¿απÑΓß∩ ó Γѽ« ¼«ñπ½∩ í¿í½¿«ΓѬ¿ (.DLL). ¥Γá »α«úαá¼¼á
- »αÑñ¡áº¡áτÑ¡á ñ½∩ óδñáτ¿ ¿¡Σ«α¼áµ¿¿ »«½∞º«óáΓѽε, ¬«Γ«αδ⌐
- »δΓáÑΓß∩ ºá»πßΓ¿Γ∞ ¼«ñ㫨 Windows ¿º ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ DOS. àß½¿
- «»ÑαáΓ«α STUB ¡Ñ π¬áºá¡, ¬«¼»«¡«óΘ¿¬ ñ«íáó¿Γ Ñú« áóΓ«¼áΓ¿τÑ߬¿.
-
- Ä»ÑαáΓ«α CODE ¿ß»«½∞ºπÑΓß∩ ñ½∩ «»αÑñѽѡ¿∩ áΓα¿íπΓ«ó,
- ¿ß»«½∞ºπѼδσ »« π¼«½τá¡¿ε, ñ½∩ í½«¬á »á¼∩Γ¿ ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá.
- ÅÑαѼÑΘáѼδ⌐ ¿ ßíαáßδóáѼδ⌐ ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ »αÑñ«ßΓáó½∩ÑΓ
- ¡á¿í«½∞Φπε ßó«í«ñπ ß¿ßΓÑ¼Ñ π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε Windows, ¬«Γ«αδ⌐
- «íÑß»Ñτ¿óáÑΓ ñ«ßΓπ»¡«ßΓ∞ ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá »α¿ Ñú«
- ¡Ñ«íσ«ñ¿¼«ßΓ¿. Ä»ÑαáΓ«α SEGMENTS, ¡Ñ ó¬½ετÑ¡¡δ⌐ ó ñá¡¡δ⌐
- »α¿¼Ñα, »«ºó«½∩ÑΓ «»αÑñѽ¿Γ∞ áΓα¿íπΓδ «Γñѽ∞¡δσ ¬«ñ«óδσ
- ßÑú¼Ñ¡Γ«ó.
-
- Ä»ÑαáΓ«α DATA «í∩ºáΓѽѡ. Ä¡ «»αÑñѽ∩ÑΓ áΓα¿íπΓδ ßÑú¼Ñ¡Γá
- ñá¡¡δσ í¿í½¿«ΓѬ¿. è½ετÑó«Ñ ß½«ó« MOVEABLE »«ºó«½∩ÑΓ ß¿ßΓѼÑ
- π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε Windows »ÑαѼÑΘáΓ∞ »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ßÑú¼Ñ¡Γ
- ñá¡¡δσ í¿í½¿«ΓѬ¿. ä½∩ í¿í½¿«ΓѬ¿ ΓαÑíπÑΓß∩ ¬½ετÑó«Ñ ß½«ó«
- SINGLE, Γ.¬. í¿í½¿«ΓѬá óßÑúñá ¿¼ÑÑΓ Γ«½∞¬« «ñ¿¡ ßÑú¼Ñ¡Γ
- ñá¡¡δσ, ¡Ñºáó¿ß¿¼« «Γ Γ«ú«, ߬«½∞¬« »α¿¬½áñ¡δσ »α«úαá¼¼ Ñε
- »«½∞ºπεΓß∩.
-
- Ä»ÑαáΓ«α HEAPSIZE ¿ß»«½∞ºπÑΓß∩ ñ½∩ «»αÑñѽѡ¿∩ ¿ßσ«ñ¡«ú«
- (¿½¿ ¼¿¡¿¼á½∞¡«ú«) αẼÑαá ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿. àß½¿ í¿í½¿«ΓÑ¬á ¿ß»«½∞ºπÑΓ óδñѽѡ¿Ñ »á¼∩Γ¿ ó ½«¬á½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿, Γ« ó ¼«¼Ñ¡Γ ºá»πß¬á «¡á ñ«½ª¡á ÑÑ
- ¿¡¿µ¿á½¿º¿α«óáΓ∞. ÉẼÑα ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿
- »«ßδ½áÑΓß∩ »α«µÑñπαÑ LibEntry, ¬«Γ«αá∩ ó ßó«ε «τÑαÑñ∞ óδºδóáÑΓ
- Σπ¡¬µ¿ε LicalInit ñ½∩ ¿¡¿µ¿á½¿ºáµ¿¿ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐
- «í½áßΓ¿ »á¼∩Γ¿ ñá¡¡«ú« αẼÑαá. ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε »«
- φΓ«¼π »«ó«ñπ óδ ¡á⌐ñÑΓÑ ó αáºñÑ½Ñ 20.3.1, "ê¡¿µ¿á½¿ºáµ¿∩ DLL".
-
- Windows 3.0/pg/3#3 = 134 =
-
- é ¡áΦѼ »α¿¼ÑαÑ ½«¬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿ ¡Ñ
- ¿ß»«½∞ºπÑΓß∩ ¿ »«φΓ«¼π ÑÑ αẼÑα αáóÑ¡ 0.
-
- Ä»ÑαáΓ«α EXPORTS, «»αÑñѽ∩ÑΓ »α«µÑñπαδ ¬«Γ«αδÑ
- ¿ß»«½∞ºπεΓß∩ ó ¬áτÑßΓóÑ Γ«τѬ óσ«ñá ñαπú¿¼¿ DLL ¿½¿ »α¿¬½áñ¡δ¼¿
- »α«úαἼἿ. ¥Γá ¿¡Σ«α¼áµ¿∩ ¿ß»«½∞ºπÑΓß∩ Windows ñ½∩
- «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γá ñá¡¡δσ, ¬«Γ«αδ⌐ ñ«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ ß
- ¬áªñ«⌐ Σπ¡¬µ¿Ñ⌐ DLL. èáªñá∩ »α«µÑñπαá ñ«½ª¡á ¿¼ÑΓ∞ π¡¿¬á½∞¡«Ñ
- º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ ó ¡áΦѼ »α¿¼ÑαÑ π¬áºδóáÑΓß∩ »«ß½Ñ ß¿¼ó«½á
- '@'. ¥Γ« º¡áτÑ¡¿Ñ ¿ß»«½∞ºπÑΓß∩ ñ½∩ π¼Ñ¡∞ΦÑ¡¿∩ αẼÑαá ¿
- πóѽ¿τÑ¡¿∩ íδßΓα«ñÑ⌐ßΓó¿∩ ß¿ßΓѼδ ñ¿¡á¼¿τÑ߬«ú« ßó∩ºδóá¡¿∩.
- 20.3.3. 櫺ñá¡¿Ñ Make-Σá⌐½á.
-
- æ½πªÑí¡á∩ »α«úαá¼¼á MAKE ¿ß»«½∞ºπÑΓß∩ ñ½∩ π»αáó½Ñ¡¿∩
- ß«ºñ᡿Ѽ óδ»«½¡∩Ѽδσ Σá⌐½«ó ¿ ¼¿¡¿¼¿ºáµ¿¿, ΓαÑíπѼ«⌐ ñ½∩ φΓ«ú«
- «íαáí«Γ¬¿. ä½∩ ß«ºñá¡¿∩ DLL ¿ß»«½∞ºπÑΓß∩ τÑΓδαÑ ß½πªÑí¡δÑ
- »α«úαá¼¼δ:
-
- - 諼»¿½∩Γ«α æ (CL).
-
- - 諼»«¡«óΘ¿¬ (LINK).
-
- - æ½πªÑí¡á∩ »α«úαá¼¼á ñ½∩ ß«ºñá¡¿∩ ¿¼»«αΓ¿απѼδσ í¿í½¿«ΓѬ
- (IMPLIB).
-
- - 諼»¿½∩Γ«α αÑßπαß«ó (RC).
-
- Make-Σá⌐½ ñ½∩ ß«ºñá¡¿∩ ¡áΦÑú« »α¿¼Ñαá DLL óδú½∩ñ¿Γ
- ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- MINDLL.OBJ: MINDLL.C
- CL -ASw -c -Gsw -Os -W2 MINDLL.C
-
- MINDLL.DLL: MINDLL.OBJ
- LINK MINDLL.OBJ LIBENTRY.OBJ, MINDLL.DLL, MINDLL.MAP/map,
- MDLLCEW.LIB LIBW.LIB/NOE/NOD,MINDLL.DEF
- MAPSYM MINDLL.MAP
- IMPLIB MINDLL.LIB MINDLL.DEF
- RC MINDLL.DLL
-
- ä«»«½¡¿Γѽ∞¡á∩ ¿¡Σ«α¼áµ¿∩ « »α«úαá¼¼Ñ MAKE ß«ñÑনΓß∩ ó
- ñ«¬π¼Ñ¡Γᵿ¿ »« Microsoft C Compiller.
-
- è½ετ¿ ¬«¼»¿½∩Γ«αá æ.
-
- 諼»¿½∩Γ«α æ ¿ß»«½∞ºπÑΓ »∩Γ∞ ¡áí«α«ó ¬½ετÑ⌐, ¬«Γ«αδÑ
- ¬«α«Γ¬« «»¿ßá¡δ ¡¿ªÑ. Å«½¡«Ñ «»¿ßá¡¿Ñ ¬½ετÑ⌐ ¬«¼»¿½∩Γ«αá æ óδ
- ¡á⌐ñÑΓÑ ó ñ«¬π¼Ñ¡Γᵿ¿ »« Microsoft C Compiller óÑαß¿¿ 4.0 ¿
- í«½ÑÑ »«ºñ¡¿σ. ì¿ªÑ »α¿óÑñÑ¡δ ¬½ετ¿, ¿ß»«½∞ºπѼδÑ ñ½∩
- ¬«¼»¿½∩µ¿¿ ¡áΦÑú« »α¿¼Ñαá DLL:
-
- CL -ASw -c -Gsw -Os -W2 MINDLL.C
-
- Windows 3.0/pg/3#3 = 135 =
-
-
- è½ετ -ASw «»αÑñѽ∩ÑΓ áñαÑßᵿε, ¿ß»«½∞ºπѼπε ¬«¼»¿½∩Γ«α«¼
- »« π¼«½τá¡¿ε. Åáαá¼ÑΓα S «»αÑñѽ∩ÑΓ ¼á½πε ¼«ñѽ∞ »á¼∩Γ¿, ó
- ¬«Γ«α«⌐ ¿ß»«½∞ºπεΓß∩ í½¿ª¡¿Ñ π¬áºáΓѽ¿ ¡á ñá¡¡δÑ ¿ í½¿ª¡¿Ñ
- π¬áºáΓѽ¿ ¡á ¬«ñ. Åáαá¼ÑΓα w ß««íΘáÑΓ ¬«¼»¿½∩Γ«απ, τΓ« ßΓѬ ¡Ñ
- ∩ó½∩ÑΓß∩ τáßΓ∞ε ßÑú¼Ñ¡Γá ñá¡¡δσ »« π¼«½τá¡¿ε, ¿½¿, Ñß½¿ ߬áºáΓ∞
- »« ñαπú«¼π, τΓ« SS != DS. ¥Γ« ºáßΓáó½∩ÑΓ ¬«¼»¿½∩Γ«α
- úÑ¡Ñα¿α«óáΓ∞ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ, ¬«úñá «¡ «í¡áαπª¿Γ
- ¡Ññ«»πßΓ¿¼«Ñ ß«ºñá¡¿Ñ í½¿ª¡Ñú« π¬áºáΓѽ∩ ¡á áóΓ«¼áΓ¿τÑ߬¿Ñ
- ñá¡¡δÑ.
-
- è½ετ -c «»αÑñѽ∩ÑΓ, τΓ« ¬«¼»¿½∩Γ«α ñ«½ªÑ¡ óδ»«½¡¿Γ∞ Γ«½∞¬«
- ¬«¼»¿½∩µ¿ε. Ä¡ ¡Ñ«íσ«ñ¿¼, Ñß½¿ ¿ßσ«ñ¡δ⌐ ΓѬßΓ óáΦÑ⌐ DLL ß«ßΓ«¿Γ
- ¿º ¡Ñ߬«½∞¬¿σ ¼«ñπ½Ñ⌐.
-
- è½ετ -Gsw ß«ßΓ«¿Γ ¿º ñóπσ τáßΓÑ⌐. Åáαá¼ÑΓα s «Γ¬½ετáÑΓ
- ¡«α¼á½∞¡πε »α«óÑα¬π ßΓÑ¬á ¬«¼»¿½∩Γ«αá æ. ¥Γ« ¡Ñ«íσ«ñ¿¼«, Γ.¬.
- »α«óÑα¬á ßΓÑ¬á ¡Ñß«ó¼ÑßΓ¿¼á ß Windows. Åáαá¼ÑΓα w ºáßΓáó½∩ÑΓ
- »«ñ¬½ετ¿Γ∞ ¬ ¬áªñ«⌐ FAR-»α«µÑñπαÑ ¬«ñ »α«½«úá ¿ φ»¿½«úá
- Windows. ¥Γ« ¡Ñ«íσ«ñ¿¼« »« ñóπ¼ »α¿τ¿¡á¼: «¡ ¿ß»«½∞ºπÑΓß∩ ñ½∩
- «»αÑñѽѡ¿∩ ¬«ααÑ¬Γ¡«ú« ßÑú¼Ñ¡Γá ñá¡¡δσ ¿ ñ½∩ Γ«ú«, τΓ«íδ
- ß¿ßΓѼá π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε ¼«ú½á »ÑαѼÑΘáΓ∞ ßÑú¼Ñ¡Γ ó« óαѼ∩
- αáí«Γδ ß¿ßΓѼδ.
-
- è½ετ -Os ß««íΘáÑΓ ¬«¼»¿½∩Γ«απ, τΓ« ó¼ÑßΓ« «»Γ¿¼¿ºáµ¿¿ »«
- ߬«α«ßΓ¿ ¡Ñ«íσ«ñ¿¼á «»Γ¿¼¿ºáµ¿∩ »« αẼÑαπ. ¥Γ«Γ ¬½ετ
- ¡Ñ«í∩ºáΓѽѡ, ¡« ¼δ αѬ«¼Ñ¡ñπѼ Ñú« ¿ß»«½∞º«óáΓ∞.
-
- è½ετ -W2 πßΓá¡áó½¿óáÑΓ ñ½∩ »αÑñπ»αѪñÑ¡¿⌐ πα«óÑ¡∞ 2
- (óδßΦ¿¼ πα«ó¡Ñ¼ »αÑñπ»αѪñÑ¡¿⌐ ∩ó½∩ÑΓß∩ 3). àú« σ«α«Φ«
- ¿ß»«½∞º«óáΓ∞ ó »α«µÑßßÑ «Γ½áñ¬¿, Γ.¬. »α¿ φΓ«¼ ¬«¼»¿½∩Γ«α
- »α«¿ºó«ñ¿Γ αẽ¿τ¡δÑ »α«óÑન Γ¿»«ó ñá¡¡δσ ¿ »α«Γ«Γ¿»«ó
- Σπ¡¬µ¿⌐. ¥Γ«Γ ¬½ετ ¡Ñ«í∩ºáΓѽѡ, ¡« ¼δ αѬ«¼Ñ¡ñπѼ Ñú«
- ¿ß»«½∞º«óáΓ∞.
-
- 諼á¡ñ¡á∩ ßΓα«¬á ¬«¼»«¡«óΘ¿¬á.
-
- 諼á¡ñ¡á∩ ßΓα«¬á ¬«¼»«¡«óΘ¿¬á ¿¼ÑÑΓ »∩Γ∞ áαúπ¼Ñ¡Γ«ó,
- αáºñѽ∩Ѽδσ ºá»∩Γ묨:
-
- LINK MINDLL.OBJ LIBENTRY.OBJ, MINDLL.DLL, MINDLL.MAP/map,
- MDLLCEW.LIB LIBW.LIB/NOE/NOD,MINDLL.DEF
-
- ÅÑαóδ⌐ áαúπ¼Ñ¡Γ ß«ñÑαª¿Γ ß»¿ß«¬ «íΩÑ¬Γ¡δσ Σá⌐½«ó (.OBJ),
- ¿ß»«½∞ºπѼδσ ñ½∩ ß«ºñá¡¿∩ DLL. àß½¿ óδ ¿ß»«½∞ºπÑΓÑ ßΓá¡ñáαΓ¡πε
- »α«µÑñπαπ ¿¡¿µ¿á½¿ºáµ¿¿ DLL, ó¬½ετ¿ΓÑ «íΩÑ¬Γ¡δ⌐ Σá⌐½
- LIBENTRY.OBJ.
-
- éΓ«α«⌐ áαúπ¼Ñ¡Γ «»αÑñѽ∩ÑΓ ¿¼∩ αѺπ½∞Γ¿απεΘÑú«
- óδ»«½¡∩Ѽ«ú« Σá⌐½á. 諼»«¡«óΘ¿¬ ¿ß»«½∞ºπÑΓ ñ½∩ ñ¿¡á¼¿τÑ߬¿σ
- í¿í½¿«ΓѬ αáßΦ¿αÑ¡¿Ñ .DLL. ìÑ∩ó¡« ºáúαπªáѼδÑ í¿í½¿«ΓѬ¿ ñ«½ª¡δ
- ¿¼ÑΓ∞ αáßΦ¿αÑ¡¿Ñ .DLL. ìÑ∩ó¡« ºáúαπªáѼδÑ í¿í½¿«ΓѬ¿
- ¿¼»«αΓ¿απεΓß∩ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,
-
- Windows 3.0/pg/3#3 = 136 =
-
- ó Γ« óαѼ∩ ¬á¬ ∩ó¡« ºáúαπªáѼδÑ ºáúαπªáεΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- LoadLibrary. 漫Γα¿ΓÑ αáºñѽ 20.4, "ä«ßΓπ» ¬ DLL ¿º »α¿¬½áñ¡δσ
- »α«úαá¼¼."
-
- ÆαÑΓ¿⌐ áαúπ¼Ñ¡Γ - φΓ« ¿¼∩ MAP-Σá⌐½á, ¬«Γ«αδ⌐ ß«ºñáÑΓß∩ »α¿
- ¿ß»«½∞º«óá¡¿¿ ¬½ετá /map. ¥Γ«Γ Σá⌐½ ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿ε «
- ú½«íá½∞¡δσ »ÑαѼѡ¡δσ ¿ Σπ¡¬µ¿∩σ. Ä¡ ¿ß»«½∞ºπÑΓß∩ ó ¬áτÑßΓóÑ
- óσ«ñ¡«ú« ñ½∩ »α«úαá¼¼δ MAPSYM, ¬«Γ«αá∩ «»¿ßá¡á ¡¿ªÑ.
-
- ùÑΓóÑαΓδ⌐ áαúπ¼Ñ¡Γ ß«ñÑαª¿Γ ß»¿ß«¬ ¿¼»«αΓ¿απѼδσ ¿
- ßΓáΓ¿τÑ߬¿σ í¿í½¿«ΓѬ, ΓαÑíπѼδσ ñ½∩ ß«ºñá¡¿∩ DLL. é ñá¡¡«¼
- »α¿¼ÑαÑ ¿ß»«½∞ºπÑΓß∩ ñóÑ í¿í½¿«ΓѬ¿: MDLLCEW.LIB ¿ LIBW.LIB.
- MDLLCEW.LIB - φΓ« í¿í½¿«ΓÑ¬á ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ, ¬«Γ«αá∩
- ß«ñÑαª¿Γ ßΓáαΓ«óδ⌐ ¬«ñ DLL, á Γá¬ªÑ »α«µÑñπαδ í¿í½¿«ΓѬ
- ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ »α«µÑñπαδ »«ññÑ᪬¿ ¼áΓѼáΓ¿τÑ߬¿σ
- «»Ñαᵿ⌐. LIBW.LIB ß«ñÑαª¿Γ ¿¼»«αΓ¿απѼπε ¿¡Σ«α¼áµ¿ε ñ½∩
- »α«µÑñπα í¿í½¿«ΓѬ¿ KERNEL.EXE. ùÑΓóÑαΓδ⌐ áαúπ¼Ñ¡Γ ΓᬪÑ
- ó¬½ετáÑΓ ñóá ¬½ετá, /NOD ¿ /NOE. è½ετ /NOD «Γ¬½ετáÑΓ »«¿ß¬
- í¿í½¿«ΓѬ »« π¼«½τá¡¿ε ¡á «ß¡«óÑ ¼«ñѽ¿ »á¼∩Γ¿. àß½¿
- ¿ß»«½∞ºπεΓß∩ Σπ¡¬µ¿¿ í¿í½¿«ΓѬ¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ, Γ« «¡¿
- ñ«½ª¡δ íδΓ∞ ∩ó¡« π¬áºá¡δ ó ñá¡¡«¼ ß»¿ß¬Ñ. è½ετ /NOE
- ¿ß»«½∞ºπÑΓß∩ ñ½∩ «Γ¬½ετÑ¡¿∩ »«¿ß¬á ñ«»«½¡¿Γѽ∞¡δσ í¿í½¿«ΓѬ, ¿
- ΓѼ ßá¼δ¼ ¿ß¬½ετáÑΓß∩ 󫺼«ª¡«ßΓ∞ óδñáτ¿ ß««íΘÑ¡¿⌐ «í «Φ¿í¬áσ
- »α¿ ¡á½¿τ¿¿ ó ¡Ñ߬«½∞¬¿σ í¿í½¿«ΓѬáσ «ñ¿¡á¬«óδσ ß¿¼ó«½«ó.
-
- Å∩Γδ⌐ áαúπ¼Ñ¡Γ «»αÑñѽ∩ÑΓ ¿¼∩ Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩
- í¿í½¿«ΓѬ¿, ß«ºñá¡¿Ñ ¬«Γ«α«ú« «»¿ßá¡« ó αáºñÑ½Ñ 20.3.2,
- "櫺ñá¡¿Ñ Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩".
-
- MAPSYM.
-
- æ½πªÑí¡á∩ »α«úαá¼¼á MAPSYM »«½πτáÑΓ MAP-Σá⌐½, ß«ºñá¡¡δ⌐
- ¬«¼»«¡«óΘ¿¬«¼ ¿ ß«ºñáÑΓ ß¿¼ó«½∞¡δ⌐ Σá⌐½ ß αáßΦ¿αÑ¡¿Ñ¼ .SYM.
- ¥Γ«Γ Σá⌐½ ºáΓѼ ¿ß»«½∞ºπÑΓß∩ ß¿¼ó«½¿τÑ߬¿¼ «Γ½áñτ¿¬«¼ (SYMDEB),
- á Γá¬ªÑ ó «Γ½áñ«τ¡«⌐ óÑαß¿¿ Windows ñ½∩ ß«ºñá¡¿¿ ¿¡Σ«α¼áµ¿¿ «í
- ¿ß»«½∞º«óá¡¿¿ ßΓÑ¬á »α¿ ó«º¡¿¬¡«óÑ¡¿¿ ¡ÑπßΓαá¡¿¼«⌐ «Φ¿í¬¿.
-
- IMPLIB.
-
- æ½πªÑí¡á∩ »α«úαá¼¼á IMPLIB ß«ºñáÑΓ ¿¼»«αΓ¿απѼπε
- í¿í½¿«ΓѬπ ß αáßΦ¿αÑ¡¿Ñ¼ .LIB ¡á «ß¡«óÑ Σá⌐½á «»αÑñѽѡ¿∩
- ¼«ñπ½∩ DLL. ê¼»«αΓ¿απѼá∩ í¿í½¿«ΓѬ¿ ñ«½ª¡á »α¿ß«Ññ¿¡∩Γ∞ß∩ ó
- ¬«¼á¡ñ¡«⌐ ßΓα«¬Ñ ¬«¼»«¡«óΘ¿¬á ¬ »α¿¬½áñ¡δ¼ »α«úαá¼¼á¼,
- ¿ß»«½∞ºπεΘ¿¼ φΓπ í¿í½¿«ΓѬπ. ¥Γ« »«ºó«½∩ÑΓ ¬«ααÑ¬Γ¡« αáºαÑΦ¿Γ∞
- ßß佬¿ ¡á Σπ¡¬µ¿¿ ñ¿¡á¼¿τÑ߬«⌐ í¿í½¿«ΓѬ¿.
-
- Å«ñα«í¡« IMPLIB «»¿ßá¡á ó "Tools".
-
- 諼»¿½∩Γ«α αÑßπαß«ó.
-
- éßÑ DLL ñ«½ª¡δ íδΓ∞ «Γ¬«¼»¿½¿α«óá¡δ ¬«¼»¿½∩Γ«α«¼ αÑßπαß«ó
- ñ½∩ Γ«ú«, τΓ«íδ «¡¿ í뫨 ß«ó¼ÑßΓ¿¼δ ß Windows 3.0.
-
-
- Windows 3.0/pg/3#3 = 137 =
-
- éδ ¼«ªÑΓÑ «Γ¬«¼»¿½¿α«óáΓ∞ DLL ß »«¼«Θ∞ε ¬«¼»¿½∩Γ«αá
- αÑßπαß«ó ß π¬áºá¡¿Ñ¼ ¬½ετá -p. ¥Γ¿¼ óδ ñѽáÑΓÑ í¿í½¿«ΓѬπ
- »α¿óáΓ¡«⌐, Γ.Ñ. ñ«ßΓπ»¡«⌐ ñ½∩ ó맮óá ¿º «ñ¡«⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ, ñ½∩ ñαπú¿σ »α¿¬½áñ¡δσ »α«úαá¼¼ «¡á íπñÑΓ
- ¡Ññ«ßΓπ»¡«⌐. é ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ EMS ß í«½∞Φ¿¼ ΣαÑ⌐¼«¼
- «Γ«íαáªÑ¡¿∩ Windows »«¼ÑΘáÑΓ ßÑú¼Ñ¡Γδ ñá¡¡δσ ¿ ¬«ñá Γᬿσ
- í¿í½¿«ΓѬ óδΦÑ úαá¡¿µδ «Γ«íαáªÑ¡¿∩. é ¬«¡Σ¿úπαᵿ¿ »á¼∩Γ¿ ß
- ¼á½δ¼ ΣαÑ⌐¼«¼ «Γ«íαáªÑ¡¿∩ Windows »«¼ÑΘáÑΓ ÑÑ ¡¿ªÑ úαá¡¿µδ
- «Γ«íαáªÑ¡¿∩, ñáªÑ Ñß½¿ í¿í½¿«ΓÑ¬á »α¿óáΓ¡á∩. ä«»«½¡¿Γѽ∞¡πε
- ¿¡Σ«α¼áµ¿ε « ¬«¡Σ¿úπαᵿ∩σ »á¼∩Γ¿ Windows óδ ¡á⌐ñÑΓÑ ó ú½áóÑ
- 16, "àΘÑ «í π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε".
-
- æ½ÑñπεΘá∩ Γáí½¿µá ßπ¼¼¿απÑΓ «Γ½¿τ¿∩ ¼Ñªñπ »α¿óáΓ¡δ¼¿ ¿
- ¡Ñ»α¿óáΓ¡δ¼¿ í¿í½¿«ΓѬἿ ñ½∩ ñóπσ ¬«¡Σ¿úπαᵿ⌐ »á¼∩Γ¿ EMS.
-
-
- Windows 3.0/pg/3#3 = 138 =
-
-
- Åα¿óáΓ¡á∩ í¿í½¿«ΓѬá ìÑ»α¿óáΓ¡á∩ í¿í½¿«ΓѬá
- ────────────────────────────────────────────
- ÄíΩÑ¬Γ »á¼∩Γ¿ îá½δ⌐ ü«½∞Φ«⌐ îá½δ⌐ ü«½∞Φ«⌐
- í¿í½¿«ΓѬ¿ ΣαÑ⌐¼ ΣαÑ⌐¼ ΣαÑ⌐¼ ΣαÑ⌐¼
- ───────────────────────────────────────────────────────────────
- æÑú¼Ñ¡Γ ñá¡¡δσ ¡¿ªÑ ¡¿ªÑ ¡¿ªÑ óδΦÑ
-
- ö¿¬ß¿α«óá¡¡δ⌐ ßÑú-
- ¼Ñ¡Γ ¬«ñá ¡¿ªÑ ¡¿ªÑ ¡¿ªÑ óδΦÑ
-
- ÉÑßπαßδ ¡¿ªÑ óδΦÑ ¡¿ªÑ óδΦÑ
-
- æíαáßδóáѼδ⌐ ßÑú-
- ¼Ñ¡Γ ¬«ñá ¡¿ªÑ óδΦÑ ¡¿ªÑ óδΦÑ
- ───────────────────────────────────────────────────────────────
-
- 20.4 ä«ßΓπ» ¬ DLL ¿º »α¿¬½áñ¡δσ »α«úαá¼¼.
-
- é ñá¡¡«¼ αáºñÑ½Ñ «»¿ßá¡δ Γα¿ Φáúá, ¡Ñ«íσ«ñ¿¼δσ ñ½∩
- «ßπΘÑßΓó½Ñ¡¿∩ ñ«ßΓπ»á ¬ DLL ¿º »α¿¬½áñ¡«⌐ »α«úαá¼¼δ:
-
- - 櫺ñá¡¿Ñ »α«Γ«Γ¿»«ó í¿í½¿«ΓÑτ¡δσ Σπ¡¬µ¿⌐.
-
- - é맮ó í¿í½¿«ΓÑτ¡δσ Σπ¡¬µ¿⌐.
-
- - ê¼»«αΓ¿α«óá¡¿Ñ í¿í½¿«ΓÑτ¡δσ Σπ¡¬µ¿⌐.
- 20.4.1 櫺ñá¡¿Ñ »α«Γ«Γ¿»á í¿í½¿«ΓÑτ¡δσ Σπ¡¬µ¿⌐.
-
- Ä»ÑαáΓ«α »α«Γ«Γ¿»á ñ«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ «»αÑñѽѡ¿∩
- óßÑσ Σπ¡¬µ¿⌐ í¿í½¿«ΓѬ¿ ó« óßÑσ »α¿¬½áñ¡δσ »α«úαá¼¼áσ,
- ¿ß»«½∞ºπεΘ¿σ φΓπ í¿í½¿«ΓѬπ. ä½∩ ¡áΦÑú« »α¿¼Ñαá »α«Γ«Γ¿» íπñÑΓ
- óδú½∩ñÑΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- VOID FAR PASCAL MinRoutine(int,LPSTR);
-
- Åα«Γ«Γ¿» «»αÑñѽ∩ÑΓ ñ½∩ ¬«¼»¿½∩Γ«αá »áαá¼ÑΓαδ ¿
- ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ Σπ¡¬µ¿¿. çáΓѼ ¬«¼»¿½∩Γ«α ¼«ªÑΓ ß«ºñáΓ∞
- ß««ΓóÑΓßΓóπεΘ¿⌐ ¬«ñ ñ½∩ ó맮óá í¿í½¿«ΓÑτ¡«⌐ Σπ¡¬µ¿¿. èα«¼Ñ
- φΓ«ú«, »α¿ ¿ß»«∞º«óá¡¿¿ ¬½ετá -W2 ¬«¼»¿½∩Γ«α ¼«ªÑΓ óδñáΓ∞
- »αÑñπ»αѪñáεΘÑÑ ß««íΘÑ¡¿Ñ ó ß½πτáÑ, Ñß½¿ ¿ß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿¿
- ¿ ÑÑ »α«Γ«Γ¿» «Γ½¿τáεΓß∩. îδ ¡áßΓ«∩Γѽ∞¡« αѬ«¼Ñ¡ñπѼ
- ¿ß»«½∞º«óáΓ∞ »α«Γ«Γ¿»δ ¿ ñ½∩ Σπ¡¬µ¿⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, Γ.¬.
- φΓ« »«ºó«½∩ÑΓ ¿ºíѪáΓ∞ «Φ¿í«¬ Γᬫú« α«ñá. ìá»α¿¼Ñα, ¬«¼»¿½∩Γ«α
- óδñáßΓ »αÑñπ»αѪñáεΘÑÑ ß««íΘÑ¡¿Ñ ó ß½πτáÑ, Ñß½¿ «»αÑñѽѡ¡á∩
- óδΦÑ Σπ¡¬µ¿∩ MinRoutine íπñÑΓ óδºóá¡á ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- MinRoutine (5);
-
- é맮ó í¿í½¿«ΓÑτ¡δσ Σπ¡¬µ¿⌐.
-
- é맮ó Σπ¡¬µ¿⌐ DLL ¡Ñ «Γ½¿τáÑΓß∩ «Γ ó맮óá Σπ¡¬µ¿⌐
-
- Windows 3.0/pg/3#3 = 139 =
-
- ßΓáΓ¿τÑ߬«⌐ í¿í½¿«ΓѬ¿ ¿½¿ «Γ ó맮óá ñαπú¿σ Σπ¡¬µ¿⌐ ßἫ⌐
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. Å«ß½Ñ π¬áºá¡¿∩ »α«Γ«Γ¿»á í¿í½¿«ΓÑτ¡«⌐
- Σπ¡¬µ¿¿ óδ ¼«ªÑΓÑ óδºδóáΓ∞ ÑÑ «íδτ¡δ¼ «íαẫ¼.
- 20.4.2 ê¼»«αΓ¿α«óá¡¿Ñ í¿í½¿«ΓÑτ¡δσ Σπ¡¬µ¿⌐.
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ¿¼»«αΓ¿α«óáΓ∞ í¿í½¿«ΓÑτ¡δÑ
- Σπ¡¬µ¿¿ ΓαѼ∩ ß»«ß«íἿ:
-
- - ìÑ∩ó¡« ¿¼»«αΓ¿α«óáΓ∞ ó« óαѼ∩ ¬«¼»«¡«ó¬¿.
-
- - ƒó¡« ¿¼»«αΓ¿α«óáΓ∞ ó« óαѼ∩ ¬«¼»«¡«ó¬¿.
-
- - ê¼»«αΓ¿α«óáΓ∞ ñ¿¡á¼¿τÑ߬¿ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩.
-
- é« óßÑσ ß½πτá∩σ ¿¡Σ«α¼áµ¿∩ « ñ¿¡á¼¿τÑ߬«¼ ßó∩ºδóá¡¿¿
- ß«ñÑαªáΘá∩ß∩ ó í¿í½¿«ΓѬÑ, ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ ¿¼∩ í¿í½¿«ΓѬ¿ ¿ ¿¼∩
- Σπ¡¬µ¿¿ ¿½¿ ÑÑ óσ«ñ¡«Ñ º¡áτÑ¡¿Ñ. ū߬«½∞¬π τáΘÑ óßÑú«
- ¿ß»«½∞ºπÑΓß∩ ¡Ñ∩ó¡«Ñ ¿¼»«αΓ¿α«óá¡¿Ñ, Γ« φΓ«Γ ß»«ß«í ¿
- «íßπªñáÑΓß∩ »Ñαóδ¼.
-
- ìÑ∩ó¡«Ñ ¿¼»«αΓ¿α«óá¡¿Ñ ó« óαѼ∩ ¬«¼»«¡«ó¬¿.
-
- ìÑ∩ó¡«Ñ ¿¼»«αΓ¿α«óá¡¿Ñ óδ»«½¡∩ÑΓß∩, ¬«úñá óδ »α¿ó«ñ¿ΓÑ
- ß»¿ß«¬ ¿¼»«αΓ¿απѼδσ í¿í½¿«ΓѬ ó ¬«¼á¡ñ¡«⌐ ßΓα«¬Ñ ¬«¼»«¡«óΘ¿¬á
- ñ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. ê¼»«αΓ¿απѼδÑ í¿í½¿«ΓѬ¿ ß«ºñáεΓß∩ ß
- »«¼«Θ∞ε »α«úαá¼¼δ IMPLIB, ¬á¬ «»¿ßá¡« ó αáºñÑ½Ñ 20.3.3,
- "櫺ñá¡¿Ñ Make-Σá⌐½á".
-
- SDK ß«ñÑαª¿Γ ¡áí«α ¿¼»«αΓ¿απѼδσ í¿í½¿«ΓѬ, ¬«Γ«αδÑ
- »«ºó«½∩εΓ «ßπΘÑßΓó¿Γ∞ ßó∩º∞ ß ñ¿¡á¼¿τÑ߬¿¼¿ í¿í½¿«ΓѬἿ
- Windows. é Γáí½¿µÑ 20.2 »α¿ó«ñ¿Γß∩ ß»¿ß«¬ φΓ¿σ Σá⌐½«ó ¿ ¿σ
- ¡áº¡áτÑ¡¿Ñ.
-
-
- Windows 3.0/pg/3#3 = 140 =
-
-
- Æáí½¿µá 20.2 ê¼»«αΓ¿απѼδÑ í¿í½¿«ΓѬ¿ Windows SDK.
- ───────────────────────────────────────────────────────────────
- ê¼∩ Σá⌐½á ìạáτÑ¡¿Ñ
- ───────────────────────────────────────────────────────────────
- LIBW.LIB ê¼»«αΓ¿απѼá∩ ¿¡Σ«α¼áµ¿∩ ñ½∩ USER.EXE,
- GDI.EXE, ¿ KERNEL.EXE.
-
- SDLLCEW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ Windows DLL, Σπ¡¬µ¿⌐ ¿ß»«½-
- ¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ í¿í½¿«ΓѬ¿ φ¼π½∩Γ«αá ñ½∩
- DLL ó ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- MDLLCEW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ Windows DLL, Σπ¡¬µ¿⌐ ¿ß»«½-
- ¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ í¿í½¿«ΓѬ¿ φ¼π½∩Γ«αá ñ½∩
- DLL ó ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- CDLLCEW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ Windows DLL, Σπ¡¬µ¿⌐ ¿ß»«½-
- ¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ í¿í½¿«ΓѬ¿ φ¼π½∩Γ«αá ñ½∩
- DLL ó ¬«¼»á¬Γ¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- LDLLCEW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ Windows DLL, Σπ¡¬µ¿⌐ ¿ß»«½-
- ¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ í¿í½¿«ΓѬ¿ φ¼π½∩Γ«αá ñ½∩
- DLL ó í«½∞Φ«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- SDLLCAW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ Windows DLL, Σπ¡¬µ¿⌐ ¿ß»«½-
- ¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ á½∞ΓÑα¡áΓ¿ó¡«⌐ ¼áΓѼáΓ¿τÑ߬«⌐
- í¿í½¿«ΓѬ¿ ñ½∩ DLL ó ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- MDLLCAW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ Windows DLL, Σπ¡¬µ¿⌐ ¿ß»«½-
- ¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ á½∞ΓÑα¡áΓ¿ó¡«⌐ ¼áΓѼáΓ¿τÑ߬«⌐
- í¿í½¿«ΓѬ¿ ñ½∩ DLL ó ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- CDLLCAW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ Windows DLL, Σπ¡¬µ¿⌐ ¿ß»«½-
- ¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ á½∞ΓÑα¡áΓ¿ó¡«⌐ ¼áΓѼáΓ¿τÑ߬«⌐
- í¿í½¿«ΓѬ¿ ñ½∩ DLL ó ¬«¼»á¬Γ¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- LDLLCAW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ Windows DLL, Σπ¡¬µ¿⌐ ¿ß»«½-
- ¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ á½∞ΓÑα¡áΓ¿ó¡«⌐ ¼áΓѼáΓ¿τÑ߬«⌐
- í¿í½¿«ΓѬ¿ ñ½∩ DLL ó í«½∞Φ«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- SLIBCEW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ »α¿¬½áñ¡δσ »α«úαá¼¼ Windows,
- Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ í¿í½¿«ΓѬ¿
- φ¼π½∩Γ«αá ñ½∩ ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- MLIBCEW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ »α¿¬½áñ¡δσ »α«úαá¼¼ Windows,
- Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ í¿í½¿«ΓѬ¿
- φ¼π½∩Γ«αá ñ½∩ ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- CLIBCEW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ »α¿¬½áñ¡δσ »α«úαá¼¼ Windows,
- Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ í¿í½¿«ΓѬ¿
- φ¼π½∩Γ«αá ñ½∩ ¬«¼»á¬Γ¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- LLIBCEW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ »α¿¬½áñ¡δσ »α«úαá¼¼ Windows,
-
- Windows 3.0/pg/3#3 = 141 =
-
- Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ í¿í½¿«ΓѬ¿
- φ¼π½∩Γ«αá ñ½∩ í«½∞Φ«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- SLIBCAW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ »α¿¬½áñ¡δσ »α«úαá¼¼ Windows,
- Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ á½∞ΓÑα¡áΓ¿ó¡«⌐
- ¼áΓѼáΓ¿τÑ߬«⌐ í¿í½¿«ΓѬ¿ φ¼π½∩Γ«αá ñ½∩ ¼á½«⌐
- ¼«ñѽ¿ »á¼∩Γ¿.
-
- MLIBCAW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ »α¿¬½áñ¡δσ »α«úαá¼¼ Windows,
- Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ á½∞ΓÑα¡áΓ¿ó¡«⌐
- ¼áΓѼáΓ¿τÑ߬«⌐ í¿í½¿«ΓѬ¿ φ¼π½∩Γ«αá ñ½∩
- ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- CLIBCAW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ »α¿¬½áñ¡δσ »α«úαá¼¼ Windows,
- Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ á½∞ΓÑα¡áΓ¿ó¡«⌐
- ¼áΓѼáΓ¿τÑ߬«⌐ í¿í½¿«ΓѬ¿ φ¼π½∩Γ«αá ñ½∩
- ¬«¼»á¬Γ¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- LLIBCAW.LIB æΓáαΓ«óδ⌐ ¬«ñ ñ½∩ »α¿¬½áñ¡δσ »α«úαá¼¼ Windows,
- Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ á½∞ΓÑα¡áΓ¿ó¡«⌐
- ¼áΓѼáΓ¿τÑ߬«⌐ í¿í½¿«ΓѬ¿ φ¼π½∩Γ«αá ñ½∩
- í«½∞Φ«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- WIN87EM.LIB ê¼»«αΓ¿απѼá∩ ¿¡Σ«α¼áµ¿∩ ñ½∩ DLL Windows ñ½∩
- í¿í½¿«ΓѬ¿ φ¼π½∩Γ«αá óδτ¿ß½Ñ¡¿⌐ ß »½áóáεΘÑ⌐
- Γ«τ¬«⌐.
- ───────────────────────────────────────────────────────────────
-
- ƒó¡«Ñ ¿¼»«αΓ¿α«óá¡¿Ñ ó« óαѼ∩ ¬«¼»«¡«ó¬¿.
-
- èᬠ¿ ¡Ñ∩ó¡«Ñ ¿¼»«αΓ¿α«óá¡¿Ñ, ∩ó¡«Ñ ¿¼»«αΓ¿α«óá¡¿Ñ
- óδ»«½¡∩ÑΓß∩ ó« óαѼ∩ ¬«¼»«¡«ó¬¿. Ä¡ óδ»«½¡∩ÑΓß∩ ¬«úñá óßÑ
- ¿¼»«αΓ¿απѼδÑ Σπ¡¬µ¿¿ »α¿ó«ñ∩Γß∩ ó αáºñÑ½Ñ IMPORTS Σá⌐½á
- «»αÑñѽѡ¿∩ ¼«ñπ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. é ß½ÑñπεΘѼ »α¿¼ÑαÑ
- ¿¼ÑεΓß∩ Γα¿ τáßΓ¿: ¿¼∩ Σπ¡¬µ¿¿ (MinRoutine), ¿¼∩ DLL, (MinDLL),
- ¿ óσ«ñ¡«Ñ º¡áτÑ¡¿Ñ (1).
-
- IMPORTS
- MinRoutine = MinDLL.1
-
- ä½∩ π¼Ñ¡∞ΦÑ¡¿∩ αẼÑαá ¿ π½πτΦÑ¡¿∩ σáαá¬ΓÑα¿ßΓ¿¬ ¼δ
- αѬ«¼Ñ¡ñπѼ αáºαáí«Γτ¿¬á¼ óßÑúñá «»αÑñѽ∩Γ∞ ¿ßσ«ñ¡δÑ óσ«ñ¡δÑ
- º¡áτÑ¡¿∩ ñ½∩ óßÑσ φ¬ß»«αΓ¿απѼδσ Σπ¡¬µ¿⌐ DLL. Äñ¡á¬«, Ñß½¿ óδ
- ¡Ñ π¬áºδóáÑΓÑ ¿ßσ«ñ¡«Ñ óσ«ñ¡«Ñ º¡áτÑ¡¿Ñ ñ½∩ Σπ¡¬µ¿¿, Γ« ÑÑ
- ¼«ª¡« ¿¼»«αΓ¿α«óáΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- IMPORTS
- MinDLL.MinRoutine
-
- 信ἿτÑ߬¿⌐ ¿¼»«αΓ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩.
-
- Åα¿ ¿¼»«αΓ¿α«óá¡¿¿ ó »Ñα¿«ñ óδ»«½¡Ñ¡¿∩ »α¿¬½áñ¡á∩
- »α«úαá¼¼á ñ«½ª¡á ó ¡áτá½Ñ ∩ó¡« ºáúαπº¿Γ∞ í¿í½¿«ΓÑ¬π ¿ ºá»α«ß¿Γ∞
-
- Windows 3.0/pg/3#3 = 142 =
-
- áñαÑß ¡πª¡«⌐ Ñ⌐ Σπ¡¬µ¿¿. Å«ß½Ñ φΓ«ú« ¼«ª¡« óδ»«½¡∩Γ∞ ó맮ó
- Σπ¡¬µ¿¿. é ß½ÑñπεΘѼ »α¿¼ÑαÑ »«¬áºá¡á ñ¿¡á¼¿τÑ߬á∩ ¬«¼»«¡«ó¬á ß
- Σπ¡¬µ¿Ñ⌐ CreateInfo ¿º í¿í½¿«ΓѬ¿ INFO.DLL.
-
- HANDLE hLibrary;
- FARPROC lpFunc;
-
- hLibrary = LoadLibrary("INFO.DLL");
- if(hLibrary >= 32)
- {
- lpFunc = GetProcAdress(hLibrary,"CreateInfo");
- if(lpFunc != (FARPROC)NULL)
- (*lpFunc)((LPSTR)Buffer,512);
- FreeLibrary(hLibrary);
- }
-
- é φΓ«¼ »α¿¼ÑαÑ Σπ¡¬µ¿∩ LoadLibrary ºáúαπªáÑΓ ΓαÑíπѼπε
- í¿í½¿«ΓѬπ Windows ¿ ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α ¼«ñπ½∩ í¿í½¿«ΓѬ¿.
- öπ¡¬µ¿∩ GetProcAdress »«½πτáÑΓ áñαÑß Σπ¡¬µ¿¿ »« ÑÑ ¿¼Ñ¡¿. ¥Γ«Γ
- áñαÑß ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ ó맮óá Σπ¡¬µ¿¿. ì¿ªÑ »α¿óÑñÑ¡
- «»ÑαáΓ«α ¡Ñ»α∩¼«ú« ó맮óá Σπ¡¬µ¿¿, ó ¬«Γ«α«¼ Ñ⌐ »ÑαÑñÑáεΓß∩ ñóá
- »áαá¼ÑΓαá: Buffer ¿ 512:
-
- (*lpFunc)((LPSTR)Buffer,512);
-
- é ¬«¡µÑ Σπ¡¬µ¿∩ FreeLibrary π¼Ñ¡∞ΦáÑΓ ¡á Ññ¿¡¿µπ ßτÑΓτ¿¬
- ßß佫¬ ¡á í¿í½¿«ΓѬπ. è«úñá ßτÑΓτ¿¬ ßΓá¡«ó¿Γß∩ αáó¡δ¼ 0 (Γ.Ñ.
- í¿í½¿«ΓѬπ í«½∞ΦÑ ¡Ñ ¿ß»«½∞ºπÑΓ ¡¿ «ñ¡á »α¿¬½áñ¡á∩ »α«úαá¼¼á),
- Windows πñá½∩ÑΓ ÑÑ ¿º »á¼∩Γ¿.
-
- Äñ¡á¬«, ¼«ª¡« »«½πτ¿Γ∞ í«½ÑÑ óδß«¬¿Ñ σáαá¬ΓÑα¿ßΓ¿¬¿, Ñß½¿
- Σπ¡¬µ¿∩ CreateInfo ¿¼Ñ½á íδ ßó∩ºá¡¡«Ñ ß ¡Ñ⌐ ¿ßσ«ñ¡«Ñ óσ«ñ¡«Ñ
- º¡áτÑ¡¿Ñ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩ í¿í½¿«ΓѬ¿. ì¿ªÑ »«¬áºá¡«,
- ¬á¬ φΓ« ¼«ª¡« ßñѽáΓ∞:
-
- EXPORTS
- CreateInfo @27
-
- ¥Γ«Γ «»ÑαáΓ«α «»αÑñѽ∩ÑΓ ñ½∩ Σπ¡¬µ¿¿ CreateInfo ¿ßσ«ñ¡«Ñ
- óσ«ñ¡«Ñ º¡áτÑ¡¿Ñ αáó¡«Ñ 27. é φΓ«¼ ß½πτáÑΓ ó맮ó Σπ¡¬µ¿¿
- GetProcAdress ¼«ª¡« ¿º¼Ñ¡¿Γ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- GetProcAdress(hLibrary,MAKEINTRESOURCE(27));
- 20.5 Åαáó¿½á ó½áñÑ¡¿∩ ñ½∩ «íΩÑ¬Γ«ó Windows.
-
- ÄíΩѬΓδ »á¼∩Γ¿ Windows ¼«úπΓ ¡áσ«ñ¿Γß∩ ¬á¬ ó ½«¬á½∞¡«⌐
- »á¼∩Γ¿, Γᬠ¿ ó ú½«íá½∞¡«⌐ »á¼∩Γ¿. è «íΩѬΓá¼ Windows
- «Γ¡«ß∩Γß∩:
-
- - ÉáßΓα«óδÑ ¬áαΓδ.
-
- - îÑΓáΣá⌐½δ.
-
- Windows 3.0/pg/3#3 = 143 =
-
-
- - æÑú¼Ñ¡Γδ ¬«ñá »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
-
- - ÉÑßπαßδ (ºá ¿ß¬½ετÑ¡¿Ñ¼ Φα¿ΣΓ«ó).
-
- Windows αáßß¼áΓα¿óáεΓ «íΩѬΓδ »á¼∩Γ¿ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- - Åਪ½áñ¡á∩ »α«úαá¼¼á ó½áñÑÑΓ »á¼∩Γ∞ε, Ñß½¿ «¡á ÑÑ
- óδñѽ¿½á.
-
- - è«úñá DLL óδñѽ∩ÑΓ ú½«íá½∞¡δ⌐ «íΩѬΓ, φΓ¿¼ «íΩÑ¬Γ«¼
- ó½áñÑÑΓ »α¿¬½áñ¡á∩ »α«úαá¼¼á, ¬«Γ«αá∩ óδºóá½á DLL.
-
- - Åα¿ ºáóÑαΦÑ¡¿¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿½¿ DLL Windows
- «ßó«í«ªñáÑΓ ß¿ßΓѼπ «Γ óßÑσ «íΩÑ¬Γ«ó ¿½¿ ¬½áßß«ó «¬«¡,
- ¬«Γ«α묨 ó½áñÑεΓ ñá¡¡á∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿½¿ DLL.
-
- - Éáºñѽѡ¿Ñ ñá¡¡δσ ¼«ªÑΓ »α«¿ºó«ñ¿Γ∞ß∩ ß ¿ß»«½∞º«ó᡿Ѽ
- ß¿ßΓѼ¡«ú« íπΣÑαá ¿½¿ »α«Γ«¬«½á ñ¿¡á¼¿τÑ߬«ú« «í¼Ñ¡á
- ñá¡¡δ¼¿ (DDE), σ«Γ∩ óδ ¼«ªÑΓÑ Γá¬ªÑ αáºñѽ∩Γ∞ ñá¡¡δÑ ß
- »«¼«Φ∞ε ßÑú¼Ñ¡Γá ñá¡¡δσ DLL. Åα¿ ¿ß»«½∞º«óá¡¿¿ DDE ¿½¿
- ß¿ßΓѼ¡«ú« íπΣÑαá Windows ¬«»¿απÑΓ ñá¡¡δÑ ó ß«íßΓóÑ¡¡«Ñ
- áñαÑß¡«Ñ »α«ßΓαá¡ßΓó« »«½πτáεΘÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
-
- - ÄíΩѬΓδ GDI (¬¿ßΓ¿, »Ñα∞∩, ¬«¡ΓѬßΓδ πßΓα«⌐ßΓó ¿
- «í½áßΓ¿) ¡Ñ ∩ó½∩εΓß∩ «íδτ¡δ¼¿ «íΩѬΓἿ Windows ¿ ¡Ñ
- «ßó«í«ªñáεΓß∩ »α¿ ºáóÑαΦÑ¡¿¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,
- ¬«Γ«αá∩ ¿¼¿ ó½áñÑÑΓ. Å« φΓ«⌐ »α¿τ¿¡Ñ »α¿¬½áñ¡á∩
- »α«úαá¼¼á ¿½¿ DLL ñ«½ª¡á »ÑαÑñ ºáóÑαΦÑ¡¿Ñ¼ ∩ó¡«
- αáºαπΦ¿Γ∞ óßÑ ß«ºñá¡¡δÑ Ñε «íΩѬΓδ GDI.
-
- 20.6 Åα¿¼Ñα í¿í½¿«ΓѬ¿: Select.
-
- é ñá¡¡«¼ »α¿¼ÑαÑ í¿í½¿«ΓѬ¿ ß«ñÑαªáΓß∩ Σπ¡¬µ¿¿, ¬«Γ«αδÑ
- ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ ñ½∩ óδ»«½¡Ñ¡¿∩ óδí«α¬¿ ß »«¼«Θ∞ε
- ¼δΦ¿. ¥Γ¿ Σπ¡¬µ¿¿ «ß¡«óδóáεΓß∩ ¡á ¼ÑΓ«ñÑ úαáΣ¿τÑ߬«⌐ óδí«α¬¿,
- «»¿ßá¡¡«¼ ó ú½áóÑ 6, "èπαß«α, ¼δΦ∞ ¿ ¬½áó¿áΓπαá". Ä¡¿
- «íÑß»Ñτ¿óáεΓ ñóá ó¿ñá «íαáΓ¡«⌐ ßó∩º¿ »α¿ óδí«α¬Ñ: »á¡Ñ½∞,
- »«¬áºδóáεΘπε «τÑαΓá¡¿∩ óδí«α¬¿, ¿ í½«¬, »«¬áºδóáεΘ¿⌐ óßε
- óδí«α¬π ó ¿¡óÑαΓ¿α«óá¡¡«¼ ó¿ñÑ. ü¿í½¿«ΓѬá φ¬ß»«αΓ¿απÑΓ
- ß½ÑñπεΦ¿Ñ Σπ¡¬µ¿¿:
-
- öπ¡¬µ¿∩ äÑ⌐ßΓó¿Ñ
- ───────────────────────────────────────────────────────────────
- StartSelection ìáτ¿¡áÑΓ óδí«α¬π ¿ ¿¡¿µ¿á½¿º¿απÑΓ
- »α∩¼«πú«½∞¡¿¬ óδí«α¬¿. Åα¿ óδí«α¬Ñ ß
- »«¼«Θ∞ε ¼δΦ¿ φΓá Σπ¡¬µ¿∩ óδºδóáÑΓß∩ »α¿
- »«½πτÑ¡¿¿ ß««íΘÑ¡¿∩ WM_LBUTTONDOWN.
-
- UpdateSelection è«ααÑ¬Γ¿απÑΓ »á¡Ñ½∞ ¿½¿ í½«¬ óδí«α¬¿. Åα¿
- óδí«α¬Ñ ß »«¼«Θ∞ε ¼δΦ¿ φΓá Σπ¡¬µ¿∩
- óδºδóáÑΓß∩ »α¿ »«½πτÑ¡¿¿ ß««íΘÑ¡¿∩
-
- Windows 3.0/pg/3#3 = 144 =
-
- WM_MOUSEMOVE.
-
- EndSelection çá¬á¡τ¿óáÑΓ óδí«α¬π, Γ. Ñ. »α∩¼«πú«½∞¡¿¬
- óδí«α¬¿ »«½πτáÑΓ «¬«¡τáΓѽ∞¡«
- πßΓá¡«ó½Ñ¡¡δÑ αẼÑαδ. Åα¿ óδí«α¬Ñ ß
- »«¼«Θ∞ε ¼δΦ¿ φΓá Σπ¡¬µ¿∩ óδºδóáÑΓß∩ »α¿
- »«½πτÑ¡¿¿ ß««íΘÑ¡¿∩ WM_LBUTTONUP.
-
- ClearSelection ôñá½∩ÑΓ ß φ¬αá¡á »á¡Ñ½∞ ¿½¿ í½«¬ óδí«α¬¿ ¿
- «τ¿ΘáÑΓ »α∩¼«πú«½∞¡¿¬ óδí«α¬¿.
- ───────────────────────────────────────────────────────────────
-
- Åα∩¼«πú«½∞¡¿¬ óδí«α¬¿ - φΓ« ßΓαπ¬Γπαá RECT, ¬«Γ«απε ºáñáÑΓ
- »α«úαá¼¼á ¿ ¬«Γ«απε ºá»«½¡∩εΓ í¿í½¿«ΓÑτ¡δÑ Σπ¡¬µ¿¿. è««αñ¿¡áΓδ,
- ºáñá¡¡δÑ ó »α∩¼«πú«½∞¡¿¬Ñ, - φΓ« ¬««αñ¿¡áΓδ »«½∞º«óáΓѽ∩.
-
- ä½∩ ß«ºñá¡¿∩ φΓ«⌐ í¿í½¿«ΓѬ¿ ¡Ñ«íσ«ñ¿¼« ß«ºñáΓ∞ ¡Ñ߬«½∞¬«
- Σá⌐½«ó:
-
- öá⌐½ æ«ñÑন¼«Ñ
- ───────────────────────────────────────────────────────────────
- select.c êßσ«ñ¡á∩ æ-»α«úαá¼¼á ñ½∩ óδíαá¡¡δσ Σπ¡¬-
- 権.
-
- select.def öá⌐½ «»αÑñѽѡ¿∩ ¼«ñπ½∩ ñ½∩ í¿í½¿«ΓѬ¿
- Select.
-
- select.h 鬽ετáѼδ⌐ Σá⌐½ ñ½∩ í¿í½¿«ΓѬ¿ Select.
-
- select öá⌐½ make ñ½∩ í¿í½¿«ΓѬ¿ Select.
-
- select.lib ê¼»«αΓ¿απѼá∩ í¿í½¿«ΓѬá ñ½∩ í¿í½¿«ΓѬ¿
- Select.
- ───────────────────────────────────────────────────────────────
-
- ü¿í½¿«ΓѬá Select ¡Ñ ñ«½ª¡á ¿¼ÑΓ∞ Σá⌐½á ¿¡¿µ¿á½¿ºáµ¿¿,
- »«ß¬«½∞¬π Σπ¡¬µ¿¿ ¡Ñ ¿ß»«½∞ºπεΓ ½«¬á½∞¡πε ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞
- »á¼∩Γ¿ ¿ ¡¿¬á¬«⌐ ñαπú«⌐ ¿¡¿µ¿á½¿ºáµ¿¿ ¡Ñ ΓαÑíπÑΓß∩.
-
- Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
- ó ß½ÑñπεΘ¿σ αáºñѽáσ, 󫺼«ª¡« óá¼ íπñÑΓ πñ«í¡ÑÑ »α«ßΓ«
- »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
- 20.6.1 櫺ñá¡¿Ñ Σπ¡¬µ¿⌐.
-
- ¡« ß«ºñáΓ∞ í¿í½¿«ΓÑτ¡δÑ Σπ¡¬µ¿¿, ß½Ññπ∩ «»¿ßá¡¿ε,
- ñá¡¡«¼π ó ú½áóÑ 6, "èπαß«α, ¼δΦ∞ ¿ ¬½áó¿áΓπαá". Åα«ßΓ«
- ߬«»¿απ⌐ΓÑ ó ß««ΓóÑΓßΓóπεΘ¿Ñ Σπ¡¬µ¿¿ «»ÑαáΓ«αδ, ¿ß»«½∞ºπѼδÑ
- ñ½∩ αÑ὿ºáµ¿¿ úαáΣ¿τÑ߬«⌐ óδí«α¬¿. èα«¼Ñ Γ«ú«, τΓ«íδ Σπ¡¬µ¿¿
- óδí«α¬¿ í뫨 í«½ÑÑ ú¿í¬¿¼¿, ñ«íáó∞ΓÑ í½«¬ ñ«»«½¡¿Γѽ∞¡δσ
- 󫺼«ª¡«ßΓÑ⌐.
-
- Å«ß½Ñ ¿º¼Ñ¡Ñ¡¿∩ Σπ¡¬µ¿∩ StartSelection íπñÑΓ óδú½∩ñÑΓ∞
-
- Windows 3.0/pg/3#3 = 145 =
-
- ⠪:
-
- int FAR PASCAL StartSelection(hWnd, ptCurrent,
- lpSelectRect, fFlags)
-
- HWND hWnd;
- POINT ptCurrent;
- LPRECT lpSelectRect;
- int fFlags;
- {
- if (!IsEmptyRect(lpSelectRect))
- ClearSelection(hWnd,lpSelectRect,fFlags);
- if (!fFlags & SL_EXTEND) {
- lpSelectRect->left = ptCurrent.x;
- lpSelectRect->top = ptCurrent.y;
- }
- lpSelectRect->right = ptCurrent.x;
- lpSelectRect->bottom = ptCurrent.y;
- SetCapture(hWnd);
- }
-
- ¥Γá Σπ¡¬µ¿∩ »«½πτáÑΓ ñÑß¬α¿»Γ«α «¬¡á hWnd, ΓѬπΘÑÑ
- »«½«ªÑ¡¿Ñ ¼δΦ¿ ptCurrent, ñ½¿¡¡δ⌐ π¬áºáΓѽ∞ ¡á »α∩¼«πú«½∞¡¿¬
- óδí«α¬¿ lpSelectRect ¿ Σ½áú¿ óδí«α¬¿ fFlags.
-
- ÅÑαóδ⌐ Φáú - «τ¿ßΓ¿Γ∞ óδí«α¬π, Ñß½¿ »α∩¼«πú«½∞¡¿¬ óδí«α¬¿
- ¡Ñ »πßΓ. àß½¿ »α∩¼«πú«½∞¡¿¬ »πßΓ, Γ« Σπ¡¬µ¿∩ IsRectEmpty
- ó«ºóαáΘáÑΓ TRUE. öπ¡¬µ¿∩ StartSelection «τ¿ΘáÑΓ óδí«α¬π, óδºóáó
- Σπ¡¬µ¿ε ClearSelection, ¬«Γ«αá∩ Γá¬ªÑ ¡áσ«ñ¿Γß∩ ó í¿í½¿«ΓѬÑ.
-
- æ½ÑñπεΘ¿⌐ Φáú - ¿¡¿µ¿á½¿ºáµ¿∩ »α∩¼«πú«½∞¡¿¬á óδí«α¬¿.
- öπ¡¬µ¿∩ StartSelection αáßΦ¿α∩ÑΓ óδí«α¬π («ßΓáó½∩∩ óÑασ¡¿⌐
- ½Ñóδ⌐ πú«½ óδí«α¬¿ ¡Ñ¿º¼Ñ¡¡δ¼), Ñß½¿ ó áαúπ¼Ñ¡ΓÑ fFlags
- πßΓá¡«ó½Ñ¡ í¿Γ SS_EXTEND. é »α«Γ¿ó¡«¼ ß½πτáÑ «¡á πßΓá¡áó½¿óáÑΓ
- óÑασ¡¿⌐ ½Ñóδ⌐ ¿ ¡¿ª¡¿⌐ »αáóδ⌐ πú½δ »α∩¼«πú«½∞¡¿¬á óδí«α¬¿ ¡á
- ΓѬπΘπε »«º¿µ¿ε ¼δΦ¿. öπ¡¬µ¿∩ SetCapture ¡á»αáó½∩ÑΓ óßε
- óó«ñ¿¼πε «Γ ¼δΦ¿ ¿¡Σ«α¼áµ¿ε ó «¬¡«, ñáªÑ Ñß½¿ ÑÑ ¬παß«α
- »ÑαѼÑΘáÑΓß∩ ºá »αÑñѽἿ «¬¡á. ¥Γ« ñѽáÑΓß∩ ñ½∩ Γ«ú«, τΓ«íδ
- »α«µÑßß óδí«α¬¿ »α«ñ«½ªá½ß∩ ¡Ñ»αÑαδó¡«. ä½∩ ó맮óá φΓ«⌐ Σπ¡¬µ¿¿
- »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ß½ÑñπÑΓ ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
-
- case WM_LBUTTONDOWN:
- bTrack = TRUE;
- StartSelection(hWnd, MAKEPOINT(lParam), &SelectRect,
- (wParam & MK_SHIFT) ? SL_EXTEND : NULL);
- break;
-
- Å«ß½Ñ ¿º¼Ñ¡Ñ¡¿∩ Σπ¡¬µ¿∩ UpdateSelection íπñÑΓ óδú½∩ñÑΓ∞
- ⠪:
-
- int FAR PASCAL UpdateSelection(hWnd, ptCurrent,
- lpSelectRect, fFlags)
- HWND hWnd;
-
- Windows 3.0/pg/3#3 = 146 =
-
- POINT ptCurrent;
- LPRECT lpSelectRect;
- int fFlags;
- {
- HDC hDC;
- short OldROP;
- hDC = GetDC(hWnd);
- switch (fFlags & SL_TYPE) {
- case SL_BOX:
- OldROP = SetROP2(hDC, R2_XORPEN);
- MoveTo(hDC, lpSelectRect->left,
- lpSelectRect->top);
- LineTo(hDC, lpSelectRect->right,
- lpSelectRect->top);
- LineTo(hDC, lpSelectRect->right,
- lpSelectRect->bottom);
- LineTo(hDC, lpSelectRect->left,
- lpSelectRect->bottom);
- LineTo(hDC, lpSelectRect->left,
- lpSelectRect->top);
- LineTo(hDC, ptCurrent.x, lpSelectRect->top);
- LineTo(hDC, ptCurrent.x, ptCurrent.y);
- LineTo(hDC, lpSelectRect->left, ptCurrent.y);
- LineTo(hDC, lpSelectRect->left,
- lpSelectRect.top);
- SetROP2(hDC, OldROP);
- break;
- case SL_BLOCK:
- PatBlt(hDC,
- lpSelectRect->left, lpSelectRect->bottom,
- lpSelectRect->right - lpSelectRect->left,
- ptCurrent.y - lpSelectRect->bottom,
- DSTINVERT);
- PatBlt(hDC, PrevX, OrgY,
- lpSelectRect->right, lpSelectRect->top,
- ptCurrent.x - lpSelectRect->right,
- ptCurrent.y - lpSelectRect->top, DSTINVERT);
- break;
- }
- lpSelectRect->right = ptCurrent.x;
- lpSelectRect->bottom = ptCurrent.y;
- ReleaseDC(hWnd, hDC);
- }
-
- Å«ß½Ñ Γ«ú«, ¬á¬ »«½∞º«óáΓѽ∞ ßñѽὠóδí«α¬π, Σπ¡¬µ¿∩
- UpdateSelection «íÑß»Ñτ¿óáÑΓ «íαáΓ¡πε ßó∩º∞ ß ñÑ⌐ßΓó¿∩¼¿
- »«½∞º«óáΓѽ∩. Åα¿ "»á¡Ñ½∞¡«⌐" óδí«α¬Ñ Σπ¡¬µ¿∩ ß¡áτá½á «τ¿ΘáÑΓ
- ΓѬπΘπε »á¡Ñ½∞, α¿ßπ∩ »«óÑασ ¡ÑÑ, á ºáΓѼ α¿ßπÑΓ ¡«óπε »á¡Ñ½∞.
- ¥Γ¿ ñÑ⌐ßΓó¿∩ ΓαÑíπεΓ 8 ó맮ó«ó Σπ¡¬µ¿¿ LineTo.
-
- ä½∩ ¬«ααÑ¬Γ¿α«ó¬¿ "í½«τ¡«⌐" óδí«α¬¿ Σπ¡¬µ¿∩
- UpdateSelection ¿¡óÑαΓ¿απÑΓ »α∩¼«πú«½∞¡¿¬ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- PatBlt. ä½∩ Γ«ú«, τΓ«íδ ¿ºíѪáΓ∞ ¼Ñαµá¡¿∩ »α¿ óδí«α¬Ñ, Σπ¡¬µ¿∩
-
- Windows 3.0/pg/3#3 = 147 =
-
- UpdateSelection ¿¡óÑαΓ¿απÑΓ Γ«½∞¬« Γπ τáßΓ∞ »α∩¼«πú«½∞¡¿¬á,
- ¬«Γ«αá∩ «Γ½¿τáÑΓß∩ «Γ »αÑñδñπΘÑú« »α∩¼«πú«½∞¡¿¬á óδí«α¬¿. ¥Γ«
- «º¡áτáÑΓ, τΓ« Σπ¡¬µ¿∩ ¿¡óÑαΓ¿απÑΓ ñóÑ «Γñѽ∞¡δσ τáßΓ¿ φ¬αá¡á.
- ÅαÑñ»«½áúáÑΓß∩, τΓ« Ññ¿¡ßΓóÑ¡¡«⌐ «í½áßΓ∞ε, ¬«Γ«απε ¡πª¡«
- ¿¡óÑαΓ¿α«óáΓ∞, ∩ó½∩ÑΓß∩ «í½áßΓ∞ ¼Ñªñπ »αÑñδñπΘ¿¼ ¿ ΓѬπΘ¿¼
- »«½«ªÑ¡¿Ñ¼ ¼δΦ¿. ìá α¿ß. 1 »αÑñßΓáó½Ñ¡δ Γ¿»¿τ¡δÑ ¬««αñ¿¡áΓδ ñ½∩
- «»¿ßá¡¿∩ ¿¡óÑαΓ¿απѼδσ «í½áßΓÑ⌐:
-
- É¿ßπ¡«¬ 20.1 ê¡óÑαΓ¿α«óá¡¿Ñ »α¿¼«πú«½∞¡¿¬á.
-
-
- ÅÑαóδ⌐ ó맮ó PatBlt ¿¡óÑαΓ¿απÑΓ ßá¼δ⌐ ½Ñóδ⌐ »α∩¼«πú«½∞¡¿¬,
- ¿ß»«½∞ºπ∩ lpSelectRect->left (¡áτá½∞¡«Ñ »«½«ªÑ¡¿Ñ »« «ß¿ σ »α¿
- »Ñαó«¼ ¡áªáΓ¿¿ ¡á ¬¡«»¬π ¼δΦ¿) ¿ lpSelectRect->bottom (ßá¼πε
- »«ß½Ññ¡εε ¬«ααѬµ¿ε »«½«ªÑ¡¿∩ ¼δΦ¿ »« «ß¿ π) ñ½∩ πßΓá¡«ó¬¿
- ¡áτá½∞¡«ú« »«½«ªÑ¡¿∩ ¿¡óÑαΓ¿απѼ«⌐ «í½áßΓ¿. ÿ¿α¿¡á »Ñαó«⌐
- «í½áßΓ¿ «»αÑñѽ∩ÑΓß∩ óδτ¿Γ᡿Ѽ lpSelectRect->left ¿º
- lpSelectRect->right (ßá¼á∩ »«ß½Ññ¡∩∩ ¬«ααѬµ¿∩ »«½«ªÑ¡¿∩ ¼δΦ¿
- »« «ß¿ σ). éδß«Γá φΓ«⌐ «í½áßΓ¿ «»αÑñѽ∩ÑΓß∩ óδτ¿Γ᡿Ѽ
- lpSelectRect->bottom ¿º ptCurrent.y (ΓѬπΘÑ⌐ »«º¿µ¿¿ ¼δΦ¿ »«
- ¬««αñ¿¡áΓÑ π).
-
- éΓ«α«⌐ ó맮ó PatBlt ¿¡óÑαΓ¿απÑΓ ßá¼δ⌐ »αáóδ⌐ »α∩¼«πú«½∞¡¿¬
- ß »«¼«Θ∞ε lpSelectRect->right (ßá¼«Ñ »«ß½Ññ¡ÑÑ »«½«ªÑ¡¿Ñ »« «ß¿
- σ »α¿ ¡áªáΓ¿¿ ¡á ¬¡«»¬π ¼δΦ¿) ¿ lpSelectRect->top (¡áτá½∞¡«Ñ
- »«½«ªÑ¡¿Ñ ¼δΦ¿ »« «ß¿ π) ñ½∩ πßΓá¡«ó¬¿ ¡áτá½∞¡«ú« »«½«ªÑ¡¿∩
- ¿¡óÑαΓ¿απѼ«⌐ «í½áßΓ¿. ÿ¿α¿¡á φΓ«⌐ óΓ«α«⌐ «í½áßΓ¿ «»αÑñѽ∩ÑΓß∩
- óδτ¿Γ᡿Ѽ lpSelectRect->bottom (ßá¼á∩ »«ß½Ññ¡∩∩ ¬«ααѬµ¿∩
- »«½«ªÑ¡¿∩ ¼δΦ¿ »« «ß¿ σ) ¿º ptCurrent.x (ΓѬπΘÑÑ »«½«ªÑ¡¿Ñ
- ¼δΦ¿ »« «ß¿ σ). éδß«Γá φΓ«⌐ «í½áßΓ¿ «»αÑñѽ∩ÑΓß∩ óδτ¿Γ᡿Ѽ
- lpSelectRect->top ¿º ptCurrent.y (ΓѬπΘÑÑ »«½«ªÑ¡¿Ñ ¼δΦ¿ »« «ß¿
- π).
-
- è«úñá ¬«ααÑ¬Γ¿α«ó¬á óδí«α¬¿ ºá¬«¡τÑ¡á, º¡áτÑ¡¿∩
- lpSelectRect->right ¿ lpSelectRect->bottom ¬«ααÑ¬Γ¿απεΓß∩ »πΓѼ
- »α¿ßóá¿óá¡¿∩ ¿¼ ΓѬπΘ¿σ º¡áτÑ¡¿⌐, ß«ñÑαªáΘ¿σß∩ ó ptCurrent.
-
- ä½∩ ¬«ααѬµ¿¿ "»á¡Ñ½∞¡«⌐" óδí«α¬¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ñ«½ª¡á óδºóáΓ∞ Σπ¡¬µ¿ε UpdateSelection ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- case WM_MOUSEMOVE:
- if (bTrack)
- UpdateSelection(hWnd, MAKEPOINT(lParam),
- &SelectRect, SL_BOX);
-
- Å«ß½Ñ ¿º¼Ñ¡Ñ¡¿∩ Σπ¡¬µ¿∩ EndSelection íπñÑΓ óδú½∩ñÑΓ∞ Γá¬:
-
- int FAR PASCAL EndSelection(ptCurrent, lpSelectRect)
- POINT ptCurrent;
- LPRECT lpSelectRect;
- {
- if (ptCurrent.x < lpSelectRect->left) {
- lpSelectRect->right = lpSelectRect->left;
-
- Windows 3.0/pg/3#3 = 148 =
-
- lpSelectRect->left = ptCurrent.x;
- }
- else
- lpSelectRect->right = ptCurrent.x;
- if (ptCurrent.y < lpSelectRect->top) {
- lpSelectRect->bottom = lpSelectRect->top;
- lpSelectRect->top = ptCurrent.y;
- }
- else
- lpSelectRect->bottom = ptCurrent.y;
- ReleaseCapture();
- }
-
- öπ¡¬µ¿∩ EndSelection ß«σαá¡∩ÑΓ ΓѬπΘÑÑ »«½«ªÑ¡¿Ñ ¼δΦ¿ ó
- »α∩¼«πú«½∞¡¿¬Ñ óδí«α¬¿. Ĭ«¡τáΓѽ∞¡«Ñ »«½«ªÑ¡¿Ñ ¼δΦ¿
- ¬«¡Γα«½¿απÑΓß∩ ñ½∩ Γ«ú«, τΓ«íδ íδΓ∞ πóÑαÑ¡¡δ¼ ó Γ«¼, τΓ« «¡«
- »αÑñßΓáó½∩ÑΓ ß«í«⌐ Γ«τ¬π, αáß»«½«ªÑ¡¡¡πε ¡¿ªÑ ¿ »αáóÑÑ
- ¡áτá½∞¡«⌐ Γ«τ¬¿. Åα∩¼«πú«½∞¡¿¬¿ «íδτ¡« «»¿ßδóáεΓß∩ óÑασ¡¿¼
- ½Ñóδ¼ ¿ ¡¿ª¡¿¼ »αáóδ¼ πú½á¼¿. àß½¿ ¬«¡Ñτ¡á∩ Γ«τ¬á ¡Ñ
- αáß»«½«ªÑ¡á ¡¿ªÑ ¿ »αáóÑÑ ¡áτá½∞¡«⌐ (Γ.Ñ., Ñß½¿ ¿½¿ ¬««αñ¿¡áΓá
- σ, ¿½¿ ¬««αñ¿¡áΓá 𠬫¡Ñτ¡«⌐ Γ«τ¬¿ ¼Ñ¡∞ΦÑ ¬««αñ¿¡áΓ σ ¿½¿ π
- ¡áτá½∞¡«⌐ Γ«τ¬¿), º¡áτÑ¡¿∩ ¡áτá½∞¡«⌐ ¿ ¬«¡Ñτ¡«⌐ Γ«τѬ, »α¿
- ¡Ñ«íσ«ñ¿¼«ßΓ¿, ¼Ñ¡∩εΓß∩ ¼ÑßΓἿ. ū߬«½∞¬π íδ½á óδºóá¡á Σπ¡¬µ¿∩
- SetCapture, Γ« ¡Ñ«íσ«ñ¿¼á ß««ΓóÑΓßΓóπεΘá∩ Σπ¡¬µ¿∩
- ReleaseCapture. é««íΘÑ ú«ó«α∩, ß½ÑñπÑΓ «ßó«í«ñ¿Γ∞ ¼δΦ∞ ßαáºπ
- ªÑ, ¬á¬ Γ«½∞¬« «¡á ßΓá¡«ó¿Γß∩ ¡Ñ ¡πª¡á.
-
- ìᬫ¡Ñµ, ¬«úñá »«½∞º«óáΓѽ∞ «ßó«í«ªñáÑΓ ½Ñóπε ¬¡«»¬π,
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á óδºóáΓ∞ Σπ¡¬µ¿ε EndSelection ñ½∩
- ß«σαá¡Ñ¡¿∩ ¬«¡Ñτ¡«⌐ Γ«τ¬¿:
-
- case WM_LBUTTONUP:
- bTrack = FALSE;
- EndSelection(MAKEPOINT(lParam), &SelectRect);
- break;
-
- Å«ß½Ñ ¿º¼Ñ¡Ñ¡¿∩ Σπ¡¬µ¿∩ ClearSelection íπñÑΓ óδú½∩ñÑΓ∞
- ⠪:
-
- int FAR PASCAL ClearSelection(hWnd, lpSelectRect, fFlags)
- HWND hWnd;
- LPRECT lpSelectRect;
- int fFlags;
- {
- HDC hDC;
- short OldROP;
- hDC = GetDC(hWnd);
- switch (fFlags & SL_TYPE) {
- case SL_BOX:
- OldROP = SetROP2(hDC, R2_XORPEN);
- MoveTo(hDC, lpSelectRect->left,
- lpSelectRect->top);
- LineTo(hDC, lpSelectRect->right,
-
- Windows 3.0/pg/3#3 = 149 =
-
- lpSelectRect->top);
- LineTo(hDC, lpSelectRect->right,
- lpSelectRect->bottom);
- LineTo(hDC, lpSelectRect->left,
- lpSelectRect->bottom);
- LineTo(hDC, lpSelectRect->left,
- lpSelectRect->top);
- SetROP2(hDC, OldROP);
- break;
- case SL_BLOCK:
- PatBlt(hDC,
- lpSelectRect->left, lpSelectRect->top,
- lpSelectRect->right - lpSelectRect->left,
- electRect->top,
- DSTINVERT);
- break;
- }
- ReleaseDC(hWnd, hDC);
- }
-
- Äτ¿ßΓ¬á "»á¡Ñ½∞¡«⌐" óδí«α¬¿ «º¡áτáÑΓ ÑÑ πñá½Ñ¡¿Ñ ß φ¬αá¡á.
- ¡« πñ὿Γ∞ ÑÑ «τÑαΓá¡¿∩, α¿ßπ∩ »«óÑασ ¡ÑÑ »Ñα«¼ XOR. Äτ¿ßΓ¬á
- "í½«τ¡«⌐" óδí«α¬¿ «º¡áτáÑΓ ó«ßßΓá¡«ó½Ñ¡¿Ñ ¿¡óÑαΓ¿α«óá¡¡«⌐ τáßΓ¿
- φ¬αá¡á ó Ñú« »Ñαó«¡áτá½∞¡«Ñ ß«ßΓ«∩¡¿Ñ. ¡« ó«ßßΓá¡«ó¿Γ∞
- ¿¡óÑαΓ¿α«óá¡¡δ⌐ φ¬αá¡, ¿¡óÑαΓ¿απ∩ óßε óδí«α¬π.
-
- 20.6.2 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ ¿¡¿µ¿á½¿ºáµ¿¿.
-
- Select ¿ß»«½∞ºπÑΓ ßΓá¡ñáαΓ¡πε »α«µÑñπαπ LibEntry,
- ß«ñÑαªáΘπεß∩ ó Σá⌐½Ñ LIBENTRY.OBJ. ¥Γá »α«µÑñπαá ó ßó«ε «τÑαÑñ∞
- óδºδóáÑΓ Σπ¡¬µ¿ε ß ¿¼Ñ¡Ñ¼ LibMain, «»αÑñѽѡ¿Ñ ¬«Γ«α«⌐ ñ«½ª¡«
- íδΓ∞ ó ¿ßσ«ñ¡«¼ ¬«ñÑ DLL ¿ ¬«Γ«αá∩ óδ»«½¡∩ÑΓ ¿¡¿µ¿á½¿ºáµ¿ε,
- ߻ѵ¿Σ¿τ¡πε ñ½∩ ñá¡¡«⌐ í¿í½¿«ΓѬ¿. ū߬«½∞¬π Select ¡Ñ
- ΓαπíπÑΓß∩ ¿¡¿µ¿á½¿ºáµ¿∩, ¬α«¼Ñ óδ»«½¡∩Ѽ«⌐ LibEntry, Γ« LibMain
- »α«ßΓ« ó«ºóαáΘáÑΓ 1 ñ½∩ π¬áºá¡¿∩ πß»ÑΦ¡«ú« ºáóÑαΦÑ¡¿∩. öπ¡¬µ¿∩
- LibMain ó í¿í½¿«ΓÑ¬Ñ Select «»αÑñѽѡá ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- int FAR PASCAL LibMAin(hInstance,wDataSeg,cbHeapSize,
- lpszCmdLine)
- WORD wDataSeg;
- HANDLE hInstance;
- WORD cbHeaSize;
- LPSTR lpszCmdLine;
- {
- return 1;
- }
-
- 20.6.3 櫺ñá¡¿Ñ »α«µÑñπαδ ºáóÑαΦÑ¡¿∩.
-
- èᬠ¿ ½εíá∩ DLL, Select ñ«½ª¡á ¿¼ÑΓ∞ »α«µÑñπαπ ºáóÑαΦÑ¡¿∩,
- WEP. ū߬«½∞¬π Select ¡Ñ ΓαÑíπÑΓß∩ óδ»«½¡Ñ¡¿∩ ¡¿¬á¬¿σ «»Ñαᵿ⌐
- «τ¿ßΓ¬¿, Γ« »α«µÑñπαá WEP íπñÑΓ ¿¼ÑΓ∞ ß½ÑñπεΘ¿⌐ ó¿ñ:
-
-
- Windows 3.0/pg/3#3 = 150 =
-
- VOID FAR PASCAL WEP(nParameter);
- int nParameter;
- {
- return;
- }
-
- 20.6.4 櫺ñá¡¿Ñ Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩
-
- ä½∩ ¬«¼»«¡«ó¬¿ í¿í½¿«ΓѬ¿ Select ¡Ñ«íσ«ñ¿¼« ß«ºñáΓ∞ Σá⌐½
- «»αÑñѽѡ¿∩ ¼«ñπ½∩, ß«ñÑαªáΘ¿⌐ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
-
- LIBRARY Select
- CODE MOVEABLE DISCARDABLE
- DATA SINGLE
- HEAPSIZE 1024
-
- EXPORTS
- WEP @1, RESIDENTNAME
- StartSelection @2
- UpdateSelection @3
- EndSelection @4
- ClearSelection @5
-
- ū߬«½∞¬π Σπ¡¬µ¿¿ óδí«α¬¿ ¡Ñ ¿ß»«½∞ºπεΓ ú½«íá½∞¡δσ ¿½¿
- ßΓáΓ¿τÑ߬¿σ »ÑαѼѡ¡δσ, ¿ ½«¬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿
- «ΓßπΓßΓóπÑΓ, «»ÑαáΓ«α DATA ߻ѵ¿Σ¿µ¿απÑΓ «ΓßπΓßΓó¿Ñ ßÑú¼Ñ¡Γá
- ñá¡¡δσ, á «»ÑαáΓ«α HEAPSIZE ¿ß»«½∞ºπÑΓß∩ ñ½∩ πßΓá¡«ó¬¿ ¡π½Ñó«ú«
- αẼÑαá ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
- 20.6.5 櫺ñá¡¿Ñ ó¬½ετáѼ«ú« Σá⌐½á.
-
- ä½∩ í¿í½¿«ΓѬ¿ Select ¡Ñ«íσ«ñ¿¼« ß«ºñáΓ∞ ó¬½ετáѼδ⌐ Σá⌐½
- select.h. ¥Γ«Γ Σá⌐½ ß«ñÑαª¿Γ «»αÑñѽѡ¿∩ ¬«¡ßΓá¡Γ, ¿ß»«½∞ºπѼδσ
- ó Σπ¡¬µ¿∩σ, á Γá¬ªÑ «»αÑñѽѡ¿∩ Σπ¡¬µ¿⌐. 鬽ετáѼδ⌐ Σá⌐½ ñ«½ªÑ¡
- óδú½∩ñÑΓ∞ Γá¬:
-
- int FAR PASCAL StartSelection(HWND, POINT, LPRECT, int);
- int FAR PASCAL UpdateSelection(HWND, POINT, LPRECT, int);
- int FAR PASCAL EndSelection(POINT, LPRECT);
- int FAR PASCAL ClearSelection(HWND, LPRECT, int);
-
- ìÑ«íσ«ñ¿¼« Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ φëà ó¬½ετáѼδ⌐ Σá⌐½ ó
- »α¿¬½áñ¡δσ »α«úαá¼¼áσ, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓ Σπ¡¬µ¿¿ óδí«α¬¿. ¥Γ«
- ñáßΓ πóÑαÑ¡¡«ßΓ∞ ó Γ«¼, τΓ« ó Σπ¡¬µ¿∩σ ¿ß»«½∞ºπεΓß∩ »αáó¿½∞¡δÑ
- Γ¿»δ »áαá¼ÑΓα«ó ¿ ó«ºóαáΘáѼδσ º¡áτÑ¡¿⌐.
-
- 20.6.6 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
-
- ä½∩ Γαá¡ß½∩µ¿¿ ¿ ¬«¼»«¡«ó¬¿ í¿í½¿«ΓѬ¿ Select ¡Ñ«íσ«ñ¿¼«
- ß«ºñáΓ∞ Σá⌐½ make ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- select.obj: select.c select.h
- cl -c -Asnw -Gsw -Os -Zp select.c
-
- Windows 3.0/pg/3#3 = 151 =
-
-
- select.dll: select.obj
- link select libentry, select.dll, , /NOD /NOE
- sdllcew libw, select.def
- rc select.dll
- implib select.lib select.def
-
- Å«ß½Ñ Γαá¡ß½∩µ¿¿ ¿ ¬«¼»«¡«ó¬¿ í¿í½¿«ΓѬ¿ Select ¼«ª¡«
- ß«ºñáΓ∞ ¡Ñí«½∞Φπε ΓÑßΓ«óπε »α«úαá¼¼π ñ½∩ Γ«ú«, τΓ«íδ πíÑñ¿Γ∞ß∩
- ó »αáó¿½∞¡«⌐ αáí«ΓÑ í¿í½¿«ΓѬ¿. Ä»¿ßá¡¿Ñ »α«úαá¼¼δ, ¬«Γ«αá∩
- ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿¿ óδí«α¬¿, óδ ¡á⌐ñÑΓÑ ó ú½áóÑ 11, "ÉáßΓα«óδÑ
- ¬áαΓδ", ¿½¿ ó ú½áóÑ 13, "æ¿ßΓѼ¡δ⌐ íπΣÑα".
- 20.7 çᬽετÑ¡¿Ñ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡δ ñ¿¡á¼¿τÑ߬¿ »«ñ¬½ετáѼδÑ
- í¿í½¿«ΓѬ¿ (DLL), ¬«Γ«αδÑ »αÑñßΓáó½∩εΓ ß«í«⌐ «ß«íδ⌐ Γ¿»
- í¿í½¿«ΓѬ, »«ºó«½∩εΘ¿⌐ »α¿¬½áñ¡δ¼ »α«úαἼἠαáºñѽ∩Γ∞ ¬«ñ ¿
- αÑßπαßδ. ìá»α¿¼Ñα, í¿í½¿«ΓѬ¿ Windows ñѽáεΓ ñ½∩ ½εí«⌐
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ñ«ßΓπ»¡δ¼¿ Σπ¡¬µ¿¿ Windows, ¿ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ Γᬿ¼ «íαẫ¼ ¡Ñ ñ«½ª¡δ ß«ñÑαªáΓ∞ ¬«ñ φΓ¿σ Σπ¡¬µ¿⌐.
- éδ ¼«ªÑΓÑ ß«ºñáΓ∞ ßó«¿ ß«íßΓóÑ¡¡δÑ í¿í½¿«ΓѬ¿, τΓ«íδ αáºñѽ∩Γ∞
- ¬«ñ ¿½¿ αÑßπαßδ ¼Ñªñπ óáΦ¿¼¿ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ.
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ ßΓáΓ¿τÑ߬¿σ í¿í½¿«ΓѬ (Γᬿσ ¬á¬
- MLIBCEW.LIB) ¬«¼»«¡«óΘ¿¬ ¬«»¿απÑΓ ¬«ñ ΓαÑíπѼδσ »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ Σπ¡¬µ¿⌐ ó óδ»«½¡∩Ѽδ⌐ Σá⌐½ (.EXE). ìá»α«Γ¿ó, »α¿
- ¿ß»«½∞º«óá¡¿¿ ñ¿¡á¼¿τÑ߬¿σ í¿í½¿«ΓѬ ñóÑ ¿½¿ í«½ÑÑ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ ¼«úπΓ αáºñѽ∩Γ∞ Ññ¿¡ßΓóÑ¡¡πε ¬«»¿ε ¿ßσ«ñ¡«ú« ¬«ñá
- »α«µÑñπαδ. Åਪ½áñ¡δÑ »α«úαá¼¼δ »«ñß«Ññ¿¡∩εΓ DLL ó« óαѼ∩
- óδ»«½¡Ñ¡¿∩, á ¡Ñ ó« óαѼ∩ ¬«¼»«¡«ó¬¿.
-
- Äíδτ¡« DLL ¿ß»«½∞ºπεΓ ñ½∩ ß«ºñá¡¿∩ ß«íßΓóÑ¡¡δσ í½«¬«ó
- π»αáó½Ñ¡¿∩. éáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ºáΓѼ ¿ß»«½∞º«óáΓ∞
- φΓ¿ í½«¬¿ π»αáó½Ñ¡¿∩, ¿ óδ ¼«ªÑΓÑ ¿σ ó¬½ετáΓ∞ ó ßó«¿ »á¡Ñ½¿
- ñ¿á½«úá ß »«¼«Θ∞ε Dialog Editor.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε »« »«ó«ñπ ñ¿¡á¼¿τÑ߬¿
- »«ñ¬½ετáѼδσ í¿í½¿«ΓѬ óδ ¼«ªÑΓÑ »«½πτ¿Γ∞ ó:
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- æ»Ñµ¿á½∞¡δÑ ß«ú½á- Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 14, "ƒºδ¬
- ΦÑ¡¿∩ »« ß«ºñá¡¿ε æ ¿ ∩ºδ¬ áßßѼí½Ñαá".
- DLL ¡á æ
-
- ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 16, "àΘÑ
- ó DLL «í π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε".
-
- 諼»«¡«ó¬á ¿ ¿¼»«α- "Tools", ú½áóá 2, "諼»«¡«óΘ¿¬: ¬«¼»«¡«ó¬á
- Γ¿α«óá¡¿Ñ DLL »α¿¬½áñ¡δσ »α«úαá¼¼".
-
- ôßΓá¡«ó¬á ß«íßΓóÑ¡- "Tools", ú½áóá 5, "Dialog Editor: 櫺ñá¡¿Ñ
-
- Windows 3.0/pg/3#3 = 152 =
-
- ¡δσ í½«¬«ó π»αáó½Ñ- »á¡Ñ½Ñ⌐ ñ¿á½«úá".
- ¡¿∩ ß »«¼«Θ∞ε Dialog
- Editor
- â½áóá 21. ê¡ΓÑαΣÑ⌐ß ¼¡«ªÑßΓóá ñ«¬π¼Ñ¡Γ«ó.
-
- ê¡ΓÑαΣÑ⌐ß ¼¡«ªÑßΓóá ñ«¬π¼Ñ¡Γ«ó (MDI) - φΓ« ßΓá¡ñáαΓ
- »«½∞º«óáΓѽ∞߬«ú« ¿¡ΓÑαΣÑ⌐ßá ñ½∩ ¼á¡¿»π½¿α«óá¡¿∩ ¿
- »αÑñßΓáó½Ñ¡¿∩ ¡Ñ߬«½∞¬¿σ ñ«¬π¼Ñ¡Γ«ó ó «ñ¡«⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ. Åਪ½áñ¡δÑ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘ¿Ñ MDI, ¿¼ÑεΓ «ñ¡«
- «ß¡«ó¡«Ñ «¬¡«, ó¡πΓα¿ ¬«Γ«α«ú« »«½∞º«óáΓѽ∞ ¼«ªÑΓ «Γ¬αδóáΓ∞ ¿
- αáí«ΓáΓ∞ ß ¡Ñ߬«½∞¬¿¼¿ ñ«¬π¼Ñ¡ΓἿ. èáªñδ⌐ ñ«¬π¼Ñ¡Γ
- »αÑñßΓáó½∩ÑΓß∩ ß«íßΓóÑ¡¡δ¼ ñ«τÑα¡¿¼ «¬¡«¼. èáªñ«Ñ ñ«τÑα¡ÑÑ «¬¡«
- ¿¼ÑÑΓ ΣαÑ⌐¼, ß¿ßΓѼ¡«Ñ ¼Ñ¡ε, ¬½áó¿Φ¿ ¼á¬ß¿¼¿ºáµ¿¿ ¿ ¼¿¡¿¼¿ºáµ¿¿
- ¿ ¿¬«¡π. Å«½∞º«óáΓѽ∞ ¼«ªÑΓ «íαáΘáΓ∞ß∩ ß φΓ¿¼¿ ñ«τÑα¡¿¼¿ «¬¡á¼¿
- ¬á¬ ß «íδτ¡δ¼¿ ¡Ñºáó¿ß¿¼δ¼¿ «¬¡á¼¿, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ«
- «¡¿ ¡Ñ ¼«úπΓ óδσ«ñ¿Γ∞ ºá »αÑñѽδ α«ñ¿Γѽ∞߬«ú« «¬¡á.
-
- é ñá¡¡«⌐ ú½áóÑ »α¿óÑñÑ¡á ß½ÑñπεΘá∩ ¿¡Σ«α¼áµ¿∩:
-
- - æΓαπ¬Γπαá »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘá∩ MDI.
-
- - ìỿßá¡¿Ñ »α«µÑñπα ñ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,
- ¿ß»«½∞ºπεΘÑ⌐ MDI.
-
- - ô»αáó½Ñ¡¿Ñ ñ«τÑα¡¿¼¿ «¬¡á¼¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,
- ¿ß»«½∞ºπεΘÑ⌐ MDI.
-
- é ñá¡¡«⌐ ú½áóÑ ó ¬áτÑßΓóÑ »α¿¼Ñαá ¿ß»«½∞ºπÑΓß∩ ΓѬßΓ«óδ⌐
- αÑñá¬Γ«α Multipad - »«ßΓáó½∩Ѽδ⌐ ¡á ñ¿ß¬Ñ SDK Sample Source
- Code Disk. Multipad φΓ« óÑαß¿∩ Notepad, ¿ß»«½∞ºπεΘá∩ MDI. (é
- ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ Multipad ¿ß»«½∞ºπÑΓß∩ ó ¬áτÑßΓóÑ »α¿¼Ñαá ñ½∩
- ¡Ñ߬«½∞¬¿σ ú½áó ñá¡¡«ú« απ¬«ó«ñßΓóá. é ñá¡¡«⌐ ú½áóÑ «íßπªñáÑΓß∩
- Γ«½∞¬« Γá τáßΓ∞ Multipad, ¬«Γ«αá∩ «Γ¡«ß¿Γß∩ ¬ MDI).
- 21.1 æΓαπ¬Γπαá »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐ MDI.
-
- èᬠ¿ í«½∞Φ¿¡ßΓó« »α¿¬½áñ¡δσ »α«úαá¼¼ Windows, »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ, ¿ß»«½∞ºπεΘ¿Ñ, MDI ß«ñÑαªáΓ µ¿¬½ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐,
- ¬«Γ«αδ⌐ αáßßδ½áÑΓ ß««íΘÑ¡¿∩ «¬¡á¼ ñá¡¡«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
- û¿¬½ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ »α«úαá¼¼, ¿ß»«½∞ºπεΘ¿σ MDI, á¡á½«ú¿τÑ¡
- µ¿¬½π «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ «íδτ¡δσ »α«úαá¼¼ Windows, ºá
- ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, ¬á¬ ó ¡Ñ¼ »α«¿ßσ«ñ¿Γ «íαáí«Γ¬á π߬«α¿ΓѽÑ⌐
- ¼Ñ¡ε.
-
- Äß¡«ó¡«Ñ «¬¡« »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐ MDI, á¡á½«ú¿τ¡«
- «ß¡«ó¡«¼π «¬¡π í«½∞Φ¿¡ßΓóá »α«úαá¼¼ Windows. é »α«úαá¼¼áσ,
- ¿ß»«½∞ºπεΘ¿σ MDI, «ß¡«ó¡«Ñ «¬¡« ¡áºδóáÑΓß∩ «¬¡«¼ ΣαÑ⌐¼á. Ä¡«
- «Γ½¿τáÑΓß∩ «Γ «íδτ¡δσ «¬«¡ »α«úαá¼¼ Windows ΓѼ, τΓ« Ñú«
- «í½áßΓ∞ »«½∞º«óáΓѽ∩ ºá»«½¡∩ÑΓß∩ ߻ѵ¿á½∞¡δ¼¿ ñ«τÑα¡¿¼¿ «¬¡á¼¿,
- ¡áºδóáÑ¼δ¼¿ «¬¡á¼¿ »«½∞º«óáΓѽ∩. ū߬«½∞¬π Windows »«ññÑনóáÑΓ
- «¬¡á »«½∞º«óáΓѽ∩ ¿ π»αáó½∩ÑΓ ¿¡ΓÑαΣÑ⌐ß«¼ MDI, Γ«
- »«½∞º«óáΓѽ∞߬«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ¡Ñ«íσ«ñ¿¼ ¼¿¡¿¼π¼
-
- Windows 3.0/pg/3#3 = 153 =
-
- ¿¡Σ«α¼áµ¿¿ « »«½∞º«óáΓѽ∞߬«¼ ¿¡ΓÑαΣÑ⌐ßÑ MDI. (æ φΓ«⌐ Γ«τ¬¿
- ºαÑ¡¿∩ «¬¡« »«½∞º«óáΓѽ∩ MDI á¡á½«ú¿τ¡« í½«¬π π»αáó½Ñ¡¿∩,
- Γᬫ¼π ¬á¬ ¬½áó¿Φá πßΓá¡«ó¬¿. ¥Γ« «¬¡« ¿¼ÑÑΓ ßΓá¡ñáαΓ¡«Ñ
- »«óÑñÑ¡¿Ñ, ¬«Γ«α«Ñ Windows «»αÑñѽ∩ÑΓ áóΓ«¼áΓ¿τÑ߬¿. Åਪ½áñ¡á∩
- »α«úαá¼¼á ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ «¬¡á »«½∞º«óáΓѽ∩ MDI, ¡« Ñ⌐ ¡Ñ
- ¡πª¡« «»αÑñѽ∩Γ∞ Ñú« ó¿ñ ¿ »«óÑñÑ¡¿Ñ.)
-
- æ ó¿ñ𠫬¡« »«½∞º«óáΓѽ∩ MDI ¡á»«¼¿¡áÑΓ í«½∞Φ«⌐
- ¼«¡«σα«¼¡δ⌐ »α∩¼«πú«½∞¡¿¬. ä½∩ »«½∞º«óáΓѽ∩ φΓ« «¬¡«
- »αÑñßΓáó½∩ÑΓ ß«í«⌐ τáßΓ∞ «ß¡«ó¡«ú« «¬¡á, «¡« ñáÑà ëà ӫ¡, ¡á
- ¬«Γ«α«¼ «Γ«íαáªáεΓß∩ ñ«τÑα¡¿Ñ «¬¡á. Äíδτ¡« »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ¡á ¬áªñδ⌐ ñ«¬π¼Ñ¡Γ «»αÑñѽ∩Γ »« «ñ¡«¼π ñ«τÑα¡Ñ¼π «¬¡π. ä«τÑα¡¿Ñ
- «¬¡á MDI óδú½∩ñ∩Γ «τÑ¡∞ »«σ«ªÑ ¡á «ß¡«ó¡«Ñ «¬¡«. Ä¡¿ ¿¼ÑεΓ
- ΣαÑ⌐¼ «¬¡á, ßΓ᫬π ºáú«½«ó¬á, ¬½áó¿Φ¿ ¼¿¡¿¼¿ºáµ¿¿ ¿
- ¼á¬ß¿¼¿ºáµ¿¿. Äß¡«ó¡δ¼ «Γ½¿τ¿Ñ¼ ∩ó½∩ÑΓß∩ Γ«, τΓ« ñ«τÑα¡¿Ñ «¬¡á
- ß«ñÑαªáΓ «Γñѽ∞¡δÑ ñ«¬π¼Ñ¡Γδ, ¿ τΓ« «¡¿ ¡Ñ ¼«úπΓ »ÑαѼÑΘáΓ∞ß∩
- ó¡Ñ «ß¡«ó¡«ú« «¬¡á.
-
- ìá α¿ßπ¡¬Ñ 21.1 »«¬áºá¡ ó¿ñ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Multipad,
- ¬«Γ«αá∩ ∩ó½∩ÑΓß∩ Γ¿»¿τ¡«⌐ »α«úαá¼¼«⌐, ¿ß»«½∞ºπεΘÑ⌐ MDI.
-
- É¿ßπ¡«¬ 21.1 Multipad: »α¿¼Ñα »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐ MDI.
- 1. Ĭ¡« ΣαÑ⌐¼á.
- 2. Äí½áßΓ∞ »«½∞º«óáΓѽ∩.
- 3. ä«τÑα¡¿Ñ «¬¡á.
-
- é «ß¡«ó¡«¼, »α¿¬½áñ¡á∩ »α«úαá¼¼á π»αáó½∩ÑΓ ¿¡ΓÑαΣÑ⌐ß«¼
- MDI, »«ßδ½á∩ ß««íΘÑ¡¿∩ óóÑασ ¿½¿ 󡿺 »« ¿Ñαáασ¿¿ «¬«¡ MDI.
- Ĭ¡á »«½∞º«óáΓѽ∩ MDI, ¬«Γ«α묨 π»αáó½∩ÑΓ Windows, óδ»«½¡∩εΓ
- ¼¡«ú¿Ñ «»Ñαᵿ¿, «Γ¡«ß∩Θ¿Ñß∩ ¬ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ.
-
- ÄßΓáóΦá∩ß∩ τáßΓ∞ ñá¡¡«⌐ ú½áóδ »«ßó∩ΘÑ¡á «»¿ßá¡¿ε Γ«ú«, ¬á¬
- »¿ßáΓ∞ »α¿¬½áñ¡δÑ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘ¿Ñ MDI, ¿ ¬á¬ ñ½∩
- π»αáó½Ñ¡¿∩ ñ«τÑα¡¿¼¿ «¬¡á¼¿ MDI ¿ß»«½∞º«óáΓ∞ ß««íΘÑ¡¿∩.
-
- 21.2 ê¡¿µ¿á½¿ºáµ¿∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐ MDI.
-
- ÅÑαó«Ñ, τѼ »α¿¬½áñ¡δÑ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘ¿Ñ MDI,
- «Γ½¿τáεΓß∩ «Γ «ßΓá½∞¡δσ »α«úαá¼¼ Windows, φΓ« »α«µÑßß
- ¿¡¿µ¿á½¿ºáµ¿¿. ò«Γ∩ ó «ß¡«ó¡«¼ »α«µÑßß ¿¡¿µ¿á½¿ºáµ¿¿
- á¡á½«ú¿τÑ¡, ñ½∩ »α¿¬½áñ¡δσ »α«úαá¼¼, ¿ß»«½∞ºπεΘ¿σ MDI,
- ΓαÑíπÑΓß∩ πßΓá¡«ó¿Γ∞ ¡Ñ߬«½∞¬« º¡áτÑ¡¿⌐ ó ßΓαπ¬ΓπαÑ ¬½áßßá
- «¬¡á.
-
- ä½∩ ¿¡¿µ¿á½¿ºáµ¿¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐ MDI,
- óδ ñ«½ª¡δ ó¡áτá½Ñ ºáαÑú¿ßΓα¿α«óáΓ∞ ¬½áßßδ «¬«¡ (Ñß½¿ φΓ« »Ñαóδ⌐
- φ¬ºÑ¼»½∩α »α«úαá¼¼δ) ΓᬠªÑ, ¬á¬ ¿ ñ½∩ «íδτ¡«⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ Windows. çáΓѼ óδ ß«ºñáÑΓÑ ¿ «Γ«íαáªáÑΓÑ «¬¡á,
- ¬«Γ«αδÑ ñ«½ª¡δ íδΓ∞ ó¿ñ¡δ.
- 21.2.1 ÉÑú¿ßΓαᵿ∩ ¬½áßß«ó «¬«¡.
-
- é «ß¡«ó¡«¼ ñ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐ MDI,
-
- Windows 3.0/pg/3#3 = 154 =
-
- ΓαÑíπÑΓß∩ ºáαÑú¿ßΓα¿α«óáΓ∞ ñóá ¬½áßßá «¬«¡:
-
- - è½áßß ñ½∩ «¬¡á ΣαÑ⌐¼á »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐
- MDI. æΓαπ¬Γπαá ñ½∩ αÑú¿ßΓαᵿ¿ ¬½áßßá «¬¡á ΣαÑ⌐¼á
- á¡á½«ú¿τ¡« ßΓαπ¬ΓπαÑ αÑú¿ßΓαᵿ¿ ¬½áßßá «ß¡«ó¡«ú« «¬¡á
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Windows, ¡Ñ ¿ß»«½∞ºπεÑΘ⌐ MDI.
-
- - è½áßß «¬¡á ñ½∩ ñ«τÑα¡¿σ «¬«¡ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,
- ¿ß»«½∞ºπεΘÑ⌐ MDI. æΓαπ¬Γπαá αÑú¿ßΓαᵿ¿ ¬½áßßá ñ½∩ Γᬿσ
- «¬«¡ ¡Ñ߬«½∞¬« «Γ½¿τáÑΓß∩ «Γ ßΓαπ¬Γπαδ αÑú¿ßΓαᵿ¿
- ¬½áßßá ñ½∩ «íδτ¡δσ ñ«τÑα¡¿σ «¬«¡.
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ¿¼ÑΓ∞ í«½∞ΦÑ «ñ¡«ú« ¬½áßßá
- ñ«τÑα¡¿σ «¬«¡ MDI, Ñß½¿ »α«úαá¼¼á αáí«ΓáÑΓ ß ¡Ñ߬«½∞¬¿¼¿
- Γ¿»á¼¿ ñ«¬π¼Ñ¡Γ«ó.
-
- çá¼ÑΓ¿¼, τΓ« »α¿¬½áñ¡á∩ »α«úαá¼¼á ¡Ñ αÑú¿ßΓα¿απÑΓ ¬½áßß
- «¬«¡ - »«½∞º«óáΓѽÑ⌐ MDI, ¬«Γ«αδ⌐ «»αÑñѽ∩ÑΓß∩ Windows.
-
- æΓαπ¬Γπαá ¬½áßßá ñ½∩ ñ«τÑα¡¿σ «¬«¡ MDI ¡Ñ߬«½∞¬«
- «Γ½¿τáÑΓß∩ «Γ ßΓαπ¬Γπαδ ¬½áßßá ñ½∩ «íδτ¡δσ ñ«τÑα¡¿σ «¬«¡ ó
- ß½ÑñπεΘѼ:
-
- - æΓαπ¬Γπαá ¬½áßßá ñ«½ª¡á «»αÑñѽ∩Γ∞ ¿¬«¡π, »«ß¬«½∞¬π
- »«½∞º«óáΓѽ∞ ¼«ªÑΓ ¼¿¡¿¼¿º¿α«óáΓ∞ ñ«τÑα¡ÑÑ «¬¡« MDI.
-
- - ê¼∩ ¼Ñ¡ε ñ«½ª¡« íδΓ∞ NULL, »«ß¬«½∞¬π ñ«τÑα¡ÑÑ «¬¡« MDI
- ¡Ñ ¼«ªÑΓ ¿¼ÑΓ∞ ß«íßΓóÑ¡¡«ú« ¼Ñ¡ε.
-
- - æΓαπ¬Γπαá ¬½áßßá ñ«½ª¡á αѺÑαó¿α«óáΓ∞ ñ«»«½¡¿Γѽ∞¡πε
- »á¼∩Γ∞ ó ßΓαπ¬ΓπαÑ «¬¡á. ¥Γ« »«ºó«½∩ÑΓ »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ ßó∩ºδóáΓ∞ ß «¬¡«¼ «»αÑñѽѡ¡δÑ ñá¡¡δÑ,
- ¡á»α¿¼Ñα, ¿¼∩ Σá⌐½á.
-
- é »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ Multipad, ¬½áßßδ «¬«¡ αÑú¿ßΓα¿απÑΓ
- ½«¬á½∞¡« «»αÑñѽѡ¡á∩ Σπ¡¬µ¿∩ InitializeApplication.
- 21.2.2 櫺ñá¡¿Ñ «¬«¡.
-
- Å«ß½Ñ αÑú¿ßΓαᵿ¿ ¬½áßß«ó «¬«¡ óáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ¼«ªÑΓ ß«ºñáΓ∞ ß«íßΓóÑ¡¡δÑ «¬¡á. Ä¡á ß¡áτá½á ß«ºñáÑΓ «¬¡« ΣαÑ⌐¼á
- ß »«¼«Θ∞ε Σπ¡¬µ¿¿ CreateWindow. (é System Application
- Architecture, Common User Access: Advanced Interface Design
- Guide «»¿ßá¡«, ¬á¬ ñ«½ª¡« óδú½∩ñÑΓ∞ «ß¡«ó¡«Ñ «¬¡« »α«úαá¼¼δ,
- ¿ß»«½∞ºπεΘÑ⌐ MDI).
-
- Å«ß½Ñ ß«ºñá¡¿∩ «¬¡á ΣαÑ⌐¼á »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ
- ß«ºñáΓ∞ ÑÑ «¬¡á »«½∞º«óáΓѽ∩ MDI ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- CreateWindow. é ¬áτÑßΓóÑ ¿¼Ñ¡¿ ¬½áßßá óδ ñ«½ª¡δ π¬áºáΓ∞
- MDICLIENT. MDICLIENT - φΓ« »αÑñ«»αÑñѽѡ¡δ⌐ ¬½áßß «¬¡á, ¬«Γ«αδ⌐
- αÑú¿ßΓα¿απÑΓ Windows. Åáαá¼ÑΓα lParam Σπ¡¬µ¿¿ CreateWindow
- ñ«½ªÑ¡ π¬áºδóáΓ∞ ¡á ßΓαπ¬Γπαπ CLIENTCREATESTRUCT. æΓαπ¬Γπαá
- CLIENTCREATESTRUCT ß«ñÑαª¿Γ ß½ÑñπεΘ¿Ñ »«½∩:
-
- Windows 3.0/pg/3#3 = 155 =
-
-
- Å«½Ñ Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- hWindowMenu äÑß¬α¿»Γ«α ¡á¬½áñδóáѼ«ú« ¼Ñ¡ε, ¿ß»«½∞ºπѼ«ú«
- ñ½∩ π»αáó½Ñ¡¿∩ ñ«τÑα¡¿¼ «¬¡«¼ MDI.
-
- Å«ß½Ñ ß«ºñá¡¿∩ ñ«τÑα¡Ñú« «¬¡á »α¿¬½áñ¡á∩
- »α«úαá¼¼á ¼«ªÑΓ ñ«íáó¿Γ∞ ºáú«½«ó¬¿ ñ«τÑα¡¿σ
- «¬«¡ ó ¬áτÑßΓóÑ φ½Ñ¼Ñ¡Γ«ó ¬ ¡á¬½áñδóáѼ«¼π
- ¼Ñ¡ε. Å«½∞º«óáΓѽ∞ ¼«ªÑΓ ºáΓѼ á¬Γ¿ó¿º¿α«óáΓ∞
- ñ«τÑα¡ÑÑ «¬¡«, óδíαáó ß««ΓóÑΓßΓóπεΘ¿⌐ φ½Ñ¼Ñ¡Γ
- ó ¼Ñ¡ε. Multipad »«¼ÑΘáÑΓ φΓ¿ ºáú«½«ó¬¿ ó ¼Ñ¡ε
- "Window" ¿ »«½πτáÑΓ ñÑß¬α¿»Γ«α ñ½∩
- ¡á¬½áñδóáѼ«ú« »«ñ¼Ñ¡ε ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- GetSubMenu.
-
- idFirstChild ¥Γ« ¿ñÑ¡Γ¿Σ¿¬áΓ«α »Ñαó«ú« ñ«τÑα¡Ñú« «¬¡á MDI.
-
- ÅÑαó«Ñ ñ«τÑα¡ÑÑ «¬¡« MDI »«½πτ¿Γ ñá¡¡δ⌐
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α. æ½ÑñπεΘ¿Ñ ß«ºñáóáѼδÑ ñ«τÑα¡¿Ñ
- «¬¡á »«½πτáΓ ß½ÑñπεΘ¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ. Åα¿
- πñá½Ñ¡¿¿ ñ«τÑα¡Ñú« «¬¡á Windows áóΓ«¼áΓ¿τÑ߬¿
- »ÑαѡạáτáÑΓ ¿σ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ñ½∩
- »«ññÑαªá¡¿∩ ¿σ ñ«»πßΓ¿¼«ßΓ¿.
- ───────────────────────────────────────────────────────────────
-
- è«úñá ºáú«½«ó«¬ ñ«τÑα¡Ñú« «¬¡á ñ«íáó½∩ÑΓß∩ ¬ ¼Ñ¡ε «¬¡á,
- φ½Ñ¼Ñ¡Γπ ¼Ñ¡ε »α¿ßóá¿óáÑΓß∩ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ñ«τÑα¡Ñú« «¬¡á, τΓ«
- «º¡áτáÑΓ, τΓ« «¬¡« ΣαÑ⌐¼á »«½πτ¿Γ ß««íΘÑ¡¿Ñ WM_COMMAND ß ΓαѼ∩
- ¿ñÑ¡Γ¿Σ¿¬áΓ«αἿ ó lParam. Æá¬¿¼ «íαẫ¼, º¡áτÑ¡¿Ñ
- ¿ñÑ¡Γ¿Σ¿¬áΓ«αá ñ½∩ ñ«τÑα¡¿σ «¬«¡ ¡Ñ«íσ«ñ¿¼« óδí¿αáΓ∞ Γá¬, τΓ«íδ
- «¡« ¡Ñ ¬«¡Σ½¿¬Γ«óὫ ß ¿ñÑ¡Γ¿Σ¿¬áΓ«αἿ φ½Ñ¼Ñ¡Γ«ó ¼Ñ¡ε «¬¡á
- ΣαÑ⌐¼á.
-
- Ĭ¡« »«½∞º«óáΓѽ∩ MDI ß«ºñáÑΓß∩ ß Γ¿»«¼ WS_CLIPCHILDREN,
- »«ß¬«½∞¬π «¬¡« ¡Ñ ñ«½ª¡« α¿ß«óáΓ∞ »«óÑασ ñ«τÑα¡¿σ «¬«¡.
-
- 﫬á½∞¡« «»αÑñѽѡ¡á∩ Σπ¡¬µ¿∩ InitializeInstance »α«úαá¼¼δ
- Multipad ß«ºñáÑΓ «¬¡« ΣαÑ⌐¼á MDI Multipad. Äñ¡á¬« Multipad ¡Ñ
- ß«ºñáÑΓ ñ«τÑα¡¿Ñ «¬¡á MDI ó ñá¡¡«⌐ Γ«τ¬Ñ. é¼ÑßΓ« φΓ«ú«,
- ß«ºñá¡¿Ñ φΓ¿σ «¬«¡ óδ»«½¡∩ÑΓß∩ ó ¬áτÑßΓóÑ «íαáí«Γ¬¿ ß««íΘÑ¡¿∩
- WM_CREATE «¬¡á ΣαÑ⌐¼á. Multipad «íαáíáΓδóáÑΓ ß««íΘÑ¡¿Ñ
- WM_CREATE ó Σπ¡¬µ¿¿ MPFrameWndProc. Å«ß½Ñ ß«ºñá¡¿∩ «¬¡á ΣαÑ⌐¼á
- ¿ «¬«¡ »«½∞º«óáΓѽÑ⌐ MDI, Multipad óδ»«½¡∩ÑΓ ñ«»«½¡¿Γѽ∞¡πε
- ¿¡¿µ¿á½¿ºáµ¿ε, Γá¬πε ¬á¬ »α«óÑα¬á ñαá⌐óÑαá »α¿¡ΓÑαá ¿ ºáúαπº¬á
- Γáí½¿µδ π߬«α¿ΓѽÑ⌐.
-
- çáΓѼ Multipad ß«ºñáÑΓ »Ñαó«Ñ ñ«τÑα¡ÑÑ «¬¡« MDI, ¿½¿
- »πßΓ«Ñ, ¿½¿ ß«ñÑαªáΘÑÑ Σá⌐½, ¿¼∩ ¬«Γ«α«ú« í佫 π¬áºá¡« ó
- ¬«¼á¡ñ¡«⌐ ßΓ᫬Ñ. (櫺ñá¡¿Ñ ñ«τÑα¡¿σ «¬«¡ MDI «»¿ßá¡« ó αáºñѽÑ
- 21.7.1, "櫺ñá¡¿Ñ ñ«τÑα¡¿σ «¬«¡".)
-
-
- Windows 3.0/pg/3#3 = 156 =
-
- 21.3 櫺ñá¡¿Ñ µ¿¬½á «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐.
-
- û¿¬½ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,
- ¿ß»«½∞ºπεΘ¿⌐ MDI, á¡á½«ú¿τÑ¡ µ¿¬½π «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ «íδτ¡«⌐
- »α«úαá¼¼δ, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« ñ½∩ «íαáí«Γ¬¿ π߬«α¿ΓѽÑ⌐
- ñ«τÑα¡¿σ «¬«¡ ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ TranslateMDISysAccel.
-
- ô߬«α¿Γѽ¿ ß¿ßΓѼ¡«ú« ¼Ñ¡ε ñ½∩ ñ«τÑα¡¿σ «¬«¡ MDI
- á¡á½«ú¿τ¡δ π߬«α¿Γѽ∩¼ ß¿ßΓѼ¡«ú« ¼Ñ¡ε «íδτ¡«ú« «¬¡á. ÄΓ½¿τ¿Ñ
- ß«ßΓ«¿Γ ó Γ«¼, τΓ« ñ«τÑα¡¿Ñ «¬¡á «ΓóÑτáεΓ ¡á ¡áªáΓ¿Ñ ¬½áó¿Φ¿
- CONTROL, ó Γ« óαѼ∩ ¬á¬ π߬«α¿Γѽ¿ ¼Ñ¡ε ¿ß»«½∞ºπεΓß∩ ß ¬½áó¿ΦÑ⌐
- Alt.
-
- û¿¬½ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,
- ¿ß»«½∞ºπεΘÑ⌐ MDI, «íδτ¡« óδú½∩ñ¿Γ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- while(GetMessage(&msg,NULL,0,0))
- {
- if(!TranslateMDISysAccel(hwndMDIClient,&msg)
- && !TranslateAccelerator(hwndFrame,hAccel,&msg))
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- }
-
- é ñá¡¡«¼ »α¿¼ÑαÑ µ¿¬½ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐ MDI, á¡á½«ú¿τÑ¡ µ¿¬½π «íαáí«Γ¬¿
- ß««íΘÑ¡¿⌐ «íδτ¡«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ºá ¿ß¬½ετÑ¡¿Ñ¼
- ¿ß»«½∞º«óá¡¿∩ ó ¡áτá½Ñ Σπ¡¬µ¿¿ TranslateMDISysAccel »ÑαÑñ
- »α«óÑᬫ⌐ ¡á π߬«α¿Γѽ¿ ¼Ñ¡ε.
-
- öπ¡¬µ¿∩ TranslateMDISysAccel »αÑ«íαáºπÑΓ ß««íΘÑ¡¿∩
- WM_KEYDOWN ó WM_SYSCOMMAND ñ½∩ á¬Γ¿ó¡«ú« ñ«τÑα¡Ñú« «¬¡á MDI.
- Ä¡á ó«ºóαáΘáÑΓ FALSE, Ñß½¿ φΓ« ¡Ñ π߬«α¿Γѽ∞ MDI, ó φΓ«¼ ß½πτáÑ
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε TranslateAccelerator
- ñ½∩ »α«óÑન Γ«ú«, τΓ« φΓ« «íδτ¡δ⌐ π߬«α¿Γѽ∞ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ. àß½¿ φΓ« ¡Ñ Γá¬, Γ« µ¿¬½ »ÑαÑñáÑΓ φΓ« ß««íΘÑ¡¿Ñ
- Σπ¡¬µ¿¿ ß««ΓóÑΓßΓóπεΘÑú« «¬¡á.
- 21.4 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ «¬¡á ΣαÑ⌐¼á.
-
- öπ¡¬µ¿∩ «¬¡á ΣαÑ⌐¼á á¡á½«ú¿τ¡á Σπ¡¬µ¿¿ «ß¡«ó¡«ú« «¬¡á
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. Äñ¡á¬« ¿¼ÑεΓß∩ ¡Ñ߬«½∞¬« «Γ½¿τ¿⌐:
-
- - Äíδτ¡« Σπ¡¬µ¿∩ «¬¡á »«ßδ½áÑΓ óßÑ ¡Ñ«íαáíáΓδóáѼδÑ Ñε
- ß««íΘÑ¡¿∩ Σπ¡¬µ¿¿ DefWindowProc. öπ¡¬µ¿∩ «¬¡á ñ½∩ «¬¡á
- ΣαÑ⌐¼á MDI »«ßδ½áÑΓ ß««íΘÑ¡¿∩ Σπ¡¬µ¿¿ DefFrameProc.
-
- - öπ¡¬µ¿∩ «¬¡á ΣαÑ⌐¼á »«ßδ½áÑΓ Σπ¡¬µ¿¿ DefFrameProc óßÑ
- ß««íΘÑ¡¿∩, ¬«Γ«αδÑ «¡á ¡Ñ «íαáíáΓδóáÑΓ, ¿, ¬α«¼Ñ φΓ«ú«,
- »«ßδ½áÑΓ ¡Ñ¬«Γ«αδÑ ß««íΘÑ¡¿∩, ¬«Γ«αδÑ «íαáíáΓδóáÑΓ.
- 滿߫¬ óßÑσ ß««íΘÑ¡¿⌐, ¬«Γ«αδÑ óáΦá »α«úαá¼¼á ñ«½ª¡á
- »ÑαÑñáΓ∞ DefFrameProc, »α¿óÑñÑ¡ ó Γ«¼Ñ 1 æ»αáó«τ¡«ú«
-
- Windows 3.0/pg/3#3 = 157 =
-
- απ¬«ó«ñßΓóá.
-
- DefFrameProc Γá¬ªÑ «íαáíáΓδóáÑΓ ß««íΘÑ¡¿∩ WM_SIZE, ¿º¼Ñ¡∩∩
- «¬¡« »«½∞º«óáΓѽ∩ MDI Γá¬, τΓ«íδ «¡« »«¼ÑΘὫß∞ ó ¡«óπε «í½áßΓ∞
- »«½∞º«óáΓѽ∩. Åਪ½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ «»αÑñѽ¿Γ∞ ñ«τÑα¡¿¼
- «¬¡á¼ ¿ ¼Ñ¡∞Φ¿⌐ αẼÑα, Ñß½¿ φΓ« ¡πª¡« (¡á»α¿¼Ñα, ñ½∩ óδñѽѡ¿∩
- ¼ÑßΓá »«ñ ßΓ᫬π ß«ßΓ«∩¡¿∩ ¿½¿ αѺ¿¡«ó«Ñ «¬¡«).
-
- DefFrameProc Γá¬ªÑ πßΓá¡áó½¿óáÑΓ ºáσóáΓ óó«ñá ¡á «¬¡«
- »«½∞º«óáΓѽ∩ MDI »α¿ «í¡áαπªÑ¡¿¿ ß««íΘÑ¡¿∩ WM_SETFOCUS. Ĭ¡«
- »«½∞º«óáΓѽ∩ πßΓá¡áó½¿óáÑΓ ºáσóáΓ óó«ñá ñ½∩ á¬Γ¿ó¡«ú« ñ«τÑα¡Ñú«
- «¬¡á, Ñß½¿ Γá¬«Ñ ÑßΓ∞. èᬠ¼δ πªÑ ú«ó«α¿½¿, ß««íΘÑ¡¿Ñ WM_CREATE
- ºáßΓáó½∩ÑΓ «¬¡« ΣαÑ⌐¼á ß«ºñáΓ∞ «¬¡« »«½∞º«óáΓѽ∩ MDI.
-
- Åα«µÑñπαá «¬¡á ΣαѼá Multipad ¡áºδóáÑΓß∩ MPFrameWndProc.
- Äíαáí«Γ¬á «ßΓá½∞¡δσ ß««íΘÑ¡¿⌐ á¡á½«ú¿τ¡á «íαáí«Γ¬Ñ ß««íΘÑ¡¿⌐ ó
- »α¿¬½áñ¡δσ »α«úαá¼¼áσ, ¡Ñ ¿ß»«½∞ºπεΘ¿σ MDI. æ««íΘÑ¡¿Ñ
- WM_COMMAND «íαáíáΓδóáÑΓß∩ ó Multipad ½«¬á½∞¡« «»αÑñѽѡ¡«⌐
- Σπ¡¬µ¿Ñ⌐ CommandHandler, ¬«Γ«αá∩ óδºδóáÑΓ Σπ¡¬µ¿ε DefFrameProc
- ó ß½πτáÑ, Ñß½¿ «¡á ¡Ñ «íαáíáΓδóáÑΓ φΓ« ß««íΘÑ¡¿Ñ. àß½¿ íδ
- Multipad ¡Ñ ñѽá½á φΓ«, Γ« »«½∞º«óáΓѽ∞ ¡Ñ ß¼«ú íδ
- á¬Γ¿ó¿º¿α«óáΓ∞ ñ«τÑα¡¿Ñ «¬¡á ¿º ¼Ñ¡ε, Γ.¬. ß««íΘÑ¡¿Ñ
- WM_COMMAND, »«ßδ½áѼ«Ñ »α¿ óδí«αÑ φ½Ñ¼Ñ¡Γá ó ¼Ñ¡ε, ¼«ªÑΓ íδΓ∞
- »«ΓÑα∩¡«.
-
- 21.5 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ ñ½∩ ñ«τÑα¡Ñú«
- «¬¡á.
-
- èᬠ¿ Σπ¡¬µ¿∩ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ «¬¡á ΣαÑ⌐¼á, Σπ¡¬µ¿∩
- «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ ñ«τÑα¡Ñú« «¬¡á ¿ß»«½∞ºπÑΓ ß»Ñµ¿á½∞¡πε
- Σπ¡¬µ¿ε ñ½∩ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ »« π¼«½τá¡¿ε. éßÑ
- ¡Ñ«íαáíáΓδóáѼδÑ Σπ¡¬µ¿Ñ⌐ ñ«τÑα¡Ñú« «¬¡á ß««íΘÑ¡¿∩ ñ«½ª¡δ íδΓ∞
- »ÑαÑñá¡δ Σπ¡¬µ¿¿ DefMDIChildProc, ó¼ÑßΓ« Σπ¡¬µ¿¿ DefWindowProc.
- èα«¼Ñ φΓ«ú«, ¡Ñ¬«Γ«αδÑ ß««íΘÑ¡¿∩ π»αáó½Ñ¡¿∩ «¬¡á¼¿ (WM_SIZE,
- WM_MOVE, WM_GETMINMAXINFI) ñ«½ª¡δ »ÑαÑñáóáΓ∞ß∩ Σπ¡¬µ¿¿
- DefMDIChildProc ñáªÑ ó Γ«¼ ß½πτáÑ, Ñß½¿ óáΦá Σπ¡¬µ¿∩ ¿σ
- «íαáíáΓδóáÑΓ. ¥Γ« ñѽáÑΓß∩ ñ½∩ Γ«ú«, τΓ«íδ ¿¡ΓÑαΣÑ⌐ß MDI
- ¬«ααÑ¬Γ¡« Σπ¡¬µ¿«¡¿α«óá½. Å«½¡δ⌐ ß»¿ß«¬ ß««íΘÑ¡¿⌐, ¬«Γ«αδÑ
- ¡Ñ«íσ«ñ¿¼« »ÑαÑñáóáΓ∞ Σπ¡¬µ¿¿ DefMDIChildProc, óδ ¡á⌐ñÑΓÑ ó
- »Ñαó«¼ Γ«¼Ñ æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá.
-
- öπ¡¬µ¿∩ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ ñ«τÑα¡¿σ «¬«¡ Multipad
- ¡áºδóáÑΓß∩ MPChildWndProc.
-
- 21.6 æó∩ºδóá¡¿Ñ ñá¡¡δσ ß ñ«τÑα¡¿¼¿ «¬¡á¼¿.
-
- ū߬«½∞¬π τ¿ß½« ñ«τÑα¡¿σ «¬«¡ ¼«ªÑΓ «Γ½¿τáΓ∞ß∩, ó
- ºáó¿ß¿¼«ßΓ¿ «Γ «Γ¬αδΓδσ »«½∞º«óáΓѽѼ ñ«¬π¼Ñ¡Γ«ó, »α¿¬½áñ¡á∩
- »α«úαá¼¼á, ¿ß»«½∞ºπεΘá∩ MDI, ñ«½ª¡á ¿¼ÑΓ∞ 󫺼«ª¡«ßΓ∞ ßó∩ºáΓ∞ ß
- ¬áªñδ¼ ñ«τÑα¡¿¼ «¬¡«¼ ¡Ñ¬«Γ«αδÑ ñá¡¡δÑ (¡á»α¿¼Ñα, ¿¼∩ Σá⌐½á).
- ¥Γ« ¼«ª¡« ßñѽáΓ∞ ñóπ¼∩ ß»«ß«íἿ:
-
- - çừ¼¿¡á∩ ñá¡¡δÑ ó ßΓαπ¬ΓπαÑ «¬¡á.
-
- Windows 3.0/pg/3#3 = 158 =
-
-
- - êß»«½∞ºπ∩ ßó«⌐ßΓóá «¬¡á.
-
- ÄßΓáóΦá∩ß∩ τáßΓ∞ ñá¡¡«ú« αáºñÑ½á »«ßó∩ΘÑ¡á «íßπªñÑ¡¿ε φΓ¿σ
- ß»«ß«í«ó.
- 21.6.1 òαá¡Ñ¡¿Ñ ñá¡¡δσ ó ßΓαπ¬ΓπαÑ «¬¡á.
-
- Åα¿ αÑú¿ßΓαᵿ¿ ¬½áßßá «¬¡á »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ
- ºáαѺÑαó¿α«óáΓ∞ ñ«»«½¡¿Γѽ∞¡πε «í½áßΓ∞ ó ßΓαπ¬ΓπαÑ «¬¡á ñ½∩
- σαá¡Ñ¡¿∩ ñá¡¡δσ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, «Γ¡«ß∩Θ¿σß∩ ¬ ¬«¡¬αÑΓ¡«¼π
- «¬¡π. ä½∩ ºá¡ÑßÑ¡¿∩ ¿ »«½πτÑ¡¿∩ ñá¡¡δσ ¿º φΓ«⌐ «í½áßΓ¿
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿¿ GetWindowWord,
- GetWindowLong, SetWindowWord ¿ SetWindowLong.
-
- àß½¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ΓαÑíπÑΓß∩ ßó∩ºáΓ∞ ß «¬¡«¼
- í«½∞Φ«⌐ «íΩѼ ¿¡Σ«α¼áµ¿¿, Γ« «¡á ¼«ªÑΓ ºá¡ÑßΓ¿ ÑÑ ó «í½áßΓ∞
- »á¼∩Γ¿, »«½πτ¿Γ∞ ñÑß¬α¿»Γ«α φΓ«⌐ «í½áßΓ¿ ñá¡¡δσ ¿ σαá¡¿Γ∞ Ñú« ó
- ßΓαπ¬ΓπαÑ «¬¡á.
-
- Multipad ¿ß»«½∞ºπÑΓ ¿¼Ñ¡¡« φΓ«Γ ß»«ß«í. ìá»α¿¼Ñα,
- ß««íΘÑ¡¿Ñ WM_CREATE «íαáíáΓδóáÑΓß∩ Σπ¡¬µ¿Ñ⌐ MPChildWndProc,
- ¬«Γ«αá∩ ß«ºñáÑΓ ¼¡«ú«ßΓα«τ¡δ⌐ í½«¬ αÑñá¬Γ¿α«óá¡¿∩ ó ¬áτÑßΓóÑ
- «¬¡á ΓѬßΓ«ó«ú« αÑñá¬Γ«αá. Multipad ß«σαá¡∩ÑΓ ñÑß¬α¿»Γ«α φΓ«ú«
- í½«¬á ó ßΓαπ¬ΓπαÑ ñá¡¡δσ ñ«τÑα¡Ñú« «¬¡á ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- SetWindowWord. Åα¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ «íαáΘÑ¡¿∩ ¬ í½«¬π
- αÑñá¬Γ¿α«óá¡¿∩ Multipad ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε GetWindowWord ñ½∩
- »«½πτÑ¡¿∩ ñÑß¬α¿»Γ«αá í½«¬á αÑñá¬Γ¿α«óá¡¿∩. Æá¬¿¼ «íαẫ¼
- Multipad »«ññÑনóáÑΓ ¡á ¬áªñδ⌐ ñ«¬π¼Ñ¡Γ »« ¡Ñ߬«½∞¬«
- »ÑαѼѡ¡δσ.
-
- 21.6.2 êß»«½∞º«óá¡¿Ñ ßó«⌐ßΓó «¬¡á.
-
- éáΦá »α«úαá¼¼á ¼«ªÑΓ Γá¬ªÑ ß«σαá¡∩Γ∞ ñá¡¡δÑ, «Γ¡«ß∩Θ¿Ñß∩ ¬
- ñ«¬π¼Ñ¡Γπ, ¿ß»«½∞ºπ∩ ßó«⌐ßΓóá «¬¡á. æó«⌐ßΓóá «Γ½¿τáεΓß∩ «Γ
- σαá¡Ñ¡¿∩ ñá¡¡δσ ó ßΓαπ¬ΓπαÑ «¬¡á ΓѼ, τΓ« ¡Ñ ΓαÑíπÑΓß∩ óδñѽ∩Γ∞
- ñ«»«½¡¿Γѽ∞¡πε »á¼∩Γ∞ »α¿ αÑú¿ßΓαᵿ¿ ¬½áßßá «¬¡á. ǡὫú¿τ¡«
- Γ«¼π, ¬á¬ ó ßΓαπ¬ΓπαÑ óδ ºá»«¼¿¡áÑΓÑ ñÑß¬α¿»Γ«α «í½áßΓ¿ ñá¡¡δσ,
- Γᬠ¿ ¬ ßó«⌐ßΓóá¼ óδ «íαáΘáÑΓÑß∞ »« ¿¼Ñ¡¡«⌐ ßΓ᫬Ñ.
-
- æó∩º∞ε ß ¬áªñδ¼ ßó«⌐ßΓó«¼ ∩ó½∩ÑΓß∩ ñÑß¬α¿»Γ«α. ìá»α¿¼Ñα,
- Multipad ¼«ú½á íδ ¿¼ÑΓ∞ ßó«⌐ßΓó« ß ¿¼Ñ¡Ñ¼ "EditControl" ñ½∩
- σαá¡Ñ¡¿∩ ñÑß¬α¿»Γ«αá αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩.
- äÑß¬α¿»Γ«α ¼«ªÑΓ íδΓ∞ ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ½εíδ¼ ñóπσ-íá⌐Γ«óδ¼
- º¡áτÑ¡¿Ñ¼, ¿ ¼«ªÑΓ íδΓ∞ ñÑß¬α¿»Γ«α«¼ ßΓαπ¬Γπαδ ñá¡¡δσ. ùáßΓ«
- ßó«⌐ßΓóá í«½ÑÑ πñ«í¡δ, τѼ ñ«»«½¡¿Γѽ∞¡δÑ ñá¡¡δÑ ó ßΓαπ¬ΓπαÑ
- «¬¡á, »«ß¬«½∞¬π »α¿ ¿ß»«½∞º«óá¡¿¿ ßó«⌐ßΓó »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ¡Ñ ñ«½ª¡á óδτ¿ß½∩Γ∞ ¡Ñ«íσ«ñ¿¼δ⌐ αẼÑα ñ«»«½¡¿Γѽ∞¡«⌐ «í½áßΓ¿ ó
- ßΓαπ¬ΓπαÑ «¬¡á ¿ óδτ¿ß½∩Γ∞ ß¼ÑΘÑ¡¿∩ ¡á αẽ¿τ¡δÑ φ½Ñ¼Ñ¡Γδ. æ
- ñαπú«⌐ ßΓ«α«¡δ, ñ«ßΓπ» ¬ ñá¡¡δ¼ ó ßΓαπ¬ΓπαÑ «¬¡á «ßπΘÑßΓó½∩ÑΓß∩
- íδßΓαÑÑ, τѼ ñ«ßΓπ» ¬ ßó«⌐ßΓóá¼.
-
-
- Windows 3.0/pg/3#3 = 159 =
-
- 21.7 ô»αáó½Ñ¡¿Ñ ñ«τÑα¡¿¼¿ «¬¡á¼¿.
-
- ä½∩ π»αáó½Ñ¡¿∩ ñ«τÑα¡¿¼¿ «¬¡á¼¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á,
- ¿ß»«½∞ºπεΘá∩ MDI, »«ßδ½áÑΓ ß««íΘÑ¡¿∩ «¬¡á¼ - »«½∞º«óáΓѽ∩¼ MDI.
- ¥Γ« ó¬½ετáÑΓ ó ßÑí∩ ß«ºñá¡¿Ñ, αáºαπΦÑ¡¿Ñ, á¬Γ¿ó¿ºáµ¿ε ¿
- ¿º¼Ñ¡Ñ¡¿Ñ ß«ßΓ«∩¡¿∩ ñ«τÑα¡¿σ «¬«¡.
-
- é «ß¡«ó¡«¼, »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ¿¼ÑΓ∞ ñѽ« ß
- ΓѬπΘ¿¼ á¬Γ¿ó¡δ¼ ñ«τÑα¡¿¼ «¬¡«¼. ìá»α¿¼Ñα, ó Multipad,
- í«½∞Φ¿¡ßΓó« ¬«¼á¡ñ ¼Ñ¡ε File ¿ óßÑ ¬«¼á¡ñδ ¼Ñ¡ε Edit ¿ Search
- «íαáΘáεΓß∩ ¬ ΓѬπΘѼπ á¬Γ¿ó¡«¼π «¬¡π. Å«φΓ«¼π Multipad
- »«ññÑনóáÑΓ ñóÑ »ÑαѼѡ¡δÑ - hWndActivEdit ¿ hWndActiv,
- »«ß¬«½∞¬π Γ«½∞¬« φΓ¿ ñóá «¬¡á ¼«úπΓ »«½πτáΓ∞ ß««íΘÑ¡¿∩.
-
- Äñ¡á¬« ¿¼ÑεΓß∩ ¿ß¬½ετÑ¡¿∩. ìá»α¿¼Ñα, »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ¼«ªÑΓ »«ß½áΓ∞ ß««íΘÑ¡¿Ñ óßѼ ñ«τÑα¡¿¼ «¬¡á¼, τΓ«íδ «»αÑñѽ¿Γ∞
- ¿σ ß«ßΓ«∩¡¿Ñ. Multipad ñѽáÑΓ φΓ« »α¿ ºáóÑαΦÑ¡¿¿, τΓ«íδ
- πíÑñ¿Γ∞ß∩, τΓ« óßÑ Σá⌐½δ í뫨 ß«σαá¡Ñ¡δ.
-
- ū߬«½∞¬π ñ«τÑα¡¿Ñ «¬¡á MDI ¼«úπΓ íδΓ∞ ó ó¿ñÑ ¿¬«¡δ, Γ«
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡δ »α«∩ó½∩Γ∞ «ßë᫪¡«ßΓ∞, τΓ«íδ ¡Ñ
- ¼á¡¿»π½¿α«óáΓ∞ «¬¡á¼¿ ó ó¿ñÑ ¿¬«¡δ ¬á¬ «íδτ¡δ¼ ñ«τÑα¡¿¼ «¬¡«¼
- MDI. Ĭ¡á ó ó¿ñÑ ¿¬«¡δ «Γ«íαáªáεΓß∩ ¬«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á
- »α¿τ¿ß½∩ÑΓ ñ«τÑα¡¿Ñ «¬¡á ¬ »«½∞º«óáΓѽε MDI, ¡« «¬¡á ó ó¿ñÑ
- ¿¬«¡δ «Γ½¿τáεΓß∩ «Γ ñαπú¿σ ñ«τÑα¡¿σ «¬«¡ ΓѼ, τΓ« ¿¼¿ ó½áñÑÑΓ
- ñ«τÑα¡ÑÑ «¬¡« MDI. Æá¬¿¼ «íαẫ¼, ñ½∩ «»αÑñѽѡ¿∩ Γ«ú«, τΓ«
- «¬¡« »αÑñßΓáó½∩ÑΓß∩ ó ó¿ñÑ ¿¬«¡δ, ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞
- Σπ¡¬µ¿ε GetWindow ß ¿¡ñѬ߫¼ GW_OWNER. Ĭ¡á ¡Ñ ¿¬«¡δ ó«ºóαáΘáεΓ
- NULL. çá¼ÑΓ¿¼, τΓ« Γá¬á∩ »α«óÑα¬á ¡Ññ«ßΓáΓ«τ¡á ñ½∩ «¬«¡
- óÑασ¡Ñú« πα«ó¡∩, Γᬿσ ¬á¬ ¡á¬½áñδóáѼδÑ «¬¡á ¿ »á¡Ñ½¿ ñ¿á½«úá,
- »«ß¬«½∞¬π «¡¿ Γá¬ªÑ ó½áñÑεΓ «¬¡á¼¿.
-
- ÄßΓáóΦá∩ß∩ τáßΓ∞ ñá¡¡«⌐ ú½áóδ »«ßó∩ΘÑ¡á Γ«¼π, ¬á¬ ¼«ª¡«
- ß«ºñáΓ∞, αáºαπΦ¿Γ∞, á¬Γ¿ó¿º¿α«óáΓ∞, ñÑá¬Γ¿ó¿º¿α«óáΓ∞ ¿
- »ÑαÑßΓáó¿Γ∞ ñ«τÑα¡¿Ñ «¬¡á MDI.
- 21.7.1 櫺ñá¡¿Ñ ñ«τÑα¡¿σ «¬«¡.
-
- ä½∩ ß«ºñá¡¿∩ ñ«τÑα¡Ñú« «¬¡á MDI »α¿¬½áñ¡á∩ »α«úαá¼¼á
- »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ WM_MDICREATE »«½∞º«óáΓѽε MDI. (Åਪ½áñ¡á∩
- »α«úαá¼¼á ¡Ñ ñ«½ª¡á ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε CreateWindow ñ½∩
- ß«ºñá¡¿∩ ñ«τÑα¡¿σ «¬«¡ MDI). Åáαá¼ÑΓα lParam ß««íΘÑ¡¿∩ ñ«½ªÑ¡
- ß«ñÑαªáΓ∞ π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ MDICREATESTRUCT, ¬«Γ«αá∩
- ß«ñÑαª¿Γ »«½∩, á¡á½«ú¿τ¡δÑ »áαá¼ÑΓαá¼ Σπ¡¬µ¿¿ CreateWindow.
-
- Multipad ß«ºñáÑΓ ñ«τÑα¡¿Ñ «¬¡á MDI ß »«¼«Θ∞ε ½«¬á½∞¡«
- «»αÑñѽѡ¡«⌐ Σπ¡¬µ¿¿ AddFile (ß«ñÑনΓß∩ ó Σá⌐½Ñ MPFILE.C).
- öπ¡¬µ¿∩ AddFile ºáñáÑΓ ºáú«½«ó«¬ «¬¡á, »α¿ßóá¿óá∩ »«½ε szTitle
- ßΓαπ¬Γπαδ MDICREATESTRUCT ½¿í« ¿¼∩ Σá⌐½á, ½¿í« ßΓ᫬π
- "Untitled". é »«½Ñ szClass ºá¡«ß¿Γß∩ ¿¼∩ ¬½áßßá ñ«τÑα¡¿σ «¬«¡,
- ºáαÑú¿ßΓα¿α«óá¡¡«ú« Σπ¡¬µ¿Ñ⌐ Multipad InitializeApplication. é
- »«½Ñ ó½áñѽ∞µá, hOwner, ºá¡«ß¿Γß∩ ñÑß¬α¿»Γ«α φ¬ºÑ¼»½∩αá
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
-
-
- Windows 3.0/pg/3#3 = 160 =
-
- æΓαπ¬Γπαá MDICREATESTRUCT ß«ñÑαª¿Γ τÑΓδαÑ »«½∩,
- «»αÑñѽ∩εΘ¿σ αẼÑαδ: x ¿ y, ¬«Γ«αδÑ «»αÑñѽ∩εΓ ¬««αñ¿¡áΓδ
- «¬¡á, ¿ cx ¿ cy, «»αÑñѽ∩εΘ¿Ñ αẼÑαδ «¬¡á. éßÑ ¿½¿ ¡Ñ¬«Γ«αδÑ
- ¿º ¡¿σ ¼«úπΓ ß«ñÑαªáΓ∞ º¡áτÑ¡¿Ñ CW_USEDEFAULT, »α¿ ¬«Γ«α«¼
- »«º¿µ¿∩ ¿/¿½¿ αẼÑαδ «¬¡á íπñπΓ ºáñáóáΓ∞ß∩ ó ß««ΓóÑΓßΓó¿¿ ß
- ¬á߬áñ¡δ¼ á½ú«α¿Γ¼«¼ Windows. é ½εí«¼ ß½πτáÑ, óßÑ τÑΓδαÑ »«½∩
- ñ«½ª¡δ íδΓ∞ ¿¡¿µ¿á½¿º¿α«óá¡δ. Multipad ó« óßÑσ ß½πτá∩σ
- ¿ß»«½∞ºπÑΓ CW_USEDEFAULT.
-
- ū߽Ññ¡ÑÑ »«½Ñ - style - ß«ñÑαª¿Γ í¿Γδ Γ¿»á «¬¡á. Windows
- ΓαÑíπÑΓ ñ½∩ ñ«τÑα¡¿σ «¬«¡ MDI ¡Ñ¬«Γ«αδÑ Γ¿»δ ¿ «ßΓáó½∩ÑΓ óá¼
- ¡Ñ¬«Γ«αδÑ ñαπú¿Ñ, á Γá¬ªÑ ¼á߬¿απÑΓ ¡Ñ ß««ΓóÑΓßΓóπεΘ¿Ñ.
-
- ä½∩ «»αÑñѽѡ¿∩ ¿ßσ«ñ¡«ú« ß«ßΓ«∩¡¿∩ «¬¡á ¼«ª¡«
- ¿ß»«½∞º«óáΓ∞ í¿Γδ WS_MINIMIZE ¿½¿ WS_MAXIMIZE.
-
- ô¬áºáΓѽ∞, »«ßδ½áѼδ⌐ ó »áαá¼ÑΓαÑ lParam ß««íΘÑ¡¿∩
- WM_MDICREATE, »ÑαÑñáÑΓß∩ ß«ºñáóáѼ«¼π «¬¡π ¿ ∩ó½∩ÑΓß∩ »Ñαóδ¼
- »«½Ñ¼ ßΓαπ¬Γπαδ CREATESTRUCT, »ÑαÑñáóáѼ«⌐ ó ß««íΘÑ¡¿¿
- WM_CREATE. é Multipad ñ«τÑα¡¿Ñ «¬¡á ¿¡¿µ¿á½¿º¿απεΓ ßἿ ßÑí∩
- »α¿ «íαáí«Γ¬Ñ ß««íΘÑ¡¿∩ WM_CREATE, ¿¡¿µ¿á½¿º¿απ∩ »ÑαѼѡ¡δÑ
- ñ«¬π¼Ñ¡Γ«ó ó ñ«»«½¡¿Γѽ∞¡«⌐ «í½áßΓ¿ ßΓαπ¬Γπαδ «¬¡á, ¿ ß«ºñáóá∩
- í½«¬ αÑñá¬Γ¿α«óá¡¿∩ ñ«τÑα¡Ñú« «¬¡á.
-
- 21.7.2 ÉáºαπΦÑ¡¿Ñ ñ«τÑα¡¿σ «¬«¡.
-
- ä½∩ αáºαπΦÑ¡¿∩ ñ«τÑα¡Ñú« «¬¡á MDI ¿ß»«½∞ºπÑΓß∩ ß««íΘÑ¡¿Ñ
- WM_MDIDESTROY. äÑß¬α¿»Γ«α ñ«τÑα¡Ñú« «¬¡á »ÑαÑñáÑΓß∩ ó ¬áτÑΓßóÑ
- »áαá¼ÑΓαá wParam.
- 21.7.3 Ç¬Γ¿ó¿ºáµ¿∩ ¿ ñÑá¬Γ¿ó¿ºáµ¿∩ ñ«τÑα¡¿σ «¬«¡.
-
- Ç¬Γ¿ó¡«Ñ «¬¡« ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡« ß »«¼«Θ∞ε ß««íΘÑ¡¿⌐
- WM_MDICREATE ¿ WM_MDIACTIVATE. æ««íΘÑ¡¿Ñ WM_MDINEXT
- á¬Γ¿ó¿º¿απÑΓ ß½ÑñπεΘÑÑ ó ß»¿ß¬Ñ «¬«¡ ñ«τÑα¡ÑÑ «¬¡«, á ß««íΘÑ¡¿Ñ
- WM_MDIACTIVATE á¬Γ¿ó¿º¿απÑΓ ñ«τÑα¡ÑÑ «¬¡«, «»αÑñѽ∩Ѽ«Ñ
- »áαá¼ÑΓα«¼ ß««íΘÑ¡¿∩ lParam. Ç¬Γ¿ó¿ºáµ¿∩ «íδτ¡« óδ»«½¡∩ÑΓß∩
- »«½∞º«óáΓѽѼ τÑαѺ »«½∞º«óáΓѽ∞߬¿⌐ ¿¡ΓÑαΣÑ⌐ß MDI. Multipad
- ¡á»α∩¼πε ¡Ñ ¿ß»«½∞ºπÑΓ ¡¿ «ñ¡« ¿º φΓ¿σ ß««íΘÑ¡¿⌐.
-
- Äß¡«ó¡δ¼ ¿ß»«½∞º«ó᡿Ѽ ß««íΘÑ¡¿∩ WM_MDIACTIVATE ∩ó½∩ÑΓß∩
- ß½Ññ«óá¡¿Ñ ºá ¿º¼Ñ¡Ñ¡¿Ñ¼ á¬Γ¿ó¡«ú« «¬¡á. æ««íΘÑ¡¿Ñ
- WM_MDIACTIVATE »«ßδ½áÑΓß∩ Γá¬ªÑ ñ«τÑα¡¿¼ «¬¡á¼ MDI »α¿
- á¬Γ¿ó¿ºáµ¿¿ ¿ ñÑá¬Γ¿ó¿ºáµ¿¿. Æá¬¿¼ «íαẫ¼, «Γ߽Ѫ¿óá∩
- ß««íΘÑ¡¿∩ WM_MDIACTIVATE, »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ «»αÑñѽ∩Γ∞
- ΓѬπΘÑÑ á¬Γ¿ó¡«Ñ «¬¡« MDI.
-
- Multipad »«ññÑনóáÑΓ ñóÑ ú½«íá½∞¡δÑ »ÑαѼѡ¡δÑ,
- hwndActive ¿ hwndActivEdit, ¬«Γ«αδÑ ∩ó½∩εΓß∩ ñÑß¬α¿»Γ«α«¼
- ΓѬπΘÑú« á¬Γ¿ó¡«ú« ñ«τÑα¡Ñú« «¬¡á MDI ¿ Ñú« αÑñá¬Γ¿απѼ«ú«
- í½«¬á ß««ΓóÑΓßΓóÑ¡¡«. ÄΓ߽Ѫ¿óá¡¿Ñ φΓ¿σ «¬«¡ π»α«ΘáÑΓ »«ß佬π
- ß««íΘÑ¡¿⌐.
-
-
- Windows 3.0/pg/3#3 = 161 =
-
- Å«½πτ¿Γ∞ ΓѬπΘÑÑ á¬Γ¿ó¡«Ñ «¬¡« MDI ¼«ª¡« ß »«¼«Θ∞ε
- ß««íΘÑ¡¿∩ WM_MDIGETACTIV, ¬«Γ«αδ⌐ ó«ºóαáΘáÑΓ á¬Γ¿ó¡«Ñ ñ«τÑα¡ÑÑ
- «¬¡« ó ¼½áñΦѼ ß½«óÑ. çáΓѼ, »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ
- ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε GetWindowWord ñ½∩ »«½πτÑ¡¿∩ ñÑß¬α¿»Γ«αá
- «¬¡á ñ½∩ í½«¬á αÑñá¬Γ¿α«óá¡¿∩. ä½∩ ∩ó¡«ú« ¼á¬ß¿¼¿º¿α«óá¡¿∩ ¿½¿
- ó«ßßΓá¡«ó½Ñ¡¿∩ ñ«τÑα¡Ñú« «¬¡á »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ
- ¿ß»«½∞º«óáΓ∞ ß««íΘÑ¡¿∩ WM_MDIMAXIMAZE ¿ WM_MDIRESTORE, »áαá¼ÑΓα
- wParam ¬«Γ«αδσ «»αÑñѽ∩ÑΓ ñÑß¬α¿»Γ«α ¿º¼Ñ¡∩Ѽ«ú« «¬¡á. Ä»∩Γ∞
- ªÑ, φΓ« ß««íΘÑ¡¿∩, ¬«Γ«αδÑ »α¿¬½áñ¡á∩ »α«úαá¼¼á ¡Ñ ñ«½ª¡á
- «íδτ¡« ¿ß»«½∞º«óáΓ∞, »«ß¬«½∞¬π Windows π»αáó½∩ÑΓ
- »«½∞º«óáΓѽ∞߬¿¼ ¿¡ΓÑαΣÑ⌐ß«¼ MDI ó ¿¡ΓÑαÑßáσ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ.
-
- 21.7.4 ÉáßßΓá¡«ó¬á ñ«τÑα¡¿σ «¬«¡ ¡á φ¬αá¡Ñ.
-
- Windows »αÑñ«ßΓáó½∩ÑΓ Γα¿ ß½πªÑí¡δσ ß««íΘÑ¡¿∩, ¬«Γ«αδÑ
- óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ñ½∩ αáßßΓá¡«ó¬¿ ñ«τÑα¡¿σ «¬«¡ MDI ¡á
- φ¬αá¡Ñ.
-
- æ««íΘÑ¡¿Ñ Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- WM_MDICASCADE ÉáßßΓáó½∩ÑΓ óßÑ ñ«τÑα¡¿Ñ «¬¡á, ¡Ñ ¿¬«¡δ,
- ó »«α∩ñ¬Ñ «Γ ½Ñó«ú« óÑασ¡Ñú« πú½á »« ¡á»-
- αáó½Ñ¡¿ε ¬ »αáó«¼π ¡¿ª¡Ñ¼π. (¥Γ« ß««íΘÑ¡¿Ñ
- Γá¬ªÑ αáßßΓáó½∩ÑΓ ñ«τÑα¡¿Ñ ¿¬«¡δ).
-
- WM_MDIICONARRANGE ÉáßßΓáó½∩ÑΓ óßÑ ñ«τÑα¡¿Ñ ¿¬«¡δ «¬¡á ó ¡¿ª¡Ñ⌐
- τáßΓ¿ «¬¡á »«½∞º«óáΓѽ∩ MDI.
-
- WM_MDITILE ÉáßßΓáó½∩ÑΓ óßÑ ñ«τÑα¡¿Ñ «¬¡á, ¡Ñ ¿¬«¡δ,
- Γá¬, τΓ«íδ «¡¿ í뫨 óßΓδ¬ ó¡πΓα¿ «¬¡á
- »«½∞º«óáΓѽ∩ MDI. (¥Γ« ß««íΘÑ¡¿Ñ ΓᬪÑ
- αáßßΓáó½∩ÑΓ ¿¬«¡δ).
- ───────────────────────────────────────────────────────────────
-
-
- Windows 3.0/pg/3#3 = 162 =
-
- 21.8 çᬽετÑ¡¿Ñ.
-
- é ñá¡¡«⌐ ú½áóÑ »α¿ó«ñ¿Γß∩ «ß¡«ó¡á∩ ¿¡Σ«α¼áµ¿∩ «í
- ¿¡ΓÑαΣÑ⌐ßÑ ¼¡«ªÑßΓóá ñ«¬π¼Ñ¡Γ«ó Windows ¿ «»¿ßδóáÑΓß∩ ßΓαπ¬Γπαá
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐ φëà ¿¡ΓÑαΣÑ⌐ß. èα«¼Ñ φΓ«ú«
- »α¿ó«ñ¿Γß∩ ¿¡Σ«α¼áµ¿∩, »«∩ß¡∩εΘá∩, ¬á¬ »¿ßáΓ∞ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ, ¿ß»«½∞ºπεΘ¿Ñ MDI.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε «Γ¡«ß¿Γѽ∞¡« MDI óδ ¡á⌐ñÑΓÑ ó:
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- 櫺ñá¡¿Ñ ¿ π»αáó- æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1: â½áóá 1,
- ½Ñ¡¿Ñ «¬¡á¼¿ "öπ¡¬µ¿¿ ß¿ßΓѼδ π»αáó½Ñ¡¿∩ «¬¡á¼¿".
-
- æΓαπ¬Γπαá ¬½áßßá æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1: â½áóá 1,
- «¬¡á "öπ¡¬µ¿¿ ß¿ßΓѼδ π»αáó½Ñ¡¿∩ «¬¡á¼¿".
-
- öπ¡¬µ¿¿ MDI æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1: â½áóá 1,
- "öπ¡¬µ¿¿ ß¿ßΓѼδ π»αáó½Ñ¡¿∩ «¬¡á¼¿", ¿
- â½áóá 4, "滿߫¬ Σπ¡¬µ¿⌐".
-
- Åα¿¼Ñα »α«úαá¼¼δ, Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Multipad,
- ¿ß»«½∞ºπεΘÑ⌐ MDI »«ßΓáó½∩Ѽ«⌐ ¡á ñ¿ß¬Ñ SDK Sample Source
- Code Disk.
-
-
-
- Windows 3.0/pg/3#3 = 163 =
-
- â½áóá 22. 信ἿτÑ߬¿⌐ «í¼Ñ¡ ñá¡¡δ¼¿.
- ----------------------------------------------------------------
- Microsoft Windows »αÑñ«ßΓáó½∩ÑΓ ¡Ñ߬«½∞¬« ¼ÑΓ«ñ«ó ñ½∩
- »ÑαÑñáτ¿ ñá¡¡δσ ¼Ñªñπ »α«úαἼἿ. Äñ¡¿¼ ¿º »πΓÑ⌐ »ÑαÑñáτ¿
- ñá¡¡δσ - ∩ó½∩ÑΓß∩ ¿ß»«½∞º«óá¡¿Ñ ñ¿¡á¼¿τÑ߬«ú« «í¼Ñ¡á ñá¡¡δ¼¿
- Windows (DDE). DDE - φΓ« »α«Γ«¬«½ »ÑαÑñáτ¿ ß««íΘÑ¡¿⌐ ñ½∩ «í¼Ñ¡á
- ñá¡¡δ¼¿ ¼Ñªñπ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ Windows. Ä¡ »«ºó«½∩ÑΓ
- αáºαáí«Γτ¿¬á¼ »α«úαá¼¼¡«ú« «íÑß»ÑτÑ¡¿∩ «αúá¡¿º«óδóáΓ∞
- αáºñѽѡ¿Ñ ñá¡¡δσ ¼Ñªñπ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ ¿ Γᬿ¼ «íαẫ¼
- »αÑñ«ßΓáó¿Γ∞ »«½∞º«óáΓѽε í«½ÑÑ ¿¡ΓÑúα¿α«óá¡¡πε ßαÑñπ.
-
- é ñá¡¡«⌐ ú½áóÑ ß«ñÑনΓß∩ απ¬«ó«ñßΓó« »« αÑ὿ºáµ¿¿
- »α«Γ«¬«½á DDE ó óáΦ¿σ »α¿¬½áñ¡δσ »α«úαá¼¼áσ. Å«½¡«Ñ «»¿ßá¡¿Ñ
- »α«Γ«¬«½á ß«ñÑনΓß∩ ó« óΓ«α«¼ Γ«¼Ñ æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá.
-
- é ñá¡¡«⌐ ú½áóÑ ß«ñÑনΓß∩ ¿¡Σ«α¼áµ¿∩ »« ß½ÑñπεΘ¿¼ ΓѼá¼:
-
- - Äí¼Ñ¡ ñá¡¡δ¼¿ ó Windows.
-
- - è«¡µÑ»µ¿¿ DDE.
-
- - æ««íΘÑ¡¿∩ DDE.
-
- - Å«Γ«¬ ß««íΘÑ¡¿⌐ DDE.
-
- é ñá¡¡«⌐ ú½áóÑ Γá¬ªÑ «»¿ßá¡«, ¬á¬ ¿ß»«½∞º«óáΓ∞ ñóá »α¿¼Ñαá
- »α«úαá¼¼, Client ¿ Server, ¬«Γ«αδÑ ¿½½εßΓα¿απεΓ ñá¡¡δÑ ΓѼδ.
-
- 22.1 Äí¼Ñ¡ ñá¡¡δ¼¿ ó Windows.
-
- é «ß¡«ó¡«¼, Windows »«ññÑনóáÑΓ Γα¿ ¼Ñσá¡¿º¼á «í¼Ñ¡á
- ñá¡¡δ¼¿ ¼Ñªñπ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ:
-
- - ÅÑαÑñáτá τÑαѺ ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- - 信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿.
-
- - 信ἿτÑ߬¿⌐ «í¼Ñ¡ ñá¡¡δ¼¿.
-
- Windows ¡Ñ »«ññÑনóáÑΓ αáºñѽѡ¿Ñ ¡á»α∩¼πε ñÑß¬α¿»Γ«α«ó
- ú½«íá½∞¡δσ í½«¬«ó »á¼∩Γ¿. ä½∩ αáí«Γδ ß αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ∞ε, á
- ΓᬠªÑ ñ½∩ ß«ó¼ÑßΓ¿¼«ßΓ¿ ß íπñπΘ¿¼¿ óÑαß¿∩¼¿ Windows, óδ ¡Ñ
- ñ«½ª¡δ »δΓáΓ∞ß∩ »«½πτ¿Γ∞ áñαÑß (c »«¼«Θ∞ε GlobalUnlock) ¿½¿
- ½εíδ¼ ñαπú¿¼ ß»«ß«í«¼ ¼á¡¿»π½¿α«óáΓ∞ ñÑß¬α¿»Γ«αἿ ú½«íá½∞¡δσ
- í½«¬«ó »á¼∩Γ¿, ß«ºñá¡¡δσ ñαπú«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐. Æá¬πε
- 󫺼«ª¡«ßΓ∞ »αÑñ«ßΓáó½∩ÑΓ óá¼ Γ«½∞¬« DDE, ß ¿ß»«½∞º«ó᡿Ѽ
- ¬«Γ«α«ú« óδ ¼«ªÑΓÑ »ÑαÑñáóáΓ∞ ñÑß¬α¿»Γ«αδ ú½«íá½∞¡δσ í½«¬«ó
- »á¼∩Γ¿ ó ñαπú¿Ñ »α¿¬½áñ¡δÑ »α«úαá¼¼δ.
-
-
- Windows 3.0/pg/3#3 = 164 =
-
-
- 22.1.1 ÅÑαÑñáτá ñá¡¡δσ τÑαѺ ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- æ¿ßΓѼ¡δ⌐ íπΣÑα »«ºó«½∩ÑΓ »«½∞º«óáΓÑ½ε »ÑαÑñáóáΓ∞ ñá¡¡δÑ
- ¼Ñªñπ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ ó ß¿ßΓѼÑ. Å«½∞º«óáΓѽ∞
- ¿¡¿µ¿¿απÑΓ ¬«¼á¡ñπ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ñ½∩ ¬«»¿α«óá¡¿∩
- óδíαá¡¡δσ ñá¡¡δσ ó ß¿ßΓѼ¡δ⌐ íπΣÑα. çáΓѼ, ó ñαπú«⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ »«½∞º«óáΓѽ∞ ¿¡¿µ¿¿απÑΓ ¬«¼á¡ñπ »« óßΓáó¬Ñ ñá¡¡δσ ¿º
- ß¿ßΓѼ¡«ú« íπΣÑαá ó «í½áßΓ∞ ñá¡¡δσ óΓ«α«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
- é «ß¡«ó¡«¼, ß¿ßΓѼ¡δ⌐ íπΣÑα ¿ß»«½∞ºπÑΓß∩ ñ½∩ óαѼѡ¡«ú«
- σαá¡Ñ¡¿∩ ñá¡¡δσ »α¿ »α∩¼«¼ »ÑαÑ¡«ßÑ »«½∞º«óáΓѽѼ ñá¡¡δσ ¿º
- «ñ¡«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ó ñαπúπε.
-
- 22.1.2 信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿.
-
- 信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿ (DLL) ¼«úπΓ íδΓ∞
- ß«ºñá¡δ ñ½∩ «íÑß»ÑτÑ¡¿∩ óαѼѡ¡«ú« σαá¡Ñ¡¿∩ ñá¡¡δσ, αáºñѽ∩Ѽδσ
- »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐. é φΓ«¼ ß½πτáÑ DLL αáßß¼áΓα¿óáÑΓß∩ ¬á¬
- »α«úαá¼¼¡δ⌐ ¿¡ΓÑαΣÑ⌐ß ñ½∩ »«½πτÑ¡¿∩ ¿ ß«σαá¡Ñ¡¿∩ ñá¡¡δσ. æá¼¿
- ñá¡¡δÑ σαá¡∩Γß∩ ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ DLL ¿½¿
- ó ÑÑ ßÑú¼Ñ¡ΓÑ ñá¡¡δσ ó «í½áßΓ¿ ßΓáΓ¿τÑ߬¿σ ñá¡¡δσ. äÑß¬α¿»Γ«αδ
- ¿½¿ áñαÑßá φΓ¿σ ñá¡¡δσ ¼«úπΓ íδΓ∞ »«ß½á¡δ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ
- Γ«½∞¬« ¬á¬ ½«ú¿τÑ߬¿Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ, ¡« »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ¡Ñ ¼«ªÑΓ ¿σ »«½πτ¿Γ∞ ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿. Æ«½∞¬« DLL ¼«ªÑΓ
- »αÑ«íαẫóδóáΓ∞ φΓ¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ ó ñÑ⌐ßΓó¿Γѽ∞¡δÑ ñÑß¬α¿»Γ«αδ
- ¿½¿ áñαÑßá ß »«¼«Θ∞ε Σπ¡¬µ¿⌐ GlobalUnlock, LocalUnlock. é
- «ß¡«ó¡«¼, ñ½∩ «í¼Ñ¡á ñá¡¡δ¼¿ óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Γ«½∞¬«
- ßÑú¼Ñ¡Γ ñá¡¡δσ DLL.
- 22.1.3 信ἿτÑ߬¿⌐ «í¼Ñ¡ ñá¡¡δ¼¿.
-
- Åα«Γ«¬«½ Windows DDE ∩ó½∩ÑΓß∩ ßΓá¡ñáαΓ«¼ ñ½∩ ßó∩ºá¡¡δσ
- »α¿¬½áñ¡δσ »α«úαá¼¼, ¬«Γ«αδ⌐ »«ºó«½∩ÑΓ ¿¼ «í¼Ñ¡¿óáΓ∞ß∩ ñá¡¡δ¼¿
- ¿ ¿¡¿µ¿¿α«óáΓ∞ πñá½Ñ¡¡δÑ ¬«¼á¡ñδ ó ó¿ñÑ ß««íΘÑ¡¿⌐ Windows.
-
- ū߬«½∞¬π Windows íếαπÑΓß∩ ¡á áασ¿ΓѬΓπαÑ, ¿ß»«½∞ºπεΘÑ⌐
- ß««íΘÑ¡¿∩, Γ« »«ß佬á ß««íΘÑ¡¿⌐ ∩ó½∩ÑΓß∩ ¡á¿í«½ÑÑ »«ñσ«ñ∩Θ¿¼
- ¼ÑΓ«ñ«¼ ñ½∩ áóΓ«¼áΓ¿τÑ߬«⌐ »ÑαÑñáτ¿ ñá¡¡δσ ¼Ñªñπ »α¿¬½áñ¡δ¼¿
- »α«úαἼἿ. Äñ¡á¬«, ß««íΘÑ¡¿∩ Windows ñ½∩ »ÑαÑñáτ¿ ñá¡¡δσ
- ¿¼ÑεΓ Γ«½∞¬« ñóá »áαá¼ÑΓαá (wParam ¿ lParam). Å«φΓ«¼π φΓ¿
- »áαá¼ÑΓαδ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ »ÑαÑñáτ¿ ¬«ßóÑ¡¡δσ ßß佫¬ ¡á
- ñαπú¿Ñ í½«¬¿ ¿¡Σ«α¼áµ¿¿.
-
- Åα«Γ«¬«½ DDE Γ«τ¡« «»αÑñѽ∩ÑΓ, ¬á¬ »áαá¼ÑΓαδ lParam ¿
- wParam ¿ß»«½∞ºπεΓß∩ ñ½∩ »ÑαÑñáτ¿ í«½∞Φ¿σ í½«¬«ó ñá¡¡δσ ó ó¿ñÑ
- ú½«íá½∞¡δσ áΓ«¼«ó ¿ ú½«íá½∞¡δσ ñÑß¬α¿»Γ«α«ó αáºñѽ∩Ѽ«⌐ »á¼∩Γ¿.
-
- ⽫íá½∞¡δ⌐ áΓ«¼ - φΓ« ßßδ½¬á ¡á ΓѬßΓ«óπε ßΓ᫬π. é
- »α«Γ«¬«½Ñ DDE áΓ«¼δ ¿ß»«½∞ºπεΓß∩ ñ½∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ ¿¡Σ«α¼áµ¿¿,
- ¬«Γ«α«⌐ «í¼Ñ¡¿óáεΓß∩ »α¿¬½áñ¡δÑ »α«úαá¼¼δ, ñ½∩ ßἫ⌐
- «í¼Ñ¡¿óáѼ«⌐ ¿¡Σ«α¼áµ¿¿, ñ½∩ «»αÑñѽѡ¿∩ »α¿α«ñδ «í¼Ñ¡¿óáѼ«⌐
- ¿¡Σ«α¼áµ¿Ñ⌐.
-
- äÑß¬α¿»Γ«α αáºñѽ∩Ѽ«ú« ú½«íá½∞¡«ú« í½«¬á »á¼∩Γ¿ - φΓ«
- ñÑß¬α¿»Γ«α í½«¬á »á¼∩Γ¿, óδñѽѡ¡«ú« Σπ¡¬µ¿Ñ⌐ GlobalAlloc ß
- ¿ß»«½∞º«ó᡿Ѽ ¬½ετá GMEM_DDECHARE. é »α«Γ«¬«½Ñ DDE αáºñѽ∩ѼδÑ
- ú½«íá½∞¡δÑ «íΩѬΓδ ¿ß»«½∞ºπεΓß∩ ñ½∩ σαá¡Ñ¡¿∩ »ÑαÑñáóáѼδσ ¼Ñªñπ
- »α¿¬½áñ¡δ¼¿ »α«úαἼἿ ñá¡¡δσ, »áαá¼ÑΓα«ó »α«Γ«¬«½á ¿ ßΓ᫬
-
- Windows 3.0/pg/3#3 = 165 =
-
- óδ»«½¡∩Ѽδσ πñá½Ñ¡¡δσ ¬«¼á¡ñ.
-
- Åα«Γ«¬«½ DDE ¿¼ÑÑΓ «τÑ¡∞ ߻ѵ¿Σ¿τÑ߬¿Ñ »αáó¿½á ñ½∩
- ¡áº¡áτÑ¡¿∩ «ΓóÑΓßΓóÑ¡¡«ßΓ¿ »α¿¬½áñ¡δσ »α«úαá¼¼, πτáßΓóπεΘ¿σ ó
- «í¼Ñ¡Ñ ñá¡¡δ¼¿ ß ¿ß»«½∞º«ó᡿Ѽ DDE, ñ½∩ óδñѽѡ¿∩ ¿ πñá½Ñ¡¿∩
- ú½«íá½∞¡δσ áΓ«¼«ó ¿ αáºñѽ∩Ѽδσ «íΩÑ¬Γ«ó »á¼∩Γ¿. é« óΓ«α«¼ Γ«¼Ñ
- æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá, ú½áóá 15, ß«ñÑαªáΓß∩ «»¿ßá¡¿Ñ φΓ¿σ
- »αáó¿½ ñ½∩ ¬áªñ«ú« ß««íΘÑ¡¿∩.
- 22.1.4 è«úñá ¿ß»«½∞º«óáΓ∞ Windows DDE.
-
- Windows DDE ¡á¿í«½ÑÑ »«ñσ«ñ¿Γ ñ½∩ «í¼Ñ¡á ñá¡¡δ¼¿, »α¿
- ¬«Γ«α«¼ ¡Ñ ΓαÑíπÑΓß∩ óºá¿¼«ñÑ⌐ßΓó¿Ñ ß »«½∞º«óáΓѽѼ. Äíδτ¡«
- »α¿¬½áñ¡á∩ »α«úαá¼¼á »αÑñ«ßΓáó½∩ÑΓ »«½∞º«óáΓÑ½ε ¼ÑΓ«ñ ñ½∩
- πßΓá¡«ó½Ñ¡¿∩ ßó∩º¿ ¼Ñªñπ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ,
- «í¼Ñ¡¿óáεΘ¿¼¿ß∩ ñá¡¡δ¼¿. Äñ¡á¬«, »«ß½Ñ πßΓá¡«ó½Ñ¡¿∩ ßó∩º¿
- »α«úαá¼¼δ «í¼Ñ¡¿óáεΓß∩ ñá¡¡δ¼¿ íѺ πτáßΓ¿∩ »«½∞º«óáΓѽ∩.
-
- DDE ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡ ó Φ¿α«¬«¼ ñ¿á»áº«¡Ñ »α¿¬½áñ¡δσ
- ºáñáτ, ó¬½ετá∩:
-
- - Å«ñß«Ññ¿¡Ñ¡¿Ñ ñá¡¡δσ αÑá½∞¡«ú« óαѼѡ¿, Γᬿσ, ¬á¬
- ¼«ñ¿Σ¿¬áµ¿¿ «ß¡«ó¡δσ ñá¡¡δσ ñ½∩ ¬«¡¬αÑΓ¡«ú« α뭪á,
- ¡áπτ¡δÑ ¿¡ßΓαπ¼Ñ¡Γδ ¿½¿ ñá¡¡δÑ π»αáó½Ñ¡¿Ñ »α«µÑßß«¼.
-
- - 櫺ñá¡¿Ñ ß½«ª¡δσ ñ«¬π¼Ñ¡Γ«ó, Γᬿσ ¬á¬ ñ«¬π¼Ñ¡Γδ
- ΓѬßΓ«ó«ú« »α«µÑßß«αá, ó¬½ετáεΘ¿σ úαáΣ¿¬¿, óδ»«½¡Ñ¡¡δÑ ó
- úαáΣ¿τÑ߬¿σ »α«úαá¼¼áσ. æ ¿ß»«½∞º«ó᡿Ѽ DDE úαáΣ¿¬¿
- ¼«úπΓ ¿º¼Ñ¡∩Γ∞ß∩ »α¿ ¿º¼Ñ¡Ñ¡¿¿ ¿ßσ«ñ¡δσ ñá¡¡δσ, ó Γ«
- óαѼ∩, ¬á¬ «ßΓáóΦá∩ß∩ τáßΓ∞ ñ«¬π¼Ñ¡Γá «ßΓáÑΓß∩
- ¡Ñ¿º¼Ñ¡¡«⌐.
-
- - 櫺ñá¡¿Ñ «τÑαÑñÑ⌐ ñá¡¡δσ ¼Ñªñπ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ,
- ¡á»α¿¼Ñα, φ½Ñ¬Γα«¡¡á∩ Γáí½¿µá óßΓáÑΓ ó «τÑαÑñ∞ ¬ íáºÑ
- ñá¡¡δσ ñ½∩ »«½πτÑ¡¿∩ »«ß½Ññ¡¿σ ßτÑΓ«ó.
- 22.1.5 DDE ß Γ«τ¬¿ ºαÑ¡¿∩ »«½∞º«óáΓѽ∩.
-
- æ½ÑñπεΘ¿⌐ »α¿¼Ñα ¿½½εßΓα¿απÑΓ, ¬á¬ ß Γ«τ¬¿ ºαÑ¡¿∩
- »«½∞º«óáΓѽ∩ óºá¿¼«ñÑ⌐ßΓóπεΓ ñóÑ »α¿¬½áñ¡δÑ »α«úαá¼¼δ Windows ß
- ¿ß»«½∞º«ó᡿Ѽ DDE.
-
- Å«½∞º«óáΓѽ∞ σ«Γѽ, τΓ«íδ φ½Ñ¬Γα«¡¡á∩ Γáí½¿µá Microsoft
- Excel «Γ߽Ѫ¿óá½á ßΓ«¿¼«ßΓ∞ «»αÑñѽѡ¡δσ ᬵ¿⌐ ¡á ¡á
- ì∞ε-ë«α¬ß¬«⌐ Σ«¡ñ«ó«⌐ í¿αªÑ. Å«½∞º«óáΓѽ∞ ¿¼Ñ½ »α¿¬½áñ¡πε
- »α«úαá¼¼π Quote ¬«Γ«αá∩, ó ßó«ε «τÑαÑñ∞ ¿¼Ñ½á ñ«ßΓπ» ¬ ñá¡¡δ¼
- ì∞ε-ë«α¬ß¬«⌐ Σ«¡ñ«ó«⌐ í¿αª¿. éºá¿¼«ñÑ⌐ßΓó¿Ñ φΓ¿σ ñóπσ »α«úαá¼¼
- óδú½∩ñѽ« íδ ß½ÑñπεΘ¿¼ «íαẫ¼.
-
- - Å«½∞º«óáΓѽ∞ ¿¡¿µ¿á½¿º¿απÑΓ óºá¿¼«ñÑ⌐ßΓó¿Ñ, π¬áºδóá∩ ¿¼∩
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ (Quote), ¬«Γ«αá∩ »«½πτáÑΓ
- ¿¡ΓÑαÑßπεΘ¿Ñ Ñú« ñá¡¡δÑ. é αѺπ½∞Γ¿απεΘѼ »αÑ«íαẫóá¡¿¿
- ß ¿ß»«½∞º«ó᡿Ѽ DDE »α¿¼Ñ¡∩ÑΓß∩ ¬ ßΓ«¿¼«ßΓ¿
-
- Windows 3.0/pg/3#3 = 166 =
-
- ¿¡ΓÑαÑßπεΘ¿σ ᬵ¿⌐.
-
- - Excel αáßßδ½áÑΓ ¿¼∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿ ¿¼∩ αáºñѽá
- óßѼ αáí«ΓáεΘ¿¼ »α¿¬½áñ¡δ¼ »α«úαá¼¼á¼, ¿ß»«½∞ºπεΘ¿¼ DDE.
- Quote «ΓóÑτáÑΓ, πßΓá¡áó½¿óá∩ ßó∩º∞ ß Excel, « ñá¡¡δσ,
- ΓαÑíπѼδσ «Γ ì∞ε-ë«α¬ß¬«⌐ Σ«¡ñ«ó«⌐ í¿αª¿.
-
- - Å«½∞º«óáΓѽ∞ ¼«ªÑΓ ºáΓѼ »«ΓαÑí«óáΓ∞, τΓ«íδ φ½Ñ¬Γα«¡¡á∩
- Γáí½¿µá áóΓ«¼áΓ¿τÑ߬¿ ¼«ñ¿Σ¿µ¿α«óá½á αѺπ½∞ΓáΓ »α¿
- ¿º¼Ñ¡Ñ¡¿¿ ¿ßσ«ñ¡δσ ñá¡¡δσ, óóÑñ∩ Σ«α¼π½π ó ∩τÑ⌐¬π
- φ½Ñ¬Γα«¡¡«⌐ Γáí½¿µδ. ìá»α¿¼Ñα, »«½∞º«óáΓÑ½ε ¼«ªÑΓ
- »«ΓαÑí«óáΓ∞ß∩ óδ»«½¡¿Γ∞ óδτ¿ß½Ñ¡¿∩ »α¿ ¿º¼Ñ¡Ñ¡¿¿ ¬παßá
- »α«ñ᪠ᬵ¿⌐ IBM. Ä¡ ¼«ªÑΓ φΓ« ßñѽáΓ∞, óóÑñ∩ ó ∩τÑ⌐¬π
- φ½Ñ¬Γα«¡¡«⌐ Γáí½¿µδ Σ«α¼π½π:
-
- = 'Quote' | 'NYSE'!IBM
-
- - Å«½∞º«óáΓѽ∞ ¼«ªÑΓ »αѬαáΓ¿Γ∞ áóΓ«¼áΓ¿τÑ߬πε ¼«ñ¿Σ¿¬áµ¿ε
- ¬παßá ᬵ¿⌐ IBM ó ½εí«⌐ ¼«¼Ñ¡Γ. æ«Ññ¿¡Ñ¡¿Ñ »« ñαπú¿¼
- ñá¡¡δ¼, πßΓá¡«ó½Ñ¡¡«Ñ «Γñѽ∞¡«, ¡á»α¿¼Ñα, »« ¬παßπ ᬵ¿⌐
- ñαπú¿σ Σ¿α¼, «ßΓá¡ÑΓß∩ á¬Γ¿ó¡δ¼ »α¿ ¿ß»«½∞º«óá¡¿¿ Γ«ú«
- ªÑ ß«Ññ¿¡Ñ¡¿∩ ñ½∩ ì∞ε-ë«α¬ß¬«⌐ Σ«¡ñ«ó«⌐ í¿αª¿ (NYSE).
-
- - Å«½∞º«óáΓѽ∞ ¼«ªÑΓ Γá¬ªÑ »αÑαóáΓ∞ óÑß∞ «í¼Ñ¡ ¼Ñªñπ Excel
- ¿ Quote »« NYSE Γᬿ¼ «íαẫ¼, τΓ« ó ñá½∞¡Ñ⌐ΦѼ ¼«ªÑΓ
- íδΓ∞ πßΓá¡«ó½Ñ¡á ßó∩º∞ »« «»αÑñѽѡ¡δ¼ ñá¡¡δ¼ íѺ
- »«óΓ«α¡«⌐ Ñú« ¿¡¿µ¿á½¿ºáµ¿¿.
-
- 22.2 è«¡µÑ»µ¿¿ DDE.
-
- ä½∩ »«¡¿¼á¡¿∩ ñ¿¡á¼¿τÑ߬«ú« «í¼Ñ¡á ñá¡¡δ¼¿ ¡Ñ«íσ«ñ¿¼«
- «»¿ßá¡¿Ñ ¡Ñ¬«Γ«αδσ ¬«¡µÑ»µ¿⌐ ¿ «»αÑñѽѡ¡«⌐ ΓÑନ¡«½«ú¿¿.
- ìá¿í«½ÑÑ ó᪡δÑ ¿º ¡¿σ «»¿ßá¡δ ó ß½ÑñπεΘ¿σ αáºñѽáσ.
- 22.2.1 轿ѡΓ, ßÑαóÑα ¿ ñ¿á½«ú.
-
- äóÑ »α¿¬½áñ¡δÑ »α«úαá¼¼δ, «ßπΘÑßΓó½∩εΘ¿Ñ ñ¿¡á¼¿τÑ߬¿⌐
- «í¼Ñ¡ ñá¡¡δ¼¿, ¡áºδóáεΓß∩ ó«ó½ÑτÑ¡¡δ¼¿ ó ñ¿á½«ú. Åਪ½áñ¡á∩
- »α«úαá¼¼á, ¬«Γ«αá∩ ¿¡¿µ¿¿απÑΓ ñ¿á½«ú, ¿ºóÑßΓ¡á ¬á¬ ¬½¿Ñ¡Γ, á
- »α¿¬½áñ¡á∩ »α«úαá¼¼á, «íß½πª¿óáεΘá∩ ¬½¿Ñ¡Γá - ¬á¬ ßÑαóÑα. ïεíá∩
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ íδΓ∞ ó«ó½ÑτÑ¡á ó ¡Ñ߬«½∞¬« ñ¿á½«ú«ó
- «ñ¡«óαѼѡ¡«, ñÑ⌐ßΓóπ∩ ¬á¬ ¬½¿Ñ¡Γ ó «ñ¡«¼ ß½πτáÑ ¿ ¬á¬ ßÑαóÑα -
- ó ñαπú«¼.
-
- DDE - ñ¿á½«ú ¼Ñªñπ ñóπ¼∩ »α«úαἼἿ, Σá¬Γ¿τÑ߬¿
- «ßπΘÑßΓó½∩ÑΓß∩ ¼Ñªñπ ñóπ¼∩ «¬¡á¼¿, »α¿¡áñ½ÑªáΘ¿¼¿ ¬áªñ«Ñ ßó«Ñ⌐
- »α«úαá¼¼Ñ. Ĭ¡« ¼«ªÑΓ íδΓ∞ «ß¡«ó¡δ¼ «¬¡«¼ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,
- «¬¡«¼, ßó∩ºá¡¡δ¼ ß «Γñѽ∞¡δ¼ ñ«¬π¼Ñ¡Γ«¼ (ó »α«úαá¼¼áσ,
- ¿ß»«½∞ºπεΘ¿σ ¿¡ΓÑαΣÑ⌐ß MDI), ¿½¿ ߬αδΓδ¼ (¡Ñó¿ñ¿¼δ¼) «¬¡«¼,
- ߻ѵ¿á½∞¡« »αÑñ¡áº¡áτÑ¡¡δ¼ ñ½∩ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ DDE.
- ū߬«½∞¬π ñ¿á½«ú ó DDE «»αÑñѽ∩ÑΓß∩ »áα«⌐ ñÑß¬α¿»Γ«α«ó «¬«¡,
- πτáßΓóπεΘ¿σ ó ¡Ñ¼, Γ« ¡¿ «ñ¡« «¬¡« ¡Ñ ¼«ªÑΓ πτáßΓó«óáΓ∞ í«½∞ΦÑ
- τѼ ó «ñ¡«¼ ñ¿á½«úÑ «ñ¡«óαѼѡ¡«. Åਪ½áñ¡á∩ »α«úαá¼¼á "ßÑαóÑα"
-
- Windows 3.0/pg/3#3 = 167 =
-
- ¿½¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á "¬½¿Ñ¡Γ" ñ«½ª¡δ ñ½∩ ¬áªñ«ú« ñ¿á½«úá ß
- «»αÑñѽѡ¡«⌐ »α«úαá¼¼«⌐ ßÑαóÑαá ¿½¿ ¬½¿Ñ¡Γá ºáó«ñ¿Γ∞ «Γñѽ∞¡«Ñ
- «¬¡«.
-
- ä½∩ ¿ß¬½ετÑ¡¿∩ 󫺼«ª¡«ßΓ¿ πτáßΓ¿∩ «¬¡á ó ¡Ñ߬«½∞¬¿σ
- ñ¿á½«úáσ óδ ¼«ªÑΓÑ ñ½∩ ¬áªñ«ú« ñ¿á½«úá ß«ºñáóáΓ∞ «Γñѽ∞¡«Ñ
- ߬αδΓ«Ñ «¬¡«. êσ ¡áº¡áτÑ¡¿Ñ ºá¬½ετáÑΓß∩ Γ«½∞¬« ó «íαáí«Γ¬Ñ
- ß««íΘÑ¡¿⌐ DDE.
- 22.2.2 ¥½Ñ¼Ñ¡Γ, »αÑñ¼ÑΓ, »α¿½«ªÑ¡¿Ñ.
-
-
- ä½∩ «ñ¡«º¡áτ¡«⌐ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ φ½Ñ¼Ñ¡Γ«ó ñá¡¡δσ DDE
- ¿ß»«½∞ºπÑΓ ΓαÑσπα«ó¡Ñóπε ¿σ ¿Ñαáασ¿ε: φ½Ñ¼Ñ¡Γ, »αÑñ¼ÑΓ,
- »α¿½«ªÑ¡¿Ñ.
-
- èáªñδ⌐ ñ¿á½«ú DDE »«½¡«ßΓ∞ε «»αÑñѽ∩ÑΓß∩ »α¿½«ªÑ¡¿Ñ¼ ¿
- »αÑñ¼ÑΓ«¼. é ¡áτá½Ñ ñ¿á½«úá DDE ¬½¿Ñ¡Γ ¿ ßÑαóÑα ß«ú½áΦáεΓß∩ ¡á
- ¿¼∩ »α¿½«ªÑ¡¿∩ ¿ »αÑñ¼ÑΓ. Åα¿½«ªÑ¡¿Ñ - φΓ« «íδτ¡« ¿¼∩
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ßÑαóÑαá. ìá»α¿¼Ñα, ó ñ¿á½«úÑ ß Microsoft
- Excel, óδßΓπ»áεΘ¿¼ ó ¬áτÑßΓóÑ ßÑαóÑαá, »α¿½«ªÑ¡¿Ñ íπñÑΓ ¿¼ÑΓ∞
- ¿¼∩ "Excel".
-
- ÅαÑñ¼ÑΓ - φΓ« ½«ú¿τÑ߬¿⌐ ¬«¡ΓѬßΓ ñá¡¡δσ, ó¡πΓα¿ ¬«Γ«α«ú«
- ¼«úπΓ "«íßπªñáΓ∞ß∩" (¿º¼Ñ¡∩Γ∞ß∩) αẽ¿τ¡δÑ ñá¡¡δÑ ó« óαѼ∩
- ñ¿á½«úá. ä½∩ »α«úαá¼¼, ¬«Γ«αδÑ «»Ñα¿απεΓ ñ«¬π¼Ñ¡ΓἿ,
- σαá¡∩Θ¿¼¿ß∩ ó Σá⌐½áσ, »αÑñ¼ÑΓ - φΓ« «íδτ¡« ¿¼∩ Σá⌐½á; ñ½∩
- ñαπú¿σ »α¿¬½áñ¡δσ »α«úαá¼¼ - φΓ« ¿¼∩, ºáó¿ß∩ΘÑÑ «Γ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ.
-
- ū߬«½∞¬π «¬¡« ¬½¿Ñ¡Γá ¿ «¬¡« ßÑαóÑαá ó¼ÑßΓÑ
- ¿ñÑ¡Γ¿Σ¿µ¿απεΓ ñ¿á½«ú DDE, ¿¼∩ »α¿½«ªÑ¡¿∩ ¿ »αÑñ¼ÑΓ,
- «»αÑñѽ∩εΘ¿Ñ ñ¿á½«ú, «¡¿ ¡Ñ ñ«½ª¡δ ¿º¼Ñ¡∩Γ∞ß∩ ó« óαѼ∩ óßÑú«
- ñ¿á½«úá.
-
- ¥½Ñ¼Ñ¡Γδ ñá¡¡δσ DDE - φΓ« ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ¿¡Σ«α¼áµ¿∩,
- «Γ¡«ß∩Θá∩ß∩ ¬ »αÑñ¼ÑΓπ ñ¿á½«úá, ¬«Γ«α«⌐ «í¼Ñ¡¿óáεΓß∩ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ. ç¡áτÑ¡¿∩ φ½Ñ¼Ñ¡Γ«ó ñá¡¡δσ ¼«úπΓ íδΓ∞ »«ß½á¡δ «Γ
- ßÑαóÑαá ¬½¿Ñ¡Γπ ¿½¿ «Γ ¬½¿Ñ¡Γá ßÑαóÑαπ. ö«α¼áΓ φ½Ñ¼Ñ¡Γá ñá¡¡δσ
- ¼«ªÑΓ íδΓ∞ ½εíδ¼ ¿º Σ«α¼áΓ«ó ñá¡¡δσ, »«ññÑনóáѼδσ ß¿ßΓѼ¡δ¼
- íπΣÑα«¼ (漫Γα¿ΓÑ Γ«¼ 1 æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá).
-
- 22.2.3 Å«ßΓ«∩¡¡á∩ ("ú«α∩τá∩" ¿ "ΓÑ»½á∩") ßó∩º∞ »« ñá¡¡δ¼.
-
- Å«ß½Ñ ¡áτá½á ñ¿á½«úá DDE ¬½¿Ñ¡Γ ¼«ªÑΓ πßΓá¡«ó¿Γ∞ «ñ¡π ¿½¿
- ¡Ñ߬«½∞¬« »«ßΓ«∩¡¡δσ ßó∩ºÑ⌐ ñá¡¡δσ ß ßÑαóÑα«¼. æó∩º∞ ñá¡¡δσ -
- φΓ« ¬«¼¼π¡¿¬áµ¿«¡¡δ⌐ ¼Ñσá¡¿º¼, »α¿ ¬«Γ«α«¼ ßÑαóÑα ß««íΘáÑΓ
- ¬½¿Ñ¡Γπ «í ¿º¼Ñ¡Ñ¡¿¿ «»αÑñѽѡ¡«ú« φ½Ñ¼Ñ¡Γá ñá¡¡δσ. æó∩º∞
- ñá¡¡δσ »«ßΓ«∩¡¡á, »«ß¬«½∞¬π »α«µÑßß πóÑñ«¼½Ñ¡¿∩ »α«ñ«½ªáÑΓß∩ ñ«
- ΓÑσ »«α, »«¬á ¡Ñ íπñÑΓ ºáóÑαΦÑ¡á ßó∩º∞ ñá¡¡δσ ¿½¿ ßá¼ ñ¿á½«ú.
-
- é DDE ¿¼ÑÑΓß∩ ñóá Γ¿»á »«ßΓ«∩¡¡«⌐ ßó∩º¿: "ú«α∩τá∩" ¿
- "ΓÑ»½á∩". Åα¿ ΓÑ»½«⌐ ßó∩º¿ ßÑαóÑα »α¿ ¿º¼Ñ¡Ñ¡¿¿ «íΩѬΓá ñá¡¡δσ
-
- Windows 3.0/pg/3#3 = 168 =
-
- πóÑñ«¼½∩ÑΓ «í φΓ«¼ »α¿¬½áñ¡πε »α«úαá¼¼π ¬½¿Ñ¡Γá, ¡« ßἿ ñá¡¡δÑ
- ¡Ñ »«ßδ½áÑΓ, »«¬á ¬½¿Ñ¡Γ ¡Ñ ºá»α«ß¿Γ ¿σ. Åα¿ ú«α∩τÑ⌐ ßó∩º¿
- ßÑαóÑα »α¿ ¿º¼Ñ¡Ñ¡¿¿ ñá¡¡δσ ßαáºπ ªÑ »«ßδ½áÑΓ ¿σ ¬½¿Ñ¡Γπ.
-
- Åਪ½áñ¡δÑ »α«úαá¼¼δ, »«ññÑনóáεΘ¿Ñ ú«α∩τπε ¿½¿ ΓÑ»½πε
- ßó∩º∞, «íδτ¡« ß«ñÑαªáΓ ó ¼Ñ¡ε Edit ¬«¼á¡ñδ Copy Link ¿ Paste
- Link, ñ½∩ Γ«ú«, τΓ«íδ »«½∞º«óáΓѽ∞ ¼«ú πßΓá¡«ó¿Γ∞ ßó∩º∞ ¼Ñªñπ
- »α¿¬½áñ¡δ¼¿ »α«úαἼἿ. 漫Γα¿ΓÑ αáºñѽ 22.4.3, "ê¡¿µ¿á½¿ºáµ¿∩
- ßó∩º¿ ñá¡¡δσ ß »«¼«Θ∞ε ¬«¼á¡ñδ Paste Link".
- 22.3 æ««íΘÑ¡¿∩ DDE.
-
- ū߬«½∞¬π »α«Γ«¬«½ DDE íếαπÑΓß∩ ¡á »ÑαÑñáτÑ ß««íΘÑ¡¿⌐,
- Γ« «¡ ¡Ñ ¿ß»«½∞ºπÑΓ ß»Ñµ¿á½∞¡δσ Σπ¡¬µ¿⌐ ¿½¿ í¿í½¿«ΓѬ Windows.
- éßÑ Γα᡺ᬵ¿¿ óδ»«½¡∩εΓß∩ ß »«¼«Θ∞ε »ÑαÑñáτ¿ ¼Ñªñπ »α«úαἼἿ
- ¬½¿Ñ¡Γ«¼ ¿ ßÑαóÑα«¼ ¡Ñ¬«Γ«αδσ, «»αÑñѽѡ¡δσ DDE ß««íΘÑ¡¿⌐.
-
- ê¼ÑÑΓß∩ ñÑó∩Γ∞ ß««íΘÑ¡¿⌐ DDE. 濼󫽿τÑ߬¿Ñ ¬«¡ßΓá¡Γδ ñ½∩
- φΓ¿σ ß««íΘÑ¡¿⌐ «»αÑñѽѡδ ó« ó¬½ετáѼ«¼ Σá⌐½Ñ SDK DDE.H, á ¡Ñ ó
- WINDOWS.H. ìѬ«Γ«αδÑ ßΓαπ¬Γπαδ ñá¡¡δσ ñ½∩ αẽ¿τ¡δσ ß««íΘÑ¡¿⌐
- DDE Γá¬ªÑ «»αÑñѽѡδ ó DDE.H.
-
- ì¿ªÑ »α¿óÑñÑ¡« ¬αáΓ¬«Ñ «»¿ßá¡¿Ñ óßÑσ φΓ¿σ ñÑó∩Γ¿
- ß««íΘÑ¡¿⌐. Å«½¡«Ñ «»¿ßá¡¿Ñ ß««íΘÑ¡¿⌐ DDE »α¿óÑñÑ¡« ó« óΓ«α«¼
- Γ«¼Ñ æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá.
-
- æ««íΘÑ¡¿Ñ Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- WM_DDE_ASK Å«ßδ½áÑΓß∩ ó «ΓóÑΓ ¡á »«½πτÑ¡¡«Ñ ß««íΘÑ¡¿Ñ.
- Ä»αÑñѽ∩ÑΓ »«½«ª¿Γѽ∞¡«Ñ ¿½¿ «Γα¿µáΓѽ∞¡«Ñ
- »«ñΓóÑαªñÑ¡¿Ñ ó »«½πτÑ¡¿¿ ß««íΘÑ¡¿∩.
-
- WM_DDE_ADVISE ÆαÑí«óá¡¿Ñ «Γ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ßÑαóÑαá
- »«ññÑ᪬¿ ¼«ñ¿Σ¿¬áµ¿¿ ¿½¿ πóÑñ«¼½Ñ¡¿∩ »α¿
- ¿º¼Ñ¡Ñ¡¿¿ φ½Ñ¼Ñ¡Γá ñá¡¡δσ. ¥Γ« ß««íΘÑ¡¿Ñ
- πßΓá¡áó½¿óáÑΓ »«ßΓ«∩¡¡πε ßó∩º∞ ñá¡¡δσ.
-
- WM_DDE_DATA Å«ßδ½áÑΓ º¡áτÑ¡¿Ñ φ½Ñ¼Ñ¡Γá ñá¡¡δσ »α¿¬½áñ-
- ¡«⌐ »α«úαá¼¼Ñ ¬½¿Ñ¡Γπ.
-
- WM_DDE_EXECUTE Å«ßδ½áÑΓ ßΓ᫬π »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ßÑα-
- óÑαπ, ¬«Γ«αá∩ ñ«½ª¡á óδ»«½¡¿Γ∞ ÑÑ ¬á¬
- »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ¬«¼á¡ñ.
-
- WM_DDE_INITIATE ê¡¿µ¿á½¿º¿απÑΓ ñ¿á½«ú ¼Ñªñπ »α¿¬½áñ¡δ¼¿
- »α«úαἼἿ ßÑαóÑαá ¿ ¬½¿Ñ¡Γá.
-
- WM_DDE_POKE Å«ßδ½áÑΓ º¡áτÑ¡¿Ñ φ½Ñ¼Ñ¡Γá ñá¡¡δσ »α¿¬½áñ-
- ¡«⌐ »α«úαá¼¼Ñ ßÑαóÑαπ.
-
- WM_DDE_REQUEST çá»αáΦ¿óáÑΓ π »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ßÑαóÑαá
- º¡áτÑ¡¿Ñ φ½Ñ¼Ñ¡Γá ñá¡¡δσ.
-
-
- Windows 3.0/pg/3#3 = 169 =
-
- WM_DDE_TERMINATE çáóÑαΦáÑΓ ñ¿á½«ú.
-
- WM_DDE_UNADVISE çáóÑαΦáÑΓ »«ßΓ«∩¡¡πε ßó∩º∞ ñá¡¡δσ.
- ───────────────────────────────────────────────────────────────
- 22.4 Å«Γ«¬ ß««íΘÑ¡¿⌐ DDE.
-
- Æ¿»¿τ¡δ⌐ ñ¿á½«ú ß ¿ß»«½∞º«ó᡿Ѽ DDE ß«ßΓ«¿Γ ¿º ß½ÑñπεΘ¿σ
- ß«íδΓ¿⌐:
-
- 1. Åਪ½áñ¡á∩ »α«úαá¼¼á - ¬½¿Ñ¡Γ ¿¡¿µ¿á½¿º¿απÑΓ ñ¿á½«ú, á
- »α«úαá¼¼á ßÑαóÑα Ñ⌐ «ΓóÑτáÑΓ.
-
- 2. Åਪ½áñ¡δÑ »α«úαá¼¼δ «í¼Ñ¡¿óáεΓß∩ ñá¡¡δ¼¿ ß
- ¿ß»«½∞º«ó᡿Ѽ ½εí«ú« ¿½¿ óßÑσ ¡¿ªÑ»ÑαÑτ¿ß½Ñ¡¡δσ
- ¼ÑΓ«ñ«ó:
-
- - Å« ºá»α«ßπ »α«úαá¼¼δ - ¬½¿Ñ¡Γá ßÑαóÑα »«ßδ½áÑΓ Ñ¼π
- ñá¡¡δÑ.
-
- - Åα«úαá¼¼á - ¬½¿Ñ¡Γ »«ßδ½áÑΓ ßÑαóÑαπ ¡Ñºá»αáΦ¿óáѼδÑ
- ñá¡¡δÑ.
-
- - Åα«úαá¼¼á - ¬½¿Ñ¡Γ ºá»αáΦ¿óáÑΓ »α«úαá¼¼π - ßÑαóÑα,
- τΓ«íδ «¡á »«ßδ½á½á ñá¡¡δÑ »α¿ ¿σ ¿º¼Ñ¡Ñ¡¿¿ (ú«α∩τá∩
- ßó∩º∞).
-
- - Åα«úαá¼¼á - ¬½¿Ñ¡Γ ºá»αáΦ¿óáÑΓ »α«úαá¼¼π - ßÑαóÑα,
- τΓ«íδ «¡á »«ßδ½á½á πóÑñ«¼½Ñ¡¿Ñ »α¿ ¿º¼Ñ¡Ñ¡¿¿ ñá¡¡δσ
- (ΓÑ»½á∩ ßó∩º∞).
-
- - æÑαóÑα óδ»«½¡∩ÑΓ ¬«¼á¡ñδ »« ºá»α«ßπ »α«úαá¼¼δ -
- ¬½¿Ñ¡Γá.
-
- 3. ï¿í« ¬½¿Ñ¡Γ, ½¿í« ßÑαóÑα ºáóÑαΦáÑΓ ñ¿á½«ú.
-
- é ß½ÑñπεΘ¿σ αáºñѽáσ «»¿ßá¡ ¡«α¼á½∞¡δ⌐ »«Γ«¬ ß««íΘÑ¡¿⌐ DDE
- ¼Ñªñ𠬽¿Ñ¡Γ«¼ ¿ ßÑαóÑα«¼.
- 22.4.1 ê¡¿µ¿á½¿ºáµ¿∩ ñ¿á½«úá.
-
- ä½∩ ¿¡¿µ¿á½¿ºáµ¿¿ ñ¿á½«úá DDE ¬½¿Ñ¡Γ »«ßδ½áÑΓ
- Φ¿α«¬«óÑΘáΓѽ∞¡«Ñ ß««íΘÑ¡¿Ñ WM_DDE_INITIATE. Äíδτ¡« ¬½¿Ñ¡Γ
- »«ßδ½áÑΓ Ñú« óßѼ »α¿¬½áñ¡δ¼ »α«úαá¼¼á¼, π¬áºδóá∩ ó ¬áτÑßΓóÑ
- »Ñαó«ú« »áαá¼ÑΓαá -1. Äñ¡á¬«, Ñß½¿ »α«úαá¼¼Ñ - ¬½¿Ñ¡Γπ πªÑ
- ¿ºóÑßΓÑ¡ ñÑß¬α¿»Γ«α «¬¡á »α«úαá¼¼δ ßÑαóÑαá, Γ« «¡á ¼«ªÑΓ
- »«ß½áΓ∞ Ñú« »α∩¼« φΓ«¼π «¬¡π. è½¿Ñ¡Γ »«ñú«Γáó½¿óáÑΓ ñ½∩
- »α¿½«ªÑ¡¿∩ áΓ«¼δ ¿ ¿¼∩ »αÑñ¼ÑΓá ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- GlobalAddAtom. è½¿Ñ¡Γ ¼«ªÑΓ ºáΓαÑí«óáΓ∞ ßó∩º∞ ß« óßѼ¿
- »«ΓÑ¡µ¿á½∞¡δ¼¿ »α«úαἼἿ - ßÑαóÑαἿ »« ½εí«¼π »αÑñ¼ÑΓπ,
- π¬áºáó ¡π½ÑóδÑ áΓ«¼δ (Φáí½«¡) ß««ΓóÑΓßΓóÑ¡¡« ñ½∩ »α¿½«ªÑ¡¿∩ ¿
- »αÑñ¼ÑΓá.
-
-
- Windows 3.0/pg/3#3 = 170 =
-
- æ½ÑñπεΘ¿⌐ »α¿¼Ñα ¿½½εßΓα¿απÑΓ, ¬á¬ ¬½¿Ñ¡Γ ¿¡¿µ¿á½¿º¿απÑΓ
- ñ¿á½«ú, π¬áºδóá∩ »α¿½«ªÑ¡¿Ñ ¿ »αÑñ¼ÑΓ.
-
- (1) atomApplication = GlobaAddlAtom("Server");
- atomTopic = GlobalAddAtom(szTopic);
- (2) SendMessage(-1,
- WM_DDE_INITIATE,
- hWndClientDDE,
- MAKELONG(atomApplication,atomTopic));
- (3) GlobalDeleteAtom(atomApplication);
- GlobalDeleteAtom(atomTopic);
-
- é ñá¡¡«¼ »α¿¼ÑαÑ:
-
- 1) Åਪ½áñ¡á∩ »α«úαá¼¼á - ¬½¿Ñ¡Γ ß«ºñáÑΓ ñóá ú½«íá½∞¡δσ áΓ«¼á,
- ß«ñÑαªáΘ¿σ ß««ΓóÑΓßΓóÑ¡¡« ¿¼∩ ßÑαóÑαá ¿ ¿¼∩ »αÑñ¼ÑΓá.
-
- 2) Åα«úαá¼¼á - ¬½¿Ñ¡Γ »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ WM_DDE_INITIATE ß
- lParam, ß«ñÑαªáΘ¿¼ ¿¼∩ »α¿½«ªÑ¡¿∩ ¿ »αÑñ¼ÑΓ. æ»Ñµ¿á½∞¡δ⌐
- ñÑß¬α¿»Γ«α -1 ºáßΓáó½∩ÑΓ Windows αẫ߽áΓ∞ φΓ« ß««íΘÑ¡¿Ñ
- óßѼ «ßΓá½∞¡δ¼ á¬Γ¿ó¡δ¼ »α¿¬½áñ¡δ¼ »α«úαá¼¼á¼. öπ¡¬µ¿∩
- SendMessage ¡Ñ ó«ºóαáΘáÑΓ π»αáó½Ñ¡¿Ñ »α«úαá¼¼Ñ ñ« ΓÑσ »«α,
- »«¬á »α«úαá¼¼δ, »«½πτ¿óΦ¿Ñ φΓ« ß««íΘÑ¡¿Ñ, ¡Ñ óÑα¡πΓ Ñú«, ó
- ßó«ε «τÑαÑñ∞, Windows. ¥Γ« «º¡áτáÑΓ, τΓ« óßÑ »«ß½á¡¡δÑ ó
- «ΓóÑΓ ßÑαóÑα«¼ ß««íΘÑ¡¿∩ WM_DDE_ASK íπñπΓ «íαáí«Γá¡δ
- ¬½¿Ñ¡Γ«¼ »«ß½Ñ ó«ºóαáΓá ¿º Σπ¡¬µ¿¿ SendMessage.
-
- 3) Å«ß½Ñ ó«ºóαáΓá π»αáó½Ñ¡¿∩ Σπ¡¬µ¿Ñ⌐ SendMessage »α«úαá¼¼á -
- ¬½¿Ñ¡Γ πñá½∩ÑΓ ú½«íá½∞¡δÑ áΓ«¼δ.
-
- Åα«úαá¼¼á ßÑαóÑα «ΓóÑτáÑΓ ó ß««ΓóÑΓßΓó¿¿ ß ½«ú¿¬«⌐,
- »«¬áºá¡«⌐ ¡á α¿ßπ¡¬Ñ 22.1.
-
- É¿ßπ¡«¬ 22.1 ÉÑᬵ¿∩ ¡á ß««íΘÑ¡¿Ñ WM_DDE_INITIATE.
- 1. ô¬áºá¡« Γ« »α¿½«ªÑ¡¿Ñ?
- 2. ¥Γ« φ¬ºÑ¼»½∩α ¡πª¡«ú« »α¿½«ªÑ¡¿∩?
- 3. ì¿τÑú« ¡Ñ ñѽáΓ∞ (ó«ºóαáΓ).
- 4. ÆαÑíπѼδ⌐ »αÑñ¼ÑΓ?
- 5. ū߽áΓ∞ ¬½¿Ñ¡Γπ »«½«ª¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ WM_DDE_ASK ¡á
- ¬áªñδ⌐ »«ññÑনóáѼδ⌐ »α¿½«ªÑ¡¿Ñ¼ »αÑñ¼ÑΓ.
- 6. äá¡¡«Ñ »α¿½«ªÑ¡¿Ñ »«ññÑনóáÑΓ φëà »αÑñ¼ÑΓ?
- 7. ū߽áΓ∞ ¬½¿Ñ¡Γπ »«½«ª¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ WM_DDE_ASK ¡á
- ΓαÑíπѼδ⌐ »αÑñ¼ÑΓ.
-
- ä½∩ »«ñΓóÑαªñÑ¡¿∩ «ñ¡«ú« ¿½¿ ¡Ñ߬«½∞¬¿σ »αÑñ¼ÑΓ«ó ßÑαóÑα
- ñ«½ªÑ¡ ß«ºñáΓ∞ áΓ«¼δ ñ½∩ ¬áªñ«ú« ñ¿½«úá (ΓαÑíπ∩ ñπí½¿α«óá¡¿Ñ
- áΓ«¼á ß ¿¼Ñ¡Ñ¼ »α¿½«ªÑ¡¿∩, Ñß½¿ ¿¼ÑεΓß∩ ¡Ñ߬«½∞¬« »αÑñ¼ÑΓ«ó), ¿
- ñ½∩ ¬áªñ«ú« ñ¿á½«úá »«ß½áΓ∞ ß««íΘÑ¡¿Ñ WM_DDE_ASK, ¬á¬ »«¬áºá¡«
- ¡¿ªÑ:
-
- atomApplication = GlobaAddlAtom("Server");
- atomTopic = GlobalAddAtom(szTopic);
- if(!SendMessage(-1,
-
- Windows 3.0/pg/3#3 = 171 =
-
- WM_DDE_ASK,
- hWndServerDDE,
- MAKELONG(atomApplication,atomTopic))
- {
- GlobalDeleteAtom(atomApplication);
- GlobalDeleteAtom(atomTopic);
- }
-
- è«úñá ßÑαóÑα «ΓóÑτáÑΓ ß »«¼«Θ∞ε ß««íΘÑ¡¿∩ WM_DDE_ASK,
- »α«úαá¼¼á - ¬½¿Ñ¡Γ ñ«½ª¡á ß«σαá¡¿Γ∞ ñÑß¬α¿»Γ«α «¬¡á ßÑαóÑαá.
- Åα«úαá¼¼á - ¬½¿Ñ¡Γ »«½πτáÑΓ φëà ñÑß¬α¿»Γ«α ó »áαá¼ÑΓαÑ wParam
- ß««íΘÑ¡¿∩ WM_DDE_ASK. Åα«úαá¼¼á - ¬½¿Ñ¡Γ »«ß½Ñ φΓ«ú« »«ßδ½áÑΓ
- óßÑ ß½ÑñπεΘ¿Ñ ß««íΘÑ¡¿∩ φΓ«¼π «¬¡π »α«úαá¼¼δ - ßÑαóÑαá.
-
- àß½¿ »α«úαá¼¼á - ¬½¿Ñ¡Γ ¿ß»«½∞ºπÑΓ ñ½∩ «»αÑñѽѡ¿∩
- »α¿½«ªÑ¡¿∩ ¿½¿ »αÑñ¼ÑΓá ¡π½Ñó«⌐ áΓ«¼, Γ« ¡Ñ«íσ«ñ¿¼« »«¼¡¿Γ∞,
- τΓ« «¡á »«½πτ¿Γ «ΓóÑΓδ «Γ í«½∞ΦÑ τѼ «ñ¡«⌐ »α«úαá¼¼δ ßÑαóÑαá.
- èᬠ߬áºá¡« ó αáºñÑ½Ñ 22.2.1, "轿ѡΓ, ßÑαóÑα ¿ ñ¿á½«ú",
- ß«ºñá¡¿Ñ ñ½∩ ¬áªñ«ú« ñ¿á½«úá π¡¿¬á½∞¡δσ ߬αδΓδσ «¬«¡ ¿ß¬½ετáÑΓ
- 󫺼«ª¡«ßΓ∞ πτáßΓ¿∩ «ñ¡«ú« «¬¡á í«½∞ΦÑ τѼ ó «ñ¡«¼ ñ¿á½«úÑ.
- Äñ¡á¬«, τΓ«íδ ß½Ññ«óáΓ∞ φΓ«¼π, »α¿¬½áñ¡á∩ »α«úαá¼¼á ¬½¿Ñ¡Γ,
- ñ«½ª¡á ºáóÑαΦ¿Γ∞ ñ¿á½«ú¿ ß« óßѼ¿, ¬α«¼Ñ «ñ¡«⌐, »α«úαἼἿ
- ßÑαóÑαἿ, «Γ¬½¿¬¡πóΦ¿¼¿ß∩ ¡á »«ß½á¡¡«Ñ ¬½¿Ñ¡Γ«¼ ß««íΘÑ¡¿⌐
- WM_DDE_INITIATE.
- 22.4.2 ÅÑαÑñáτá «ñ¡«ú« φ½Ñ¼Ñ¡Γá.
-
- Å«ß½Ñ πßΓá¡«ó½Ñ¡¿∩ ñ¿á½«úá ¬½¿Ñ¡Γ ¼«ªÑΓ ß »«¼«Θ∞ε
- ß««íΘÑ¡¿∩ WM_DDE_REQUEST »«½πτ¿Γ∞ «Γ ßÑαóÑαá φ½Ñ¼Ñ¡Γ ñá¡¡δσ ¿½¿
- ß««íΘÑ¡¿∩ WM_DDE_POKE »ÑαÑñáΓ∞ ¡á ßÑαóÑα φ½Ñ¼Ñ¡Γ ñá¡¡δσ.
-
- Å«½πτÑ¡¿Ñ φ½Ñ¼Ñ¡Γá ñá¡¡δσ «Γ ßÑαóÑαá.
-
- ä½∩ »«½πτÑ¡¿∩ φ½Ñ¼Ñ¡Γá ñá¡¡δσ «Γ ßÑαóÑαá »α«úαá¼¼á -
- ¬½¿Ñ¡Γ »«ßδ½áÑΓ ßÑαóÑαπ ß««íΘÑ¡¿Ñ WM_DDE_REQUEST ó ß½ÑñπεΘÑ⌐
- Σ«α¼Ñ:
-
- atomItem = GlobalAddAtom(szItemName);
- if(!PostMessage(hWndServerDDE,
- WM_DDE_REQUEST,
- hWndClientDDE,
- MAKELONG(CF_TEXT,atomItem));
- GlobalDeleteAtom(atomItem);
-
- é ñá¡¡«¼ »α¿¼ÑαÑ ¬½¿Ñ¡Γ ó ¬áτÑßΓóÑ Σ«α¼áΓá ΓαÑíπѼ«ú«
- φ½Ñ¼Ñ¡Γá «»αÑñѽ∩ÑΓ Σ«α¼áΓ ß¿ßΓѼ¡«ú« íπΣÑαá CF_TEXT.
-
- Å«½πτáΓѽ∞ ß««íΘÑ¡¿∩ WM_DDE_REQUEST (ßÑαóÑα) «íδτ¡«
- «ΓóÑτáÑΓ ºá πñá½Ñ¡¿Ñ áΓ«¼á φ½Ñ¼Ñ¡Γá, «ñ¡á¬«, Ñß½¿ ó맮ó Σπ¡¬µ¿¿
- PostMessage ºáóÑαΦ¿Γß∩ »« «Φ¿í¬Ñ, Γ« áΓ«¼ ñ«½ªÑ¡ πñ὿Γ∞
- ¬½¿Ñ¡Γ.
-
- àß½¿ π ßÑαóÑαá ¿¼ÑÑΓß∩ ñ«ßΓπ» ¬ ΓαÑíπѼ«¼π φ½Ñ¼Ñ¡Γπ ¿ «¡
-
- Windows 3.0/pg/3#3 = 172 =
-
- ¼«ªÑΓ »αÑ«íαẫóáΓ∞ Ñú« ¬ ΓαÑíπѼ«¼π Σ«α¼áΓπ, Γ« ßÑαóÑα
- ¬«»¿απÑΓ º¡áτÑ¡¿Ñ φ½Ñ¼Ñ¡Γá ¬á¬ «íΩÑ¬Γ ú½«íá½∞¡«⌐ αáºñѽ∩Ѽ«⌐
- »á¼∩Γ¿ ¿ »«ßδ½áÑΓ ¬½¿Ñ¡Γπ ß««íΘÑ¡¿Ñ WM_DDE_DATA ß½ÑñπεΘ¿¼
- «íαẫ¼:
-
- /* éδñѽ¿Γ∞ í½«¬ αẼÑα«¼ ó ºáú«½«ó«¬ ñá¡¡δσ DDE »½εß */
- /* ñá¡¡δÑ: ßΓ᫬á, <CR><LF><NULL>. çáóÑαΦáεΘ¿⌐ ¡π½Ñó«⌐ */
- /* íá⌐Γ ßτ¿ΓáÑΓß∩ ó DDEData.Value[1] */
-
- (1) if(!(hData = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE,
- (LONG)sizeof(DDEDATA)+strlen(szItemValue)+2)))
- return;
-
- (2) if(!(lpData = (DDEDATA FAR *)GlobalLock(hData)))
- {
- GlobalFree(hData);
- return;
- }
- .
- .
- .
- (3) lpData -> cfFormat = CF_TEXT;
- (4) lstrcopy((LPSTR)lpData->Value,(LPSTR)szItemValue);
- /* ¬áªñá∩ ßΓ᫬á ñá¡¡δσ ºáóÑαΦáÑΓß∩ <CR><LF> */
- lstrcat((LPSTR)lpData->Value,(LPSTR)"\r\n");
- (5) GlobalUnlock(hData);
- (6) atomItem = GlobalAddAtom(szItemName);
- (7) if(!PostMessage(hWndClientDDE,
- WM_DDE_DATA,
- hWndServerDDE,
- MAKELONG(hData,atomItem));
- {
- GlobalFree(hData);
- GlobalDeleteAtom(atomItem);
- }
-
- é ñá¡¡«¼ »α¿¼ÑαÑ:
-
- (1) Åα«úαá¼¼á - ßÑαóÑα óδñѽ∩ÑΓ í½«¬ »á¼∩Γ¿ ñ½∩ σαá¡Ñ¡¿∩
- φ½Ñ¼Ñ¡Γá ñá¡¡δσ. ü½«¬ »á¼∩Γ¿ óδñѽ∩ÑΓß∩ ß ¬½ετѼ
- GMEM_DDESHARE, ¬«Γ«αδ⌐ »«ºó«½∩ÑΓ ßÑαóÑαπ ¿ ¬½¿Ñ¡Γπ
- αáºñѽ∩Γ∞ «ñ¿¡ í½«¬ »á¼∩Γ¿.
-
- (2) çáΓѼ, »α«úαá¼¼á - ßÑαóÑα ñ½∩ »«½πτÑ¡¿∩ áñαÑßá í½«¬¿απÑΓ
- í½«¬ »á¼∩Γ¿. ü½«¬ ñá¡¡δσ ¿¡¿µ¿á½¿º¿απÑΓß∩ ßΓαπ¬Γπα«⌐
- ñá¡¡δσ DDEDATA.
-
- (3) Åα«úαá¼¼á - ßÑαóÑα πßΓá¡áó½¿óáÑΓ ó »«½Ñ cfFormat í½«¬á
- ñá¡¡δσ º¡áτÑ¡¿Ñ CF_TEXT ñ½∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ ¿ß»«½∞ºπѼ«ú«
- Σ«α¼áΓá.
-
- (4) è½¿Ñ¡Γ ¬«»¿απÑΓ º¡áτÑ¡¿Ñ ΓαÑíπѼδσ ñá¡¡δσ ó »«½Ñ Value
- ßΓαπ¬Γπαδ DDEDATA.
-
- Windows 3.0/pg/3#3 = 173 =
-
-
- (5) çñÑß∞ ßÑαóÑα ºá»«½¡∩ÑΓ í½«¬ ñá¡¡δσ ¿ αáºí½«¬¿απÑΓ í½«¬
- »á¼∩Γ¿.
-
- (6) çáΓѼ ßÑαóÑα ß«ºñáÑΓ ú½«íá½∞¡δ⌐ áΓ«¼, ß«ñÑαªáΘ¿⌐ ¿¼∩
- φ½Ñ¼Ñ¡Γá ñá¡¡δσ.
-
- (7) é ¬«¡µÑ, ßÑαóÑα ß »«¼«Θ∞ε Σπ¡¬µ¿¿ PostMessage »«ßδ½áÑΓ
- ß««íΘÑ¡¿Ñ WM_DDE_DATA. é »áαá¼ÑΓαÑ lParam ß««íΘÑ¡¿∩
- »ÑαÑñáÑΓß∩ ñÑß¬α¿»Γ«α í½«¬á ñá¡¡δσ ¿ áΓ«¼, ß«ñÑαªáΘ¿⌐ ¿¼∩
- φ½Ñ¼Ñ¡Γá ñá¡¡δσ.
-
- àß½¿ ßÑαóÑα ¡Ñ ¼«ªÑΓ πñ«ó½ÑΓó«α¿Γ∞ ºá»α«ß, «¡ »«ßδ½áÑΓ
- ¬½¿Ñ¡Γπ «Γα¿µáΓѽ∞¡«Ñ ß««íΘÑ¡¿Ñ WM_DDE_ASK:
-
- /* «Γα¿µáΓѽ∞¡«Ñ ß««íΘÑ¡¿Ñ */
- PostMessage(hWndClientDDE,
- WM_DDE_ASK,
- hWndServerDDE,
- MAKELONG(0,atomItem));
-
- Åα¿ »«½πτÑ¡¿¿ ß««íΘÑ¡¿∩ WM_DDE_DATA, »α«úαá¼¼á - ¬½¿Ñ¡Γ
- «íαáíáΓδóáÑΓ Ñú« ß««ΓóÑΓßΓóπεΘ¿¼ «íαẫ¼. çáΓѼ, Ñß½¿ ó
- π¬áºá¡¡«¼ ß««íΘÑ¡¿¿ WM_DDE_DATA í¿Γ fAskReq πßΓá¡«ó½Ñ¡ ó 1,
- ¬½¿Ñ¡Γ ñ«½ªÑ¡ »«ß½áΓ∞ »«½«ª¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ WM_DDE_ASK, ¬á¬
- »«¬áºá¡« ¡¿ªÑ:
-
- hData = LOWORD(lPAram); /* ñ½∩ ß««íΘÑ¡¿∩ WM_DDE_DATA */
- atomItem = HIWORD(lParam);
- (1) if(!(lpDDEData = (DDEDATA FAR *)GlobalLock(hData)) ||
- (lpDDEData -> cfFormat != CF_TEXT))
- {
-
- /* «Γα¿µáΓѽ∞¡«Ñ ß««íΘÑ¡¿Ñ */
- PostMessage(hWndServerDDE,
- WM_DDE_ASK,
- hWndClientDDE,
- MAKELONG(0,atomItem));
- }
-
- /* ߬«»¿α«óáΓ∞ ñá¡¡δÑ ¿º lpDDEData */
-
- (2) if(lpDDEData -> fAskReq)
- {
- /* »«½«ª¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ */
- PostMessage(hWndServerDDE,
- WM_DDE_ASK,
- hWndClientDDE,
- MAKELONG(0x8000,atomItem));
- }
- (3) bRelease = lpDDEData->fRelease;
- GlobalUnlock(hData);
- if(bRelease)
-
- Windows 3.0/pg/3#3 = 174 =
-
- GlobalFree(hData);
-
- é ñá¡¡«¼ »α¿¼ÑαÑ:
-
- 1) è½¿Ñ¡Γ »α«óÑα∩ÑΓ Σ«α¼áΓ ñá¡¡δσ. àß½¿ φΓ« CF_TEXT (¿½¿ Ñß½¿
- ¬½¿Ñ¡Γ ¡Ñ ß¼«ú óδñѽ¿Γ∞ »á¼∩Γ∞ ñ½∩ ñá¡¡δσ), ¬½¿Ñ¡Γ
- »«ßδ½áÑΓ «Γα¿µáΓѽ∞¡«Ñ ß««íΘÑ¡¿Ñ WM_DDE_ASK ñ½∩ ¿¡ñ¿¬áµ¿¿
- Γ«ú«, τΓ« ¡Ñ ¼«ªÑΓ «íαáí«ΓáΓ∞ ñá¡¡δÑ.
-
- 2) àß½¿ ¬½¿Ñ¡Γ ¼«ªÑΓ «íαáí«ΓáΓ∞ ñá¡¡δÑ, «¡ »α«óÑα∩ÑΓ Σ½áú
- fAskReq ßΓαπ¬Γπαδ ñá¡¡δσ DDEDATA, τΓ«íδ «»αÑñѽ¿Γ∞, ¡πª¡«
- ½¿ ß««íΘáΓ∞ ßÑαóÑαπ, τΓ« ñá¡¡δÑ »«½πτÑ¡δ ¿ «íαáí«Γá¡δ
- πß»ÑΦ¡«. àß½¿ ñá, Γ« ¬½¿Ñ¡Γ »«ßδ½áÑΓ »«½«ª¿Γѽ∞¡«Ñ
- ß««íΘÑ¡¿Ñ WM_DDE_ASK.
-
- 3) è½¿Ñ¡Γ ß«σαá¡∩ÑΓ Σ½áú fRelease »ÑαÑñ αáºí½«¬¿α«ó᡿Ѽ
- í½«¬á ñá¡¡δσ, »«ß¬«½∞¬π »α¿ αáºí½«¬¿α«óá¡¿¿ π¬áºáΓѽ∞
- ßΓá¡«ó¿Γß∩ ¡Ñ¬«ααÑ¬Γ¡δ¼. çáΓѼ «¡ »α«óÑα∩ÑΓ º¡áτÑ¡¿Ñ
- Σ½áúá, τΓ«íδ «»αÑñѽ¿Γ∞ ¡πª¡«, ½¿ «τ¿ΘáΓ∞ í½«¬ ú½«íá½∞¡«⌐
- »á¼∩Γ¿, ¿ ñÑ⌐ßΓóπÑΓ ß««ΓóÑΓßΓóÑ¡¡«.
-
- Åα¿ »«½πτÑ¡¿¿ «Γα¿µáΓѽ∞¡«ú« «ΓóÑΓá WM_DDE_ASK ¬½¿Ñ¡Γ
- ¼«ªÑΓ ß¡«óá ºá»α«ß¿Γ∞ ëà ªÑ ßá¼δ⌐ φ½Ñ¼Ñ¡Γ ñá¡¡δσ, π¬áºáó
- ñαπú«⌐ Σ«α¼áΓ ß¿ßΓѼ¡«ú« íπΣÑαá. Äíδτ¡« ó ¡áτá½Ñ ºá»αáΦ¿óáÑΓß∩
- ¡á¿í«½ÑÑ ß½«ª¡δ⌐ Σ«α¼áΓ, »«ññÑনóáѼδ⌐ ¬½¿Ñ¡Γ«¼, ¿ ºáΓѼ
- ºá»α«ßδ »«óΓ«α∩εΓß∩ ß π¼Ñ¡∞ΦÑ¡¿Ñ¼ ß½«ª¡«ßΓ¿ Σ«α¼áΓ«ó, »«¬á ¡Ñ
- íπñÑΓ ¡á⌐ñÑ¡ Σ«α¼áΓ, »«ññÑনóáѼδ⌐ ßÑαóÑα«¼.
-
- àß½¿ ßÑαóÑα »«ññÑনóáÑΓ φ½Ñ¼Ñ¡Γá Formats »αÑñ¼ÑΓá System,
- ¬½¿Ñ¡Γ ¼«ªÑΓ ßαáºπ «»αÑñѽ¿Γ∞, ¬á¬¿Ñ Σ«α¼áΓδ »«ññÑনóáÑΓ
- ßÑαóÑα, ó¼ÑßΓ« Γ«ú«, τΓ«íδ «»αÑñѽ∩Γ∞ φΓ« »«ß½Ññ«óáΓѽ∞¡«
- ºá»αáΦ¿óá∩ ßÑαóÑα. ê¡Σ«α¼áµ¿ε « »αÑñ¼ÑΓÑ System óδ ¡á⌐ñÑΓÑ ó«
- óΓ«α«¼ Γ«¼Ñ æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá.
-
- Å«ß佬á φ½Ñ¼Ñ¡Γá ¡á ßÑαóÑα.
-
- è½¿Ñ¡Γ ¼«ªÑΓ »«ß½áΓ∞ ¡á ßÑαóÑα º¡áτÑ¡¿Ñ φ½Ñ¼Ñ¡Γá ñá¡¡δσ ß
- »«¼«Θ∞ε ß««íΘÑ¡¿∩ WM_DDE_POKE. è½¿Ñ¡Γ «»αÑñѽ∩ÑΓ ¿ »«ßδ½áÑΓ
- φ½Ñ¼Ñ¡Γ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- if(!(hPokeData = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE,
- (LONG)sizeof(DDEPOKE)+strlen(szValue)+2)))
- return;
-
- if(!(lpPokeData = (DDEPOKE FAR *)GlobalLock(hPokeData)))
- {
- GlobalFree(hPokeData);
- return;
- }
- lpPokeData -> fRelease = TRUE;
- lpPokeData -> cfFormat = CF_TEXT;
- lstrcopy((LPSTR)lpPokeData->Value,(LPSTR)szValue);
- /* ¬áªñá∩ ßΓ᫬á ñá¡¡δσ ºáóÑαΦáÑΓß∩ <CR><LF> */
-
- Windows 3.0/pg/3#3 = 175 =
-
- lstrcat((LPSTR)lpPokeData->Value,(LPSTR)"\r\n");
- GlobalUnlock(hPokeData);
- atomItem = GlobalAddAtom((LPSTR)szItem);
- .
- .
- .
- if(!PostMessage(hWndServerDDE,
- WM_DDE_POKE,
- hWndClientDDE,
- MAKELONG(hPokeData,atomItem));
- {
- GlobalFree(hPokeData);
- GlobalDeleteAtom(atomItem);
- }
-
- ÄΓ¼ÑΓ¿¼, τΓ« »ÑαÑñáτá φ½Ñ¼Ñ¡Γá ¡á ßÑαóÑα ß ¿ß»«½∞º«ó᡿Ѽ
- ß««íΘÑ¡¿∩ WM_DDE_POKE á¡á½«ú¿τ¡á »ÑαÑñáτÑ φ½Ñ¼Ñ¡Γá ñá¡¡δσ
- ¬½¿Ñ¡Γπ ß »«¼«Θ∞ε ß««íΘÑ¡¿∩ WM_DDE_DATA, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«,
- τΓ« ó «ñ¡«¼ ß½πτáÑ »ÑαÑñáτá «ßπΘÑßΓó½∩ÑΓß∩ «Γ ¬½¿Ñ¡Γá ßÑαóÑαπ,
- á ó ñαπú«¼ «Γ ßÑαóÑαá ¬½¿Ñ¡Γπ.
-
- àß½¿ ßÑαóÑα ß»«ß«íÑ¡ ó«ß»α¿¡¿¼áΓ∞ Σ«α¼áΓ º¡áτÑ¡¿∩ φ½Ñ¼Ñ¡Γá
- ñá¡¡δσ, ¬«Γ«αδ⌐ »ÑαÑñá¡ Ñ¼π ¬½¿Ñ¡Γ«¼, Γ« ßÑαóÑα Ñú«
- ß««ΓóÑΓßΓóπεΘ¿¼ «íαẫ¼ «íαáíáΓδóáÑΓ ¿ »«ßδ½áÑΓ »«½«ª¿Γѽ∞¡«Ñ
- ß««íΘÑ¡¿Ñ WM_DDE_ASK. àß½¿ ßÑαóÑα ¡Ñ ß»«ß«íÑ¡ «íαáí«ΓáΓ∞
- º¡áτÑ¡¿Ñ φ½Ñ¼Ñ¡Γá ñá¡¡δσ ¿º-ºá Σ«α¼áΓá ¿½¿ »« ¬á¬«⌐-½¿í« ñαπú«⌐
- »α¿τ¿¡Ñ, Γ« ßÑαóÑα »«ßδ½áÑΓ «Γα¿µáΓѽ∞¡«Ñ ß««íΘÑ¡¿Ñ WM_DDE_ASK.
-
- hPokeData = LOWORD(lPAram);
- atomItem = HIWORD(lParam);
- (1) GlobalGetAtomName(atomItem,szItemName,ITEM_NAME_MAX_SIZE);
- (2) if(!(lpPokeData = (DDEPOKE FAR *)GlobalLock(hPokeData)) ||
- (lpPokeData -> cfFormat != CF_TEXT ||
- !IfItemSypportedByServer(szItemName)))
- {
-
- /* «Γα¿µáΓѽ∞¡«Ñ ß««íΘÑ¡¿Ñ */
- PostMessage(hWndClientDDE,
- WM_DDE_ASK,
- hWndServerDDE,
- MAKELONG(0,atomItem));
- }
-
- lstrcpy(szItemValue,lpPokeData->Value); /* ¬«»¿α«óá¡¿Ñ */
- bRelease = lpPokeData->fRelease;
- GlobalUnlock(hPokeData);
- if(bRelease)
- {
- GlobalFree(hPokeData);
- GlobalDeleteAtom(atomItem);
- }
- /* »«½«ª¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ */
- PostMessage(hWndClientDDE,
-
- Windows 3.0/pg/3#3 = 176 =
-
- WM_DDE_ASK,
- hWndServerDDE,
- MAKELONG(0x8000,atomItem));
- }
-
- é ñá¡¡«¼ »α¿¼ÑαÑ:
-
- 1) æÑαóÑα óδºδóáÑΓ Σπ¡¬µ¿ε GlobalGetAtomName ñ½∩ »«½πτÑ¡¿∩
- ¿¼Ñ¡¿ »«ß½á¡¡«ú« ¬½¿Ñ¡Γ«¼ φ½Ñ¼Ñ¡Γá ñá¡¡δσ.
-
- 2) çáΓѼ ßÑαóÑα «»αÑñѽ∩ÑΓ, »«ññÑনóáÑΓ ½¿ «¡ φΓ¿ ñá¡¡δÑ, ¿
- Σ«α¼áΓ, ó ¬«Γ«α«¼ «¡¿ »«ß½á¡δ (CF_TEXT). àß½¿ ¡ÑΓ, ¿½¿
- Ñß½¿ ßÑαóÑα ¡Ñ ¼«ªÑΓ ºáí½«¬¿α«óáΓ∞ ñá¡¡δÑ, «¡ »«ßδ½áÑΓ
- «Γα¿µáΓѽ∞¡«Ñ ß««íΘÑ¡¿Ñ »α«úαá¼¼Ñ - ¬½¿Ñ¡Γπ.
- 22.4.3 ôßΓá¡«ó½Ñ¡¿Ñ »«ßΓ«∩¡¡«⌐ ßó∩º¿ »« ñá¡¡δ¼.
-
- Åα«úαá¼¼á ¬½¿Ñ¡Γ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ DDE ñ½∩ πßΓá¡«ó½Ñ¡¿∩
- ßó∩º¿ ß φ½Ñ¼Ñ¡Γ«¼ ñá¡¡δσ »α«úαá¼¼δ - ßÑαóÑαá. ū߽Ñ
- πßΓá¡«ó½Ñ¡¿∩ Γᬫ⌐ ßó∩º¿ ßÑαóÑα »Ñα¿«ñ¿τÑ߬¿, («íδτ¡« »α¿
- ¿º¼Ñ¡Ñ¡¿¿ φ½Ñ¼Ñ¡Γá ñá¡¡δσ) »«ßδ½áÑΓ ¬½¿Ñ¡Γπ ßó∩ºá¡¡δ⌐ φ½Ñ¼Ñ¡Γ.
- Æá¬¿¼ «íαẫ¼, ¼Ñªñπ ñóπ¼∩ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ
- πßΓá¡áó½¿óáÑΓß∩ »«Γ«¬ ñá¡¡δσ ¿ «ßΓáÑΓß∩ ñ« ΓÑσ »«α, »«¬á ¡Ñ
- íπñÑΓ ∩ó¡« »αÑαóá¡.
-
- ê¡¿µ¿á½¿ºáµ¿∩ ßó∩º¿ »« ñá¡¡δ¼.
-
- è½¿Ñ¡Γ ¿¡¿µ¿á½¿º¿απÑΓ ßó∩º∞ »« ñá¡¡δ¼, »«ßδ½á∩ ß««íΘÑ¡¿Ñ
- WM_DDE_ADVISE:
-
- if(!hOptions = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE,
- sizeof(DDEADVISE))))
- return;
- if(!lpOptions = (DDEADVISE FAR *)GlobalLock(hOptions)))
- {
- GlobalFree(hOptions);
- return;
- }
- lpOptions -> cfFormat = CF_TEXT;
- lpOptions -> fAskReq = TRUE;
- (1) lpOptions -> fDefurUpd = FALSE;
- GlobalUnlock(hOptions);
- atomItem = GlobalAddAtom(szItemName);
- if(!PostMessage(hWndServerDDE,
- WM_DDE_ADVISE,
- hWndClientDDE,
- MAKELONG(hOptions,atomItem));
- {
- GlobalFree(hOptions);
- GlobalDeleteAtom(atomItem);
- }
-
- é ñá¡¡«¼ »α¿¼ÑαÑ:
-
- Windows 3.0/pg/3#3 = 177 =
-
-
- 1) Åα«úαá¼¼á - ¬½¿Ñ¡Γ πßΓá¡áó½¿óáÑΓ Σ½áú fDeferUpd ß««íΘÑ¡¿∩
- WM_DDE_ADVISE ó FALSE. ¥Γ¿¼ óδ ¿¡Σα«α¼¿απÑΓÑ »α«úαá¼¼π -
- ßÑαóÑα, τΓ« «¡á ñ«½ª¡á »α¿ ¿º¼Ñ¡Ñ¡¿¿ ñá¡¡δσ »«ßδ½áΓ∞ ¡Ñ
- πóÑñ«¼½Ñ¡¿Ñ. á ßἿ ñá¡¡δÑ.
-
- àß½¿ ßÑαóÑα ¿¼ÑÑΓ ñ«ßΓπ» ¬ ΓαÑíπѼ«¼π φ½Ñ¼Ñ¡Γπ ¿
- »«ññÑনóáÑΓ ¡Ñ«íσ«ñ¿¼δ⌐ Σ«α¼áΓ, ßÑαóÑα «Γ¼ÑτáÑΓ ¡«óπε ßó∩º∞
- (ºá»«¼¿¡á∩ Σ½áú¿, π¬áºá¡¡δÑ ó hOptions) ¿ »«ßδ½áÑΓ ¬½¿Ñ¡Γπ
- »«½«ª¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ WM_DDE_ASK. æ φΓ«ú« ¼«¼Ñ¡Γá ¿ ñ« ΓÑσ
- »«α, »«¬á ¬½¿Ñ¡Γ ¡Ñ »«Φ½ÑΓ ß««ΓóÑΓßΓóπεΘÑÑ ß««íΘÑ¡¿Ñ
- WM_DDE_UNADVISE, ßÑαóÑα »α¿ ½εí«¼ ¿º¼Ñ¡Ñ¡¿¿ ñá¡¡«ú« φ½Ñ¼Ñ¡Γá
- íπñÑΓ »«ßδ½áΓ∞ ¬½¿Ñ¡Γπ ¿º¼Ñ¡Ñ¡¡δÑ ñá¡¡δÑ.
-
- àß½¿ ßÑαóÑα ¡Ñ ¼«ªÑΓ πñ«ó½ÑΓó«α¿Γ∞ ºá»α«ß WM_DDE_ADVISE,
- «¡ »«ßδ½áÑΓ «Γα¿µáΓѽ∞¡«Ñ ß««íΘÑ¡¿Ñ WM_DDE_ASK.
-
- void DoPasteLink(hwndClientDDE;)
- HWND hwndClientDDE;
-
- {
-
- HANDLE hData;
- LPSTR lpData;
- HWND hwndServerDDE;
- char szApplication[APP_MAX_SIZE+1];
- char szTopic[TOPIC_MAX_SIZE+1];
- char szItem[ITEM_MAX_SIZE+1];
- int nBufLen;
-
- (1) if (OpenClipboard(hwndClientDDE))
- {
- if (!(hData = GetClipboardData(cfLink)) ||
- !(lpData = GlobalLock(hData)))
- {
- CloseClipboard();
- return;
- }
-
-
- /* Åα«óÑα¿Γ∞ ñá¡¡δÑ ó ß¿ßΓѼ¡«¼ íπΣÑαÑ */
- (2) if ((nBufLen = lstrlen(lpData)) >= APP_MAX_SIZE)
- {
- CloseClipboard();
- GlobalUnlock(hData);
- return;
- }
- lstrcpy(szApplication, lpData);
- lpData += (nBufLen+1); /* »ÑαÑ»αδú¡πΓ∞ τÑαѺ 0 */
- if ((nBufLen = lstrlen(lpData)) >= TOPIC_MAX_SIZE)
- {
- CloseClipboard();
- GlobalUnlock(hData);
-
- Windows 3.0/pg/3#3 = 178 =
-
- return;
- }
- lstrcpy(szTopic, lpData);
- lpData += (nBufLen+1); /* »ÑαÑ»αδú¡πΓ∞ τÑαѺ 0 */
- if ((nBufLen = lstrlen(lpData)) >= ITEM_MAX_SIZE)
- {
- CloseClipboard();
- GlobalUnlock(hData);
- return;
- }
- lstrcpy(szItem, lpData);
-
- GlobalUnlock(hData);
- CloseClipboard();
-
- (3) if (hwndClientDDE =
- FindConvGivenAppTopic(szApplication, szTopic))
- { /* ñ¿á½«ú »α¿½«ªÑ¡¿Ñ/»αÑñ¼ÑΓ πªÑ ¡áτáΓ */
- if (DoesAdviseAlreadyExist(hwndClientDDE, szItem))
- MessageBox(hwndMain,"Advisory already established",
- "Client", MB_ICONEXCLAMATION | MB_OK);
- else
- hwndServerDDE = GetHwndServerDDE(hwndClientDDE);
- SendAdvise(hwndClientDDE, hwndServerDDE, szItem);
- }
- (4) else
- { /* ¡Ñ«íσ«ñ¿¼« ¿¡¿µ¿á½¿º¿α«óáΓ∞ ¡«óδ⌐ ñ¿á½«ú */
- SendInitiate(szApplication, szTopic);
- if (hwndClientDDE =
- FindConvGivenAppTopic(szApplication, szTopic))
- {
- hwndServerDDE = GetHwndServerDDE(hwndClientDDE);
- SendAdvise(hwndClientDDE, hwndServerDDE, szItem);
- }
- }
- }
-
- return;
- }
-
- é ñá¡¡«¼ »α¿¼ÑαÑ:
-
- 1) Åα«úαá¼¼á - ¬½¿Ñ¡Γ «Γ¬αδóáÑΓ ß¿ßΓѼ¡δ⌐ íπΣÑα ¿ »α«óÑα∩ÑΓ,
- ß«ñÑαª¿Γ ½¿ «¡ ñá¡¡δÑ ó Γ«¼ Σ«α¼áΓÑ ßó∩º¿ (cfLink),
- ¬«Γ«αδ⌐ íδ½ »αÑñóáα¿Γѽ∞¡« «»αÑñѽѡ. àß½¿ «¡ ¡Ñ
- »«ññÑনóáÑΓ φëà ӫα¼áΓ ¿½¿ Ñß½¿ ¡Ñ ¼«ªÑΓ ºáí½«¬¿α«óáΓ∞
- ñá¡¡δÑ ó ß¿ßΓѼ¡«¼ íπΣÑαÑ, Γ« «¡ ó«ºóαáΘáÑΓ π»αáó½Ñ¡¿Ñ.
-
- 2) Å«ß½Ñ »«½πτÑ¡¿∩ π¬áºáΓѽ∩ ¡á ñá¡¡δÑ ó ß¿ßΓѼ¡«¼ íπΣÑαÑ
- «¡á óδñѽ∩ÑΓ ó ñá¡¡δσ ¿¼∩ »α¿½«ªÑ¡¿∩, »αÑñ¼ÑΓá ¿ φ½Ñ¼Ñ¡Γá.
-
- 3) Åਪ½áñ¡á∩ »α«úαá¼¼á - ¬½¿Ñ¡Γ «»αÑñѽ∩ÑΓ, ¡áτáΓ ½¿ ¼Ñªñπ
- ¡Ñ⌐ ¿ »α«úαá¼¼«⌐ - ßÑαóÑα«¼ ñ¿á½«ú »« ñá¡¡«¼π »αÑñ¼ÑΓπ ¿
-
- Windows 3.0/pg/3#3 = 179 =
-
- »α¿½«ªÑ¡¿ε. àß½¿ ñá, Γ« «¡á »α«óÑα∩ÑΓ, ßπΘÑßΓóπÑΓ ½¿ »«
- ñá¡¡«¼π φ½Ñ¼Ñ¡Γπ ßó∩º∞. àß½¿ Γá¬á∩ ßó∩º∞ ßπΘÑßΓóπÑΓ,
- »α«úαá¼¼á óδó«ñ¿Γ ñ½∩ »«½∞º«óáΓѽ∩ »á¡Ñ½∞ ß ß««íΘÑ¡¿Ñ¼, ó
- »α«Γ¿ó¡«¼ ß½πτáÑ «¡á óδºδóáÑΓ Σπ¡¬µ¿ε SendAdvise ñ½∩
- »«ß佬¿ ßÑαóÑαπ ß««íΘÑ¡¿∩ WM_DDE_ADVISE ñ½∩ ñá¡¡«ú«
- φ½Ñ¼Ñ¡Γá.
-
- 4) àß½¿ »« ñá¡¡«¼π »αÑñ¼ÑΓπ ñ¿á½«ú ¼Ñªñ𠬽¿Ñ¡Γ«¼ ¿ ßÑαóÑα«¼
- ÑΘÑ ¡Ñ ¡áτáΓ, Γ« ¬½¿Ñ¡Γ óδºδóáÑΓ ßó«ε ß«íßΓóÑ¡¡πε
- »α«µÑñπαπ SendInitiate ñ½∩ »«ß佬¿ Φ¿α«¬«óÑΘáΓѽ∞¡«ú«
- ß««íΘÑ¡¿∩ WM_DD E_INITIATE, τΓ«íδ πßΓá¡«ó¿Γ∞ ñ¿á½«ú, ¿
- πßΓá¡áó½¿óáÑΓ Ñú« ß «¬¡«¼, «ΓóÑΓ¿óΦ¿¼ ¡á ºá»α«ß, ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ FindServerGivenAppTopic. Å«ß½Ñ πßΓá¡«ó½Ñ¡¿∩
- ñ¿á½«úá ¬½¿Ñ¡Γ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ SendAdvise ºá»αáΦ¿óáÑΓ
- ßó∩º∞ »« ñá¡¡δ¼.
-
- ôóÑñ«¼½Ñ¡¿Ñ ¬½¿Ñ¡Γá «í ¿º¼Ñ¡Ñ¡¿¿ ñá¡¡δσ.
-
- è«úñá ¬½¿Ñ¡Γ πßΓá¡áó½¿óáÑΓ ßó∩º∞ ß Σ½áú«¼ fDeferUpd
- ß««íΘÑ¡¿∩ WM_DDE_ADVISE, πßΓá¡«ó½Ñ¡¡δ¼ ó FALSE (¡«½∞), φΓ«
- «º¡áτáÑΓ, τΓ« ßÑαóÑα »α¿ ¿º¼Ñ¡Ñ¡¿¿ ñá¡¡δσ íπñÑΓ »«ßδ½áΓ∞ ¿σ
- »α«úαá¼¼Ñ - ¬½¿Ñ¡Γπ. é Γᬿσ ß½πτá∩σ ßÑαóÑα »αÑ«íαáºπÑΓ φ½Ñ¼Ñ¡Γ
- ñá¡¡δσ ó «»αÑñѽѡ¡δ⌐ ó ¡áτá½Ñ Σ«α¼áΓ ¿ »«ßδ½áÑΓ ¬½¿Ñ¡Γπ
- ß««íΘÑ¡¿Ñ WM_DDE_DATA:
-
- /* éδñѽ¿Γ∞ í½«¬ αẼÑα«¼ ó ºáú«½«ó«¬ ñá¡¡δσ DDE »½εß */
- /* ñá¡¡δÑ: ßΓ᫬á, <CR><LF><NULL>. */
-
- if(!(hData = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE,
- (LONG)sizeof(DDEDATA)+strlen(szItemValue)+2)))
- return;
-
- if(!(lpData = (DDEDATA FAR *)GlobalLock(hData)))
- {
- GlobalFree(hData);
- return;
- }
- lpData -> bAskReq = bAskReq;
- lpData -> cfFormat = CF_TEXT;
- lstrcopy((LPSTR)lpData->Value,(LPSTR)szItemValue);
- lstrcat((LPSTR)lpData->Value,(LPSTR)"\r\n");
- GlobalUnlock(hData);
- atomItem = GlobalAddAtom(szItemName);
- if(!PostMessage(hWndClientDDE,
- WM_DDE_DATA,
- hWndServerDDE,
- MAKELONG(hData,atomItem));
- {
- GlobalFree(hData);
- GlobalDeleteAtom(atomItem);
- }
-
- è½¿Ñ¡Γ «íαáíáΓδóáÑΓ ß««ΓóÑΓßΓóπεΘ¿¼ «íαẫ¼ φ½Ñ¼Ñ¡Γ
-
- Windows 3.0/pg/3#3 = 180 =
-
- ñá¡¡δσ. àß½¿ ñ½∩ ñá¡¡«ú« φ½Ñ¼Ñ¡Γá πßΓá¡«ó½Ñ¡ Σ½áú fAskReq,
- ¬½¿Ñ¡Γ »«ßδ½áÑΓ ßÑαóÑαπ »«½«ª¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ WM_DDE_ASK.
-
- è«úñá ¬½¿Ñ¡Γ πßΓá¡áó½¿óáÑΓ ßó∩º∞ ß πßΓá¡«ó½Ñ¡¡δ¼ ó TRUE
- (1) Σ½áú«¼ fDeferUpd, φΓ« «º¡áτáÑΓ, τΓ« «¡ ºá»αáΦ¿óáÑΓ, τΓ«íδ
- »α¿ ¿º¼Ñ¡Ñ¡¿¿ ñá¡¡δσ »α«úαá¼¼á ßÑαóÑα »«ßδ½á½á ¡Ñ ßἿ ñá¡¡δÑ,
- á Γ«½∞¬« πóÑñ«¼½Ñ¡¿Ñ «í ¿σ ¿º¼Ñ¡Ñ¡¿¿. é Γᬿσ ß½πτá∩σ »α«úαá¼¼á
- ßÑαóÑα »α¿ ¿º¼Ñ¡Ñ¡¿¿ ñá¡¡δσ ¡Ñ «íαáíáΓδóáÑΓ ñá¡¡δÑ, á Γ«½∞¬«
- »«ßδ½áÑΓ ¬½¿Ñ¡Γπ ß««íΘÑ¡¿Ñ WM_DDE_DATA ß ¡π½Ñóδ¼ ñÑß¬α¿»Γ«α«¼
- ñá¡¡δσ:
-
- if(bDeferUpd) /* »α«óÑα¬á Σ½áúá, πßΓá¡«ó½Ñ¡¡«ú« »α¿ »α¿Ñ¼Ñ
- ß««íΘÑ¡¿∩ WM_DDE_ADVISE */
- {
- atomItem = GlobalAddAtom(szItemName);
- if(!PostMessage(hWndClientDDE,
- WM_DDE_DATA,
- hWndServerDDE,
- MAKELONG(0,atomItem));
- {
- GlobalDeleteAtom(atomItem);
- }
- }
-
- Å« ßó«Ñ¼π πß¼«ΓαÑ¡¿ε »α«úαá¼¼á - ¬½¿Ñ¡Γ ¼«ªÑΓ »α¿ φΓ«¼
- »«½πτ¿Γ∞ ñá¡¡δÑ ß »«¼«Θ∞ε «íδτ¡«ú« ß««íΘÑ¡¿∩ WM_DDE_REQUEST ¿½¿
- ó««íΘÑ ¿ú¡«α¿α«óáΓ∞ πóÑñ«¼½Ñ¡¿Ñ «í ¿º¼Ñ¡Ñ¡¿¿ φ½Ñ¼Ñ¡Γá ñá¡¡δσ. é
- «íÑ¿σ ß½πτá∩σ, Ñß½¿ πßΓá¡«ó½Ñ¡ Σ½áú fAslReq, Γ« ¬½¿Ñ¡Γ ñ«½ªÑ¡
- »«ß½áΓ∞ »«½«ª¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ WM_DDE_ASK.
-
- çáóÑαΦÑ¡¿Ñ ßó∩º¿ »« ñá¡¡δ¼.
-
- àß½¿ ¬½¿Ñ¡Γ σ«τÑΓ ºáóÑαΦ¿Γ∞ ßó∩º∞ »« «»αÑñѽѡ¡δ¼ ñá¡¡δ¼,
- «¡ »«ßδ½áÑΓ ßÑαóÑαπ ß««íΘÑ¡¿Ñ WM_DDE_UNADVISE:
-
- atomItem = GlobalAddAtom(szItemName);
- if(!PostMessage(hWndServerDDE,
- WM_DDE_UNADVISE,
- hWndClientDDE,
- MAKELONG(0,atomItem));
- {
- GlobalDeleteAtom(atomItem);
- }
-
- æÑαóÑα »α«óÑα∩ÑΓ, ¿¼ÑÑΓß∩ ½¿ ñ½∩ ñá¡¡«ú« φ½Ñ¼Ñ¡Γá ñá¡¡δσ
- ßó∩º∞ ß ¬½¿Ñ¡Γ«¼. àßñ¿ ñá, Γ« ßÑαóÑα »«ßδ½áÑΓ ¬½¿Ñ¡Γπ
- »«½«ª¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ WM_DDE_ASK, »«ß½Ñ φΓ«ú« «¡ ¡Ñ «ΓóÑτáÑΓ
- ºá »«ßδ½¬π ¿º¼Ñ¡Ñ¡¡«ú« ñá¡¡«ú« φ½Ñ¼Ñ¡Γá ¬½¿Ñ¡Γπ. àß½¿ ßÑαóÑα ¡Ñ
- ¿¼Ñ½ Γᬫ⌐ ßó∩º¿, «¡ »«ßδ½áÑΓ «Γα¿µáΓѽ∞¡«Ñ ß««íΘÑ¡¿Ñ
- WM_DDE_ASK.
-
- ä½∩ ºáóÑαΦÑ¡¿∩ óßÑσ ßó∩ºÑ⌐ ó ñá¡¡«¼ ñ¿á½«úÑ ¬½¿Ñ¡Γ
- »«ßδ½áÑΓ ßÑαóÑαπ ß««íΘÑ¡¿Ñ WM_DDE_UNADVISE, π¬áºδóá∩ ó ¬áτÑßΓóÑ
-
- Windows 3.0/pg/3#3 = 181 =
-
- áΓ«¼á ñá¡¡δσ ¡«½∞. æÑαóÑα »α«óÑα∩ÑΓ, ¿¼ÑÑΓß∩ ½¿ σ«Γ∩ íδ «ñ¡á
- ßó∩º∞. àß½¿ ñá, ßÑαóÑα »«ßδ½áÑΓ »«½«ª¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ
- WM_DDE_ASK; «¡ í«½∞ΦÑ ¡Ñ «ΓóÑτáÑΓ ºá »ÑαÑñáτ𠬽¿Ñ¡Γπ ¿º¼Ñ¡Ñ¡¿⌐
- ó ñá¡¡δσ. àß½¿ ó ñá¡¡«¼ ñ¿á½«úÑ ¡ÑΓ ¡¿ «ñ¡«⌐ ßó∩º¿, ßÑαóÑα
- »«ßδ½áÑΓ ¬½¿Ñ¡Γπ «Γα¿µáΓѽ∞¡«Ñ ß««íΘÑ¡¿Ñ WM_DDE_ASK.
- 22.4.4 çá»π߬ ¬«¼á¡ñ ó πñá½Ñ¡¡«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ.
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á Windows ¼«ªÑΓ ß »«¼«Θ∞ε ß««íΘÑ¡¿∩
- WM_DDE_EXECUTE ¿¡¿µ¿¿α«óáΓ∞ óδ»«½¡Ñ¡¿Ñ ¬«¼á¡ñδ ¿½¿
- »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ¬«¼á¡ñ ñαπú«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐. 轿ѡΓ
- »«ßδ½áÑΓ ßÑαóÑαπ ß««íΘÑ¡¿Ñ WM_DDE_EXECUTE, ß«ñÑαªáΘÑÑ
- ñÑß¬α¿»Γ«α ¬«¼á¡ñ¡«⌐ ßΓ᫬¿:
-
- if(!hCommand = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE,
- sizeof(szCommandString))))
- return;
- if(!lpCommand = GlobalLock(hCommand)))
- {
- GlobalFree(hCommand);
- return;
- }
- lstrcpy(lpCommand,szCommandString);
- GlobalUnlock(hCommand);
- if(!PostMessage(hWndServerDDE,
- WM_DDE_EXECUTE,
- hWndClientDDE,
- MAKELONG(0,hCommand));
- {
- GlobalFree(hCommand);
- }
-
- æÑαóÑα »δΓáÑΓß∩ óδ»«½¡¿Γ∞ π¬áºá¡¡πε ¬«¼á¡ñ¡πε ßΓ᫬π. Åα¿
- πß»ÑΦ¡«¼ ºáóÑαΦÑ¡¿¿ ßÑαóÑα »«ßδ½áÑΓ »«½«ª¿Γѽ∞¡«Ñ ß««íΘÑ¡¿Ñ
- WM_DDE_ASK ¿½¿ «Γα¿µáΓѽ∞¡«Ñ ß««íΘÑ¡¿Ñ ó »α«Γ¿ó¡«¼ ß½πτáÑ. ¥Γ«
- ß««íΘÑ¡¿Ñ WM_DDE_ASK ºá¡«ó« ¿ß»«½∞ºπÑΓ ñÑß¬α¿»Γ«α hCommand,
- »«ß½á¡¡δ⌐ ó ¿ßσ«ñ¡«¼ ß««íΘÑ¡¿¿ WM_DDE_EXECUTE.
-
- ìáí«α ¬«¼á¡ñ Program Manager.
-
- Åα«úαá¼¼á Windows Program Manager ¿ß»«½∞ºπÑΓ ¿¡ΓÑαΣÑ⌐ß
- ¬«¼á¡ñ¡δσ ßΓ᫬ DDE, ¬«Γ«αδ⌐ »«ºó«½∩ÑΓ ñαπú¿¼ »α¿¬½áñ¡δ¼
- »α«úαἼἠ߫ºñáóáΓ∞, «Γ«íαáªáΓ∞ ¿ πñá½∩Γ∞ úαπ»»δ, ñ«íáó½∩Γ∞ ó
- úαπ»»δ φ½Ñ¼Ñ¡Γδ ¿ ºá¬αδóáΓ∞ Program Manager. ¥Γ¿ ñÑ⌐ßΓó¿∩ ¼«ª¡«
- óδ»«½¡¿Γ∞ ß »«¼«Θ∞ε ß½ÑñπεΘ¿σ ¬«¼á¡ñ:
-
- - CreateGroup
-
- - AddItem
-
- - DeleteGroup
-
- - ShowGroup
-
- Windows 3.0/pg/3#3 = 182 =
-
-
- - ExitProgman
-
- ìá»α¿¼Ñα, »α«úαá¼¼á πßΓá¡«ó¬¿ óáΦÑ⌐ »α«úαá¼¼δ ¼«ªÑΓ
- ¿ß»«½∞º«óáΓ∞ φΓ¿ ¬«¼á¡ñδ ñ½∩ ºá¡ÑßÑ¡¿∩ ¿¬«¡δ óáΦÑ⌐ »α«úαá¼¼δ ó
- úαπ»»π.
-
- Åα¿¼Ñτá¡¿Ñ: Å«½∞º«óáΓѽ∞ ¼«ªÑΓ πßΓá¡«ó¿Γ∞ ¬«¡Σ¿úπαᵿε
- Windows Γᬿ¼ «íαẫ¼, τΓ«íδ ¿ß»«½∞º«óáΓ∞ ó ¬áτÑßΓóÑ «í«½«τ¬¿
- ¡Ñ Program Manager, á ñαπúπε »α«úαá¼¼π. Å«φΓ«¼π, óáΦá »α«úαá¼¼á
- ¡Ñ ñ«½ª¡á »«ñαáºπ¼ÑóáΓ∞, τΓ« Program Manager óßÑúñá ñ«ßΓπ»¡á
- ñ½∩ πßΓá¡«ó½Ñ¡¿∩ ñ¿á½«úá.
-
- ä½∩ ¿ß»«½∞º«óá¡¿∩ φΓ¿σ ¬«¼á¡ñ óáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ñ«½ª¡á ó ¡áτá½Ñ ¿¡¿µ¿á½¿º¿α«óáΓ∞ ñ¿á½«ú ß Program Manager. ä½∩
- ñ¿á½«úá ¡πª¡« ¿ß»«½∞º«óáΓ∞ "PROGMAN" ó ¬áτÑßΓóÑ ¿¼Ñ¡¿ ¬á¬ ñ½∩
- »α¿½«ªÑ¡¿∩, Γᬠ¿ ñ½∩ »αÑñ¼ÑΓá. çáΓѼ, óáΦá »α«úαá¼¼á »«ßδ½áÑΓ
- ß««íΘÑ¡¿Ñ WM_DDE_EXECUTE, π¬áºδóá∩ ¡Ñ«íσ«ñ¿¼πε ¬«¼á¡ñπ ¿ ÑÑ
- »áαá¼ÑΓαδ. ìá»α¿¼Ñα, ß½ÑñπεΘ¿⌐ ¡áí«α ¬«¼á¡ñ ñ«íáó¿Γ WINAPP.EXE
- ¬ úαπ»»Ñ Windows Applications:
-
- [CreateGroup(Windows Applications)]
- [ShowGroup(1)]
- [AddItem(winapp.exe, Win App,wunapp.exe,2);
-
- é ß½ÑñπεΘ¿σ »áαáúαáΣáσ ¬«¼á¡ñ¡δÑ ßΓ᫬¿ Program Manager
- «»¿ßá¡δ í«½ÑÑ »«ñα«í¡«.
-
- CreateGroup.
-
- æ¿¡Γá¬ß¿ß ¬«¼á¡ñδ CreateGroup:
-
- CreateGroup(GroupName[,GroupPath])
-
- 諼á¡ñá CreateGroup ß««íΘáÑΓ Program Manager, τΓ« ¡πª¡«
- ß«ºñáΓ∞ ¡«óπε úαπ»»π ¿½¿ á¬Γ¿ó¿º¿α«óáΓ∞ «¬¡« ßπΘÑßΓóπεΘÑ⌐
- úαπ»»δ.
-
- Åáαá¼ÑΓα GroupName - φΓ« ßΓ᫬á, ß«ñÑαªáΘá∩ ¿¼∩ úαπ»»δ.
- àß½¿ Γá¬á∩ úαπ»»á πªÑ ßπΘÑßΓóπÑΓ, Γ« Program Manager
- á¬Γ¿ó¿º¿απÑΓ «¬¡« φΓ«⌐ úαπ»»δ.
-
- ìÑ«í∩ºáΓѽ∞¡δ⌐ »áαá¼ÑΓα GroupPath ß«ñÑαª¿Γ ¼áαΦαπΓ Σá⌐½á
- úαπ»»δ. àß½¿ óδ ¡Ñ π¬áªÑΓÑ φëà »áαá¼ÑΓα, Γ« Windows íπñÑΓ
- ¿ß»«½∞º«óáΓ∞ ñ½∩ Σá⌐½á ¿¼∩ »« π¼«½τá¡¿ε.
-
- AddItem.
-
- æ¿¡Γá¬ß¿ß ¬«¼á¡ñδ AddItem:
-
- AddItem(CmdLine[,Name[,IconPath[,IconIndex[,xPos,yPos]]]])
-
- 諼á¡ñá AddItem ñ«íáó½∩ÑΓ ¬ ßπΘÑßΓóπεΘÑ⌐ úαπ»»Ñ ¿¬«¡π.
-
- Windows 3.0/pg/3#3 = 183 =
-
-
- ÆαÑíπѼδ⌐ »áαá¼ÑΓα ß«ñÑαª¿Γ ßΓ᫬π ß »«½¡«⌐ ¬«¼á¡ñ¡«⌐
- ßΓ᫬«⌐, ¡Ñ«íσ«ñ¿¼«⌐ ñ½∩ ºá»πß¬á »α«úαá¼¼δ. èᬠ¼¿¡¿¼π¼, φΓ«
- ñ«½ª¡« íδΓ∞ ¿¼∩ óδ»«½¡∩Ѽ«ú« Σá⌐½á »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. Ä¡á
- ¼«ªÑΓ Γá¬ªÑ ó¬½ετáΓ∞ »«½¡δ⌐ ¼áαΦαπΓ ¿ »áαá¼ÑΓαδ, »ÑαÑñáóáѼδÑ
- »α«úαá¼¼Ñ.
-
- ìÑ«í∩ºáΓѽ∞¡δ⌐ »áαá¼ÑΓα Name - φΓ« ßΓ᫬á, ß«ñÑαªáΘá∩
- ºáú«½«ó«¬, ¬«Γ«αδ⌐ íπñÑΓ «Γ«íαáªáΓ∞ß∩ »«ñ ¿¬«¡«⌐ ó «¬¡Ñ úαπ»»δ.
-
- ìÑ«í∩ºáΓѽ∞¡δ⌐ »áαá¼ÑΓα IconPath - φΓ« ßΓ᫬á ß ¿¼Ñ¡Ñ¼
- Σá⌐½á, ß«ñÑαªáΘÑú« ¿¬«¡π, «Γ«íαáªáѼπε ó ñá¡¡«¼ «¬¡Ñ úαπ»»δ.
- ¥Γ« ¼«ªÑΓ íδΓ∞ ¬á¬ óδ»«½¡∩Ѽδ⌐ Σá⌐½ Windows, Γᬠ¿ Σá⌐½ ¿¬«¡δ,
- ß«ºñá¡¡δ⌐ ß »«¼«Θ∞ε SDKPaint. àß½¿ óδ ¡Ñ π¬áªÑΓÑ IconPath,
- Program Manager ó«ß»«½∞ºπÑΓß∩ »Ñαó«⌐ ¿¬«¡«⌐ Σá⌐½á,
- «»αÑñѽ∩Ѽ«ú« CmdLine. àß½¿ φëà Σá⌐½ ¡Ñ ß«ñÑαª¿Γ ¿¬«¡δ, Γ«
- Program Manager ó«ß»«½∞ºπÑΓß∩ ßΓá¡ñáαΓ¡«⌐ ¿¬«¡«⌐.
-
- ìÑ«í∩ºáΓѽ∞¡δ⌐ »áαá¼ÑΓα IconIndex - φΓ« µÑ½«Ñ,
- «»αÑñѽ∩εΘÑÑ ¿¡ñÑ¬ß ¿¬«¡δ ó IconPath, ¬«Γ«απε íπñÑΓ «Γ«íαáªáΓ∞
- Program Manager. PROGMAN.EXE ß«ñÑαª¿Γ »∩Γ∞ óßΓα«Ñ¡¡δσ ¿¬«¡,
- ¬«Γ«αδÑ óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ñ½∩ »α¿¬½áñ¡δσ »α«úαá¼¼ ¡Ñ ñ½∩
- Windows.
-
- ìÑ«í∩ºáΓѽ∞¡δÑ »áαá¼ÑΓαδ xPos ¿ yPos - φΓ« µÑ½δÑ,
- «»αÑñѽ∩εΘ¿Ñ ú«α¿º«¡Γá½∞¡πε ¿ óÑαΓ¿¬á½∞¡πε »«º¿µ¿ε ¿¬«¡δ ó «¬¡Ñ
- úαπ»»δ. éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ «íá »áαá¼ÑΓαá ñ½∩ «»αÑñѽѡ¿∩
- ¡Ñ«íσ«ñ¿¼«ú« »«½«ªÑ¡¿∩ ¿¬«¡δ. àß½¿ óδ ¿σ ¡Ñ π¬áªÑΓÑ, Program
- Manager »«¼ÑßΓ¿Γ ¿¬«¡π ó »Ñαó«Ñ ßó«í«ñ¡«Ñ ¼ÑßΓ«.
-
- DeleteGroup.
-
- æ¿¡Γá¬ß¿ß ¬«¼á¡ñδ DeleteGroup:
-
- DeleteGroup(GroupName);
-
- 諼á¡ñá DeleteGroup πñá½∩ÑΓ úαπ»»π, «»αÑñѽ∩Ѽπε
- »áαá¼ÑΓα«¼ GroupName.
-
- ShowGroup.
-
- æ¿¡Γá¬ß¿ß ¬«¼á¡ñδ ShowGroup:
-
- ShowGroup(GroupName,ShowCommand);
-
- 諼á¡ñá ShowGroup »«ºó«½∩ÑΓ ¼¿¡¿¼¿º¿α«óáΓ∞,
- ¼á¬ß¿¼¿º¿α«óáΓ∞ ¿½¿ ó«ßßΓá¡áó½¿óáΓ∞ «¬¡« úαπ»»δ, «»αÑñѽ∩Ѽ«⌐
- »áαá¼ÑΓα«¼ GroupName.
-
- Äí∩ºáΓѽ∞¡δ⌐ »áαá¼ÑΓα ShowCommand »αÑñßΓáó½∩ÑΓ ß«í«⌐
- µÑ½«Ñ, «»αÑñѽ∩εΘÑÑ ñÑ⌐ßΓó¿Ñ, ¬«Γ«α«Ñ Program Manager ñ«½ªÑ¡
- óδ»«½¡¿Γ∞ ß «¬¡«¼ úαπ»»δ. ¥Γ«Γ »áαá¼ÑΓα ¼«ªÑΓ »α¿¡¿¼áΓ∞
- ß½ÑñπεΘ¿Ñ º¡áτÑ¡¿∩:
-
- Windows 3.0/pg/3#3 = 184 =
-
-
- ç¡áτÑ¡¿Ñ Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- 1 Ç¬Γ¿ó¿º¿απÑΓ ¿ «Γ«íαáªáÑΓ «¬¡« úαπ»»δ. àß½¿
- «¬¡« í佫 ¼¿¡¿¼¿º¿α«óá¡« ¿½¿ ¼á¬ß¿¼¿º¿α«óá¡«,
- Γ« Windows ó«ßßΓá¡áó½¿óáÑΓ Ñú« ¿ßσ«ñ¡δ⌐ αẼÑα
- ¿ »«½«ªÑ¡¿Ñ.
-
- 2 Ç¬Γ¿ó¿º¿απÑΓ «¬¡« úαπ»»δ ¿ «Γ«íαáªáÑΓ Ñú« ó
- ó¿ñÑ ¿¬«¡δ.
-
- 3 Ç¬Γ¿ó¿º¿απÑΓ «¬¡« úαπ»»δ ¿ ¼á¬ß¿¼¿º¿απÑΓ Ñú«.
-
- 4 ÄΓ«íαáªáÑΓ «¬¡« úαπ»»δ ó Γ«¼ »«½«ªÑ¡¿¿ ¿ Γ«ú«
- ªÑ αẼÑαá, ¬á¬¿¼ «¡« í佫 ó »«ß½Ññ¡δ⌐ αáº.
-
- 5 Ç¬Γ¿ó¿º¿απÑΓ «¬¡« úαπ»»δ ¿ «Γ«íαáªáÑΓ Ñú« ó
- ΓѬπΘѼ »«½«ªÑ¡¿¿ ¿ ß ΓѬπΘ¿¼¿ αẼÑαἿ.
-
- 6 î¿¡¿¼¿º¿απÑΓ «¬¡« úαπ»»δ.
-
- 7 ÄΓ«íαáªáÑΓ «¬¡« úαπ»»δ ó ó¿ñÑ ¿¬«¡δ. ÆÑ¬πΘÑÑ
- á¬Γ¿ó¡«Ñ «¬¡« «ßΓáÑΓß∩ á¬Γ¿ó¡δ¼.
-
- 8 ÄΓ«íαáªáÑΓ «¬¡« úαπ»»δ ó Ñú« ΓѬπΘѼ ß«ßΓ«∩¡¿¿.
- ÆÑ¬πΘÑÑ á¬Γ¿ó¡«Ñ «¬¡« «ßΓáÑΓß∩ á¬Γ¿ó¡δ¼.
- ───────────────────────────────────────────────────────────────
-
- ExitProgman.
-
- æ¿¡Γá¬ß¿ß ¬«¼á¡ñδ ExitProgman:
-
- ExitProgman(bSaveState)
-
- 諼á¡ñá ExitProgman ºáßΓáó½∩ÑΓ Program Manager ºáóÑαΦ¿Γ∞
- ßó«ε αáí«Γπ ¿, 󫺼«ª¡«, ºá»«¼¡¿Γ∞ ßó«Ñ ß««ßΓ«∩¡¿Ñ. Åáαá¼ÑΓα
- bSaveState ∩ó½∩ÑΓß∩ íπ½Ñó߬¿¼ »ÑαѬ½ετáΓѽѼ, ¬«Γ«αδ⌐, Ñß½¿
- αáóÑ¡ TRUE, ºáßΓáó½∩ÑΓ Program Manager ß«σαá¡¿Γ∞ ßó«Ñ
- ß«ßΓ«∩¡¿Ñ. àß½¿ bSaveState αáóÑ¡ FALSE, Γ« Program Manager ¡Ñ
- íπñÑΓ ß«σαá¡∩Γ∞ ßó«Ñú« ß«ßΓ«∩¡¿∩.
- 22.4.5 çáóÑαΦÑ¡¿Ñ ñ¿á½«úá.
-
- èᬠ»α«úαá¼¼á - ¬½¿Ñ¡Γ, Γᬠ¿ »α«úαá¼¼á ßÑαóÑα ¼«úπΓ ß
- »«¼«Θ∞ε ß««íΘÑ¡¿∩ WM_DDE_TERMINATE ó ½εí«⌐ ¼«¼Ñ¡Γ ºáóÑαΦ¿Γ∞
- ñ¿á½«ú. àßΓÑßΓóÑ¡¡«, «íÑ »α«úαá¼¼δ, ¬½¿Ñ¡Γ ¿ ßÑαóÑα, ñ«½ª¡δ
- íδΓ∞ »«ñú«Γ«ó½Ñ¡δ ¬ »α¿Ñ¼π ß««íΘÑ¡¿∩ WM_DDE_TERMINATE.
- Åਪ½áñ¡á∩ »α«úαá¼¼á «í∩ºá¡á »ÑαÑñ ºáóÑαΦÑ¡¿Ñ¼ αáí«Γδ ºáóÑαΦ¿Γ∞
- óßÑ ßó«¿ ñ¿á½«ú¿.
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á ºáóÑαΦáÑΓ ñ¿á½«ú, »«ßδ½á∩ ß««íΘÑ¡¿Ñ
- WM_DDE_TERMINATE:
-
-
- Windows 3.0/pg/3#3 = 185 =
-
- PostMessage(hWndServerDDE,WM_DDE_TERMINATE,hWndClientDDE,0L);
-
- ¥Γ¿¼ óáΦá »α«úαá¼¼á ¿¡Σ«α¼¿απÑΓ, τΓ« í«½∞ΦÑ ¡Ñ íπñÑΓ
- »«ßδ½áΓ∞ ß««íΘÑ¡¿⌐ ¿ τΓ« ñαπúá∩ »α«úαá¼¼á ¼«ªÑΓ ºá¬αδΓ∞ ßó«Ñ
- «¬¡«. Å«½πτ¿ó φΓ« ß««íΘÑ¡¿Ñ »α«úαá¼¼á «í∩ºá¡á ó ½εí«¼ ß½πτáÑ
- »«ß½áΓ∞ ó «ΓóÑΓ ß««íΘÑ¡¿Ñ WM_DDE_TERMINATE. ìÑ ñ«»π߬áÑΓß∩
- »«ßδ½áΓ∞ «Γα¿µáΓѽ∞¡«Ñ, »«½«ª¿Γѽ∞¡«Ñ ¿½¿ ºá¡∩Γ«Ñ ß««íΘÑ¡¿Ñ
- WM_DDE_ASK.
-
- Å«ß½Ñ Γ«ú«, ¬á¬ »α¿¬½áñ¡á∩ »α«úαá¼¼á »«ß½á½á ß««íΘÑ¡¿Ñ
- WM_DDE_TERMINATE ßó«Ñ¼π »áαΓ¡Ñαπ »« ñ¿á½«úπ, «¡á ¡Ñ ñ«½ª¡á
- «ΓóÑτáΓ∞ ¡¿ ¡á ¬á¬¿Ñ Ñú« ß««íΘÑ¡¿∩, Γ.¬. «¬¡«, ¬«Γ«α«¼π íπñÑΓ
- »«ßδ½áΓ∞ß∩ «ΓóÑΓ, πªÑ ¼«ªÑΓ íδΓ∞ αáºαπΦÑ¡«.
-
- Åα¿ ºáóÑαΦÑ¡¿¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ «¡á ñ«½ª¡á »ÑαÑñ
- «¬«¡τ᡿Ѽ «íαáí«Γ¬¿ ß««íΘÑ¡¿∩ WM_DESTROY ºáóÑαΦ¿Γ∞ óßÑ
- á¬Γ¿ó¡δÑ ñ¿á½«ú¿. éáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á
- «íτÑß»Ñτ¿óáΓ∞ ºáñÑ᪬π, Γ.¬, «ñ¿¡ ¿º ÑÑ »áαΓ¡Ñα«ó, 󫺼«ª¡«, ¡Ñ
- ß¼«ªÑΓ «ΓóÑΓ¿Γ∞ ¡á ß««íΘÑ¡¿Ñ WM_DDE_TERMINATE. ì¿ªÑ »α¿óÑñÑ¡á
- »α«µÑñπαá ºáóÑαΦÑ¡¿∩ ñ¿á½«úá:
-
- void TerminateConversations(hwndServerDDE)
- HWND hwndServerDDE;
- {
- HWND hwndClientDDE;
- LONG lTimeOut;
- MSG msg;
-
-
- /* ºáóÑαΦ¿Γ∞ óßÑ á¬Γ¿ó¡δÑ ñ¿á½«ú¿ */
- hwndClientDDE = NULL;
- while (hwndClientDDE = GetNextConv(hwndClientDDE))
- {
- hwndServerDDE = GetHwndServerDDE(hwndClientDDE);
- if (IsWindow(hwndServerDDE))
- SendTerminate(hwndClientDDE, hwndServerDDE);
- }
-
- /* Ī¿ñá¡¿Ñ ºáóÑαΦÑ¡¿∩ óßÑσ ñ¿á½«ú«ó ¿½¿ ºáñÑ᪬¿ */
- lTimeOut = GetTickCount() + (LONG)nAckTimeOut;
- while (PeekMessage(&msg, NULL, WM_DDE_FIRST,
- WM_DDE_LAST, PM_REMOVE))
- {
- DispatchMessage (&msg);
- if (msg.message == WM_DDE_TERMINATE)
- {
- if (!AtLeastOneConvActive())
- break;
- }
- if (GetTickCount() > lTimeOut)
- break;
- }
-
- return;
- }
-
- Windows 3.0/pg/3#3 = 186 =
-
-
- 22.5 Åα¿¼Ñαδ »α«úαá¼¼ Client ¿ Server.
-
- ìá ñ¿ß¬Ñ SDK Sample Source Code Disk ó ñ¿αÑ¬Γ«α¿¿ DDE
- ß«ñÑαªáΓß∩ ñóá »α¿¼Ñαá »α«úαá¼¼, ß ¿¼Ñ¡á¼¿ Server ¿ Client. ¥Γ¿
- »α«úαá¼¼δ ¿½½εßΓα¿απεΓ í«½∞Φ¿¡ßΓó« «íßπªñáóΦ¿σß∩ óδΦÑ
- Γα᡺ᬵ¿⌐.
-
- Åα«úαá¼¼á Server ß«ñÑαª¿Γ «¬¡« ß ΓαѼ∩ í½«¬á¼¿
- αÑñá¬Γ¿α«óá¡¿∩, »«¼ÑτÑ¡¡δ¼¿ ¬á¬ "Item1", "Item2" ¿ "Item3". Ä¡¿
- »αÑñßΓáó½∩εΓ ß«í«⌐ φ½Ñ¼Ñ¡Γδ ñá¡¡δσ, ñ½∩ ¬«Γ«αδσ ¼«ªÑΓ íδΓ∞
- πßΓá¡«ó½Ñ¡á »«ßΓ«∩¡¡á∩ ßó∩º∞.
-
- ¡« ºá»πßΓ¿Γ∞ ¡Ñ߬«½∞¬« φ¬ºÑ¼»½∩α«ó »α«úαá¼¼δ Server.
- èáªñ«¼π φ¬ºÑ¼»½∩απ »α¿ßóá¿óáÑΓß∩ π¡¿¬á½∞¡«Ñ ¿¼∩ ("File1",
- "File2" ¿ Γ.ñ.), ¬«Γ«αδÑ «»αÑñѽ∩εΓ »αÑñ¼ÑΓ, »« ¬«Γ«α«¼π íπñÑΓ
- πßΓá¡«ó½Ñ¡á ßó∩º∞.
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á Client ß«ñÑαª¿Γ ¼Ñ¡ε ß ¬«¼á¡ñἿ,
- ºá»π߬áεΘ¿¼¿ ß««ΓóÑΓßΓóπεΘ¿Ñ Γα᡺ᬵ¿¿:
-
- - Initiate
-
- - Terminate
-
- - Advise
-
- - Unadvise
-
- - Request
-
- - Poke
-
- - Execute
-
- èα«¼Ñ φΓ«ú« ¼Ñ¡ε Edit »α«úαá¼¼ Client ¿ Server ß«ñÑনΓ
- ¬«¼á¡ñπ PasteLink, ¬«Γ«αá∩ ¿¡¿µ¿á½¿º¿απÑΓ ú«α∩τπε ßó∩º∞ ñ½∩
- óδíαá¡¡«ú« φ½Ñ¼Ñ¡Γá ñá¡¡δσ.
-
- Ĭ¡« »α«úαá¼¼δ Client »«¬áºδóáÑΓ óßÑ ΓѬπΘ¿Ñ ñ¿á½«ú¿,
- «Γ«íαáªá∩ ñÑß¬α¿»Γ«αδ «¬«¡ ¬½¿Ñ¡Γá ¿ ßÑαóÑαá, ¿ ¿¼Ñ¡á
- »α¿½«ªÑ¡¿∩ ¿ »αÑñ¼ÑΓá. Å«ñ ¬áªñδ¼ «Γ«íαáªáÑ¼δ¼ ñ¿á½«ú«¼ ó «¬¡«
- Client óδó«ñ∩Γß∩ óßÑ ßó∩º¿ »« ñá¡¡δ¼, ¬«Γ«αδÑ í뫨 πßΓá¡«ó½Ñ¡δ
- ß »«¼«Θ∞ε ¬«¼á¡ñ Advise ¿ PasteLink. ÄΓ«íαáªÑ¡¿Ñ ßó∩º¿ »«
- ñá¡¡δ¼ ó¬½ετáÑΓ »«¬áº ΓѬπΘÑú« º¡áτÑ¡¿∩, »«ß½á¡¡«ú« ß ßÑαóÑαá.
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á Client »«ññÑনóáÑΓ ñ¿á½«ú¿ ß
- ¡Ñ߬«½∞¬¿¼¿ ßÑαóÑαἿ, ¡Ñ߬«½∞¬« »αÑñ¼ÑΓ«ó ñ½∩ ¬áªñ«ú« ßÑαóÑαá
- ¿ ¡Ñ߬«½∞¬« ßó∩ºÑ⌐ »« ñá¡¡δ¼ ñ½∩ ¬áªñ«ú« »αÑñ¼ÑΓá. ǡὫú¿τ¡«,
- »α«úαá¼¼á Server »«ññÑনóáÑΓ ßó∩º∞ ß ¡Ñ߬«½∞¬¿¼¿ ¬½¿Ñ¡ΓἿ, »«
-
- Windows 3.0/pg/3#3 = 187 =
-
- ¡Ñ߬«½∞¬« »αÑñ¼ÑΓ«ó ñ½∩ ¬áªñ«ú« ¬½¿Ñ¡Γá ¿ »« ¡Ñ߬«½∞¬« ßó∩ºÑ⌐
- »« ñá¡¡δ¼ ñ½∩ ¬áªñ«ú« »αÑñ¼ÑΓá.
-
- Åα«úαá¼¼δ Client ¿ Server ¿¼ÑεΓ »áαώѽ∞¡« ¼«ñπ½∞¡πε
- ßΓαπ¬Γπαπ. èáªñá∩ »α«úαá¼¼á ¿¼ÑÑΓ Γα¿ ¼«ñπ½∩. ÅÑαóδ⌐ (Client.C
- ¿ Server.C) «íαáíáΓδóáÑΓ óßÑ »«½∞º«óáΓѽ∞߬¿Ñ Γα᡺ᬵ¿¿ ¿
- »«φΓ«¼π ó¬½ετáÑΓ »α«µÑñπαδ «¬«¡ ¿ »á¡Ñ½Ñ⌐ ñ¿á½«úá. éΓ«α«⌐
- ¼«ñπ½∞ (CLIDATA.C ¿ SERVDATA.C) π»αáó½∩εΓ óßѼ¿ ñá¡¡δ¼¿ óßÑσ
- á¬Γ¿ó¡δσ ñ¿á½«ú«ó ¿ ßó∩ºÑ⌐ »« ñá¡¡δ¼. ÆαÑΓ¿⌐ ¼«ñπ½∞ (CLIDDE.C ¿
- SERVDDE.C) ó¬½ετáÑΓ óßε ½«ú¿¬π, ߻ѵ¿Σ¿τ¡πε ñ½∩ Γα᡺ᬵ¿⌐ DDE.
- Åα¿ Γᬫ⌐ ¼«ñπ½∞¡«⌐ ßΓαπ¬ΓπαÑ φΓ¿ ñóá »α¿¼Ñαπ ¼«úπΓ íδΓ∞ í«½ÑÑ
- πñ«í¡« »αÑ«íαẫóá¡δ ó ¡Ñ«íσ«ñ¿¼δÑ óá¼ »α¿½«ªÑ¡¿∩.
- 22.6 çᬽετÑ¡¿Ñ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡«, ¬á¬ ¿ß»«½∞º«óáΓ∞ »α«Γ«¬«½
- ñ¿¡á¼¿τÑ߬«ú« «í¼Ñ¡á ñá¡¡δ¼¿ Windows ñ½∩ «í¼Ñ¡á ñá¡¡δ¼¿ ¼Ñªñπ
- »α¿¬½áñ¡δ¼¿ »α«úαἼἿ. é ¡Ñ⌐ »α¿ó«ñ∩Γß∩ «ß¡«ó¡δÑ ¬«¡µÑ»µ¿¿
- DDE ¿ «»¿ßδóáÑΓß∩, ¬á¬ »α¿¬½áñ¡δÑ »α«úαá¼¼δ ¿¡¿µ¿á½¿º¿απεΓ
- ñ¿á½«ú, ΓαÑíπεΓ ñá¡¡δÑ ¿½¿ «ΓóÑτáεΓ ¡á ºá»α«ß ñá¡¡δσ ¿ ºáΓѼ
- ºáóÑαΦáεΓ ñ¿á½«ú. é ñá¡¡«⌐ ú½áóÑ Γá¬ªÑ «»¿ßá¡«, ¬á¬ πßΓá¡«ó¿Γ∞
- "ú«α∩τπε" ¿½¿ "ΓÑ»½πε" ßó∩º∞ »« ñá¡¡δ¼ ¼Ñªñπ »α¿¬½áñ¡δ¼¿
- »α«úαἼἿ ¿ ¬á¬ «ñ¡á »α«úαá¼¼á ¼«ªÑΓ ºá»α«ß¿Γ∞ ñαπúπε
- óδ»«½¡¿Γ∞ ¬«¼á¡ñδ.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε «Γ¡«ß¿Γѽ∞¡« «í¼Ñ¡á ñá¡¡δ¼¿ óδ
- ¡á⌐ñÑΓÑ ó:
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- Äí¼Ñ¡ ñá¡¡δ¼¿ ß Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá: ú½áóá 13, "æ¿ß-
- »«¼«Θ∞ε ß¿ßΓѼ¡«ú« ΓѼ¡δ⌐ íπΣÑα".
- íπΣÑαá
-
- éδñѽѡ¿Ñ ¿ ¿ß»«½∞- Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá: ú½áóá 15, "ô»αáó-
- º«óá¡¿Ñ í½«¬«ó »á¼∩- ½Ñ¡¿Ñ »á¼∩Γ∞ε", ¿ ú½áóá 16, "àΘÑ «í π»αáó-
- Γ¿ ñ½∩ «í¼Ñ¡á ñá¡¡δ- ½Ñ¡¿¿ »á¼∩Γ∞ε".
- ¼¿ ó DDE
-
- Å«ß佬á ß««íΘÑ¡¿⌐ æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1: ú½áóá 1,
- ñαπú«⌐ »α«úαá¼¼Ñ "öπ¡¬µ¿¿ ß¿ßΓѼδ π»αáó½Ñ¡¿∩ «¬¡á¼¿" ¿
- ú½áóá 4, "滿߫¬ Σπ¡¬µ¿⌐".
-
- Å«½¡«Ñ «»¿ßá¡¿Ñ æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 2: ú½áóá 15,
- »α«Γ«¬«½á DDE "Ä»αÑñѽѡ¿∩ »α«Γ«¬«½á Windows DDE".
-
-