Valaki tud segíteni az alábbi MASM példakódban?
A példakód egy nagyon egyszerű Win32 alapú szövegszerkesztőt épít fel, a kódja innét nézhető meg/másolható ki : [link]
Egyrészt azt szeretném, ha nagyobb méretű/mennyiségű szöveg esetére az ablak alsó és bal szélén lenne egy-egy szokásos, "nyilas-görgetős" navigálósáv, mint pl. itt a böngésző (vélhetőleg mindenkinek itt van) ablakának oldalán lévő csúszka, amivel le-fel tudja görgetni a böngésző éppen a monitorra ráférő és megjelenített részét. Remélem mindenki tudja, hogy mire gondolok. :]
A másik, ha jó lenne, hogy valaki megmondaná, hogy a kódban éppen hol adható meg, vagy mi szabja meg, hogy mekkora méretű adatot tudjon írni, illetve olvasni egyszerre a program. Ahogy tudom, jelenlegi állapotában pontosan 30 ezer karakter írható bele és menthető el, betöltésnél pedig max. 64 KB-ot (1 bájt híjján, gondolom az EOL miatt) tölt be a fájlból. Ezt az értéket meg lehet esetleg növelni körülményesebb extra kódok hozzáadása nélkül?
Előre is köszönöm a segítőkész válaszokat! :)
Kiegészíteném még pár dologgal:
Először is elnézést, ugyanis lemaradt egy lényeges fájl, amiről elfeletkeztem, hogy a fordításhoz kellhet, és anélkül nem fordítja bele az EXE-be a fájlmenüt. Úgyhogy gyorsan pótlom : [link]
Másodszor pedig : sikerült megoldanom a kezdeti problémát, a "WS_VSCROLL - WS_HSCROLL" dolog volt az, amire gondoltam! :]
Úgyhogy át is írom úgy a kódot, bár nincs sok változás : [link]
Viszont ha nem gond, emellett felvetődött két másik apróbb dolog is, amiben e helyett kérnék akkor segítséget, ugyanennél a programkódnál:
Elsősorban, még job lenne, ha a "SCROLL"-os dolog mellett lenne >sortördelés" is implementálva. Ehhez sejtésem szerint már több minden kéne, viszont azt nem tudom, hogy hogy lehetne elintézni, hogy az ablakméret alapján autómatikusan új sorban jelenítse (csak megjelenítésről van szó ugye, a fájlban attól még nincs soremelés) meg, ami a jelenlegi ablakméretben már nem férne ki.
A másik, amihez ugye kell a (először lefelejtett, de utólag most feltöltött) "RSRC.RC" fájl : Ugye van egy nagyon egyszerű fájlmenü, amit kb így tudnék leírni:
File-+-
|
+---Open
|
+---Save
Ha nem látszódna jól (elcsúsznának a szóközök) elnézést, de szerintem érthető anélkül is, hogy mire gondolok : van egy 'File' nevű "POPUP" menüelem, amire ha rákattintok, behoz egy kételemű listát, amin van a betöltés és a mentés.
Nos, amit szeretnék, hogy ne legyen ez a 'File' nevű POPUP menüelem, hanem a főablakban egyből fenn legyen EGYMÁS MELLETT egy sávban (szóval nem alatt) az 'Open' és 'Save' MENUITEM-ek, és azok egyből referáljanak (rákattintással természetesen) az IDM_OPEN és IDM_SAVE "konstansokra" - amik természetesen a programkódban vannak scriptelve.
És elnézést, hogy ilyen furcsán, szakszerűtlenül magyarázok, de igazából ezt nem tanultam (mármint MASM-on meg ilyesmiken programozni) és nem is értek hozzá, csak felületesen... remélem azért érthető voltam!(?) :]
"Láttam az előző kérdésed is."
Igen, erre számítottam már akkor, amikor ezt a kérdést kiírtam. És valószínűleg nem csak Te leszel az egyetlen ilyen, mivel ez alatt az ajánlott kérdéseknél rögtön ott van az előző is.
És elárulom, hogy még van jópár olyan kérdésem, amik alapján "beazonosíható" ugyanígy, hogy "aki ezt írta, az írta ezt is".
Különösebben nem zavar, a gépembe való betörés meg nem ezen múlik. Íííííííí.... =]
Azért esetleg majd egy-két mondatban visszaírhatnál privátban, legalább annyit, hogy "oké, eljutott"... :)
"Elárulod, hogy miért jó ASM-ben szövegszerkesztőt kreálni?"
Horrorfilmet mi értelme megnézni? Vagy éppen számítógépes játékkal játszani??!!
- ??? -
SEMMI! Mégis megtesszük sokan számtalanszor a szabadidőnk során.
Tudom, te már gyakorlott programozó vagy, és már "ráálltál" arra, hogy abba fogsz bele, ami praktikus és konkrét haszonnal fog bírni - olyasmit leprogramozni, ami úgymond "tök fölösleg", hülyeség a szemedben, hisz azzal az erővel te normális felhasználói programokat írsz.
De nekem ez még ugyanúgy egy 2 napos poén, mint a Minecraft-al játszani. És nem én vagyok az egyetlen.
"Főleg ha nem értesz hozzá."
>(
No rendben, ebben teljesen igazad van, de akkor ennyivel az ember sohase ülljön le semmilyen PC elé, amíg el nem olvasta ezt-és-ezt-és-ezt a papíralapú könyvet, mert "úgysem ért hozzá".
VAGY, akkor írd meg, hogy honnét szabad tanulni, amit olvasva majd értek hozzá, és mit NEM, ami "piti és csak a bénáknak szól".
:/
Hidd el, böngészek közben én is, és nem csak forráskódokat töltögetek le.
"Nem egyszerűbb egy magas szintű nyelven, amin esetleg tudsz is programozni?"
Mert annak aztán több értelme lenne. !? :-/ !?
Én azért merném azt mondani, hogy magasabb szintű nyelven kicsivel értelmesebb dolgot már meg tudok írni magamnak, ha valami olyasmi kell, ami "robotmunka", és meg tudom 1-2 oldalban írni.
A másik pedig, hogy az egyetlen "normálisnak" mondható nyelv, amin tudok, az a C#, CSAKHOGY erre a gépre, amíről írok (ezt privátban részletesebben leírtam) nem tudom feltenni a fejlesztői környezetet, és nem is fut el (próbáltam már alternatívákkal is). Úgyhogy most ha mindenképpen akarok valami sajátot kifőzni, sajna másba kell belenézzek. =(
És abba kérlek ne menjünk bele, hogy mi miatt is olyan a gépem, amilyen, mert Te nem látsz el idáig, hogy valóban ítélkezni tudnál a helyzetről.
Ezt csak úgy előlegbe mondom, bocs.
Ja, és egyébként ne ijedj meg, ha még esetleg találsz ebben a témában általam feltett és rólam beazonosítható, számodra furcsának ható kérdéseket (márha a moderátorok meghagyják a kérdést/kérdéseket, és nem törlik), és amiatt a továbbiakban kérlek szépen (tényleg csak "barátilag" kérem), hogy ilyesmi miatt, hogy ez az én kérdésem, meg mi az értelme, ne kommentelj, mert annak szvsz. tényleg nincs értelme, és mások ugyanúgy észre fogják venni, hogy valószínűleg ezt-és-ezt a kérdést is "ugyanaz írta ki".
Köszönöm előre is! =D
Fölösleges ez a rizsa amit itt tolsz.
Olyan ez az egész, mintha egy vak ülne volán mögé és hajtana a forgalomba, majd kiabálna ki az ablakon, hogy most balra tekerjem a kormányt vagy jobbra?
Az, hogy olyan dolgot próbálsz meg, ami nem hatékony és nehézkes, az egy dolog, magánügy, persze attól még hülyeség.
De az, hogy nem is érted a kódot csak bökdösöd egy darab fával miközben mástól várod a segítséget, na az gáz és idegesítő.
Ha ilyesmi érdekel kezd az alapokkal és ne akarj rögtön szarból várat építeni, mert úgysem fog menni, ráadásul közben az arra járók orrát is facsarni fogja a bűz, amiért nem lesz mindenki hálás.
Nem vagy te egy kicsit paranoid? Csak mert azt írtam, hogy láttam az előző kérdésed miért kell itt összeesküvés elméleteket gyártani? Eh...
Nem mondom, hogy gond, ha ASM-ben programozol, csak akkor ne itt kezdd. Egyetlen programozási nyelvet, egyetlen technológiát se a haladó oldalon kell kezdeni. Szépen lépésről lépésre kell ezt is megtanulni. Keress olyan példakódot amit ki tudsz elemezni úgy, hogy mindent érts benne és onnan lehet továbblépni.
Nos, ahogy azt privátban is javasoltam, még az előző kérdés kapcsán, jobb ötlet volna hanyagolnod a Win32 API -t és a bonyolultabb programok írását, amíg nem mozogsz otthonosan ASM -ben. A hármat tökegyszerre nemigen fogod tudni megtanulni.
Kezdd az Assemblyvel, ajánlottam hozzá egy eléggé jó könyvet (i8086). Szükséged lesz hozzá, persze, valami DOSBox -ra, vagy hasonlóra, de ez nem hiszem, hogy gondot jelent. Ha már tisztességesen megyeget, akkor rá lehet ugrani a 386 Assemblyjére, ami 32 bites; némi logikával viszonylag gyorsan át lehet szokni.
Ha ez is megvan, akkor lehet elkezdeni nézegetni a Win32 API -t, HelloWorld -öket próbálgatni, aztán haladni az egyre bonyolultabb felé. Érdemes már a legegyszerűbbeknél is gyakorolni a magasabb szintű nyelvekből átvett "best practice" -eket (pl. IoC, MVC/MVP, SoC, stb.) is, hogy később jól tudj bánni a bonyolult állatokkal is (és ne írj olyan förmedvényeket, mint az általad linkelt példában látható ocsmányság) - ehhez viszont érteni kell az ASM és a high level közti összefüggéseket, calling conventionöket, stb.
"De az, hogy nem is érted a kódot csak bökdösöd egy darab fával miközben mástól várod a segítséget, na az gáz és idegesítő.
Ha ilyesmi érdekel kezd az alapokkal és ne akarj rögtön szarból várat építeni, mert úgysem fog menni, ráadásul közben az arra járók orrát is facsarni fogja a bűz, amiért nem lesz mindenki hálás."
Blah, mert aztán Te "nagyon helyén látod itt most a dolgokat", minthogy amit írtam, annyi is van a háttérben...
Igen, bizonyos dolgokban helyén látod a dolgot, minthogy nem tanultam Assembly-t, mint más az irodalomtörténetet... de én is azért kétségbe vonnám a mindenhez értésedet, amilyen hangnemben írsz.
Szarból várat építeni... @ nélkül, hmmm... DE AKKOR MÁR ESSEN LE AZ ORROD, amikor a 128-adik sorbarendezéses kérdésre 6 tucat komment fut be, meg amikor az assembly-ről tesznek fel ITT sokkal-sokkal alapvetőbb, Wiki-s első bekezdésekben fellelhető dolgokat.
De Te mégis erre jársz, és itt facsartatod az orrod...
...bár mit is próbálok itt önvédőbeszédbe bocsátkozni egy 100%-os kommentel...
...DE ha én ~netalántán mégis~ 3 napon belül meg fogom oldani AZ ITT írt saját magam kérdezte dolgot bármilyen fórumos segítség nélkül, istenbizony privátban fogok nálad harakirizni!!! >(
#3: pont hogy nem gyártottam összeesküvés-elméleteket, csak higadt hangnemben reagáltam. Mint mondtam is, tudom, és nem zavar, hogy sokszor észrevehető a kérdéseimen a hasonlóság, de éppen ezért fölösleges is erről kommentelni
De rendben, teljességgel elismerem, hogy igazatok van abban, hogy először máshol kéne kezdenem a tanulást!
Akkor inkább - legalábbis ezen az oldalon - nem kérdezek több ilyen dolgot.
Békét mindenkitől és mindenkinek! :]
Azért remélem már nem fognak többet szidni egyetlen "ocsmány" kód miatt. Vannak ennél ocsmányabbak is, itt is, és tesznek fel butább kérdéseket is, amihez még ennyi "rendreutasítást" sem írnak a kommentelők.
PEACE!
És egyébként a kód 98%-részt PÉLDAkód, amit tanuláshoz írt(ak) elvileg hozzáértő(k), ahhoz képest, hogy mennyire szídjátok.
Vagy egy paraméter átírásától máris annyira elromlana?
Jó, oké, van ahhol elromlik, de ott vagy nem fut le a kód, vagy egyáltalán nem azt csinálja...
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!