Hirdetés
- Xiaomi 15T Pro - a téma nincs lezárva
- MIUI / HyperOS topik
- Motorola Edge 60 Fusion - nem csak a forma időtálló
- Milyen okostelefont vegyek?
- Samsung Galaxy Note20 Ultra - a tollnak nincs ellenfele
- iPhone topik
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Samsung Galaxy Z Fold6 - ugyanaz, sarkosan fogalmazva
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Xiaomi 14T - nem baj, hogy nem Pro
-
Mobilarena

Új hozzászólás Aktív témák
-
-
sghc_toma
senior tag
válasz
VladimirR
#3769
üzenetére
hmm, azt hiszem, az elozo hsz-edben felreertettem valamit: most akkor ha masolod a user32.dll-t, akkor az egermozgatas is megy? ha igy van, akkor a hsz-em DirectInput-os resze nyilvan tokfoloslegesen van ott

nem hagyott nyugodni a dolog, keresgeltem.. talaltam neten egy listat a GG altal hook-olt API-krol.. ezek kozt ott van ugye a SendMessage es a PostMessage, de nincs koztuk a PostThreadMessage es a SendNotifyMessage.. elkepzelheto, hogy ez a ket API hasznalja a masik kettot, es akkor ugyanugy nem mukodnek, de egy probat meger szerintem..
PostThreadMessage kicsit problemas, mert nem tudod, melyik szalnak kell kuldeni az uzenetet.. erre csunya, de valoszinuleg mukodo megoldas, ha felsoroltatod az osszes szalat, es mindnek kikuldod:DWORD pid;
GetWindowThreadProcessId(hWnd, &pid);
HANDLE hThreadSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, pid);
if (hThreadSnapShot != INVALID_HANDLE_VALUE)
{
THREADENTRY32 te;
te.dwSize = sizeof(THREADENTRY32);
if (Thread32First(hThreadSnapShot, &te))
{
do
{
if (te.th32OwnerProcessID == pid)
{
PostThreadMessage(te.th32ThreadID, WM_KEYDOWN, VK_RIGHT, 0);
}
} while(Thread32Next(hThreadSnapShot, &te));
}
CloseHandle(hThreadSnapShot);
}btw, milyen jatek? a kedd vizsga utani resze pihi, lehet ranezek..
-
sghc_toma
senior tag
válasz
VladimirR
#3766
üzenetére
nincs mit, orulok, hogy sikerult megoldani..
par eve egy havernak monyakoltam ossze X3-hoz valami kis cheat-et, ahhoz a keybd_event, es a mouse_event API-kat hasznaltam.. azota ezeket felvaltotta a SendInput.. ezeket meg lehetne probalni, bar vegso soron ok is csak uzeneteket pakolnak a message queue-ba..
az altalad probaltakon kivul mas egeresemeny, ami mozgast vagy klikket jelez, nincsen.. (illetve vannak a nonclient valtozatok, de az most nem jatszik)
a gaz az, hogy siman elkezelheto, hogy az alkalmazas mondjuk DirectInput-on keresztul kezeli le a bill/eger esemenyeket*, es akkor nem sokra mesz a SendMessage/PostMessage fv.-ekkel..
a sajat user32.dll trukk tetszik
nem ismerem a GameGuard-ot, de ennel egyszerubb anti-hook megoldast nem tudok elkepzelni..esetleg meg megoldas lehet a megfelelo DirectX API fv-ek hook-olasa (szerintem Detours-szal megoldhato), de annak kideritese, hogy miket kene hook-olni, eleg korulmenyes..
ha meg eszembe jut valami esetleg, irok...
* illetve bill-t ebben az esetben nem, hiszen mukodik a SendMessage...
-
sghc_toma
senior tag
válasz
VladimirR
#3764
üzenetére
ehh, en meg nem vettem figyelembe, hogy GG vedi a cuccot.. rakerestem gyorsan, valoban hook-olja a GetPixel-t.. az, hogy XP-n mukodik, bug-nak nez ki; sajnos kedden numanal zh, nincs tul sok idom, pedig szivesen beleneznek a lelkebe a draganak..
GetBitmapBits ha jol emlekszem deprecated, bar az teny, hogy joval baratsagosabbnak nez ki (2 - vagy 3?, nem emlekszem - argumentum vs sok), mint a GetDIBBits..
RFC 1149 implementacio: no comment
-
sghc_toma
senior tag
válasz
VladimirR
#3762
üzenetére
ok, azt hittem, valahogy CreateDC-vel csinaltad CreateCompatibleDC helyett.. mukodnie kene, nem vagom, miert hasal el a GetPixel..
esetleg megprobalhatod a GetDIBBits fv-t..// off: ez az RFC 1149 nagyon allat

-
sghc_toma
senior tag
válasz
VladimirR
#3759
üzenetére
a kerdesedre nem tudok valaszolni, szerintem meg sose hasznaltam a CreateDC-t.. ha egy ablak kepet kell blittelni egy memo-ban levo DC-be, azt igy szokas csinalni, esetleg probald ki, hatha jo lesz:
HDC hdcWnd = GetWindowDC(hWnd); // or GetDC to get a DC for just the client area
HDC hdcMem = CreateCompatibleDC(hdcWnd);
HBITMAP hBmp = CreateCompatibleBitmap(hdcWnd, w, h);
HBTIMAP hOldBmp = (HBITMAP)SelectObject(hdcMem, hBmp);
BitBlt(hdcMem, 0, 0, w, h, hdcWnd, 0, 0, SRCCOPY);
// ...
SelectObject(hdcMem, hOldBmp);
DeleteObject(hBmp);
DeleteDC(hdcMem);
ReleaseDC(hWnd, hdcWnd); -
ArchElf
addikt
-
vamzi
senior tag
válasz
VladimirR
#2536
üzenetére
Köszönöm ezt a remek választ.Sikerült is megcsinálnom.Én addig jutottam el,h meghívtam a MATHCVT unitot.csak nem tudtam h hogy is lássam el paraméterekkel.De A válaszod alapján már sikerült a megoldás.Köszönöm szépen.

Már csak annyi a dolgom, h az unitbol a fv-t átültetem a saját forráskódomba, h ne jőjjön rá a tanár, h netröl van
Még 1X köszi.hello. -
c4-eXp
aktív tag
válasz
VladimirR
#710
üzenetére
Egyébként nem értesz véletlenül opengl és windows programozáshoz?

Mert még azt szeretném megtudni, hogyha dev c++ban csinálok egy new opengl projectet, akkor azon belül hol kell átírni a cuccot, hogy ne rendes fejléces window legyen, hanem popup window? Erre azért lenne szükség, mert normális ablaknál, ahol van fejléc, a hülye winfos beleszámolja a fejlécet is a koordinátákba. Ezért kéne átváltani popup windowra, mert ott nincs fejléc. -
ar
tag
válasz
VladimirR
#651
üzenetére
Elso korben annyit latok, hogy te kiirod az EOF (-1) erteket is, amit nem hiszem, hogy akarsz. Masodsorban nem lenne artalmas a Writer.flush() metodusat hivogatni, vagy egyszeruen lezarni a kimeneti folyamot, ha elkeszultel. Harmadsorban nem artana kivetelt is kezelni
.
Valahogy igy csinalnam, a kimenetet helyettesitsd be:
<code>
Reader fin = null;
try {
fin = new FileReader(''filename.txt'');
int c = 0;
while ((c = fin.read()) != -1) {
System.out.println((char) c);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fin != null)
fin.close();
} catch (IOException e) {
e.printStackTracer();
}
}
</code> -
VladimirR
nagyúr
-
ar
tag
válasz
VladimirR
#640
üzenetére
Hello!
java.util.Map
Ugye ez egy interface, szoval az init-re tett kerdesedre adando valasz az, hogy olyan osztaly peldanyat kell letrehozni, ami implementalja ezt az interfacet. A java.util.HashMap az a megvalositas amit altalanosan hasznalunk. Tehat: Map m = new HashMap(); import-okat nem irok ki ha nem baj
. Ha mar php-nel tartunk (aminek a doksija sajnos egy nagy tragyahalom a javadoc-hoz kepest, mar megbocsass
, akkor a Map-et ugy fogd fel, mint egy associacios tomb. Ha bele akarsz valamit rakni, akkor Map.put(Object key, Object value), ha ki akarsz belole szedni valamit akkor Map.get(Object key) : Object ahol a visszateresi ertek null, ha az adott kulcsoz, nincs bejegyzes. A tenyleges bejegyzesekhez a Map.Entry interface hasznalataval tudsz hozzaferni az adott Map.entrySet() : Set meghivasaval. Az Map.Entry.getValue() : Object, setValue(Object) metodusokkal tudok az aktualis bejegyzest modositani. Talan emlitest erdemel meg a Map.containsKey(Object key): boolean, metodusa, de tobb olyan metodus van ami a java.util.Collection-ben is megtalalhato. De figyelj oda, hogy a Map != Collection! Ja, a Map kulcs nelkuli ertekhalmazat (Collection view) a Map.values() : Set (?) metodussal tudod elkerni.
A java.util.Map-nek van egy leszarmazott (kiterjeszett) interface-e, a java.util.SortedMap, amiben a KULCSOK szerint rendezve vannak a Map.Entry-elemek. A HashMap csak java.util.Map megvalositas, tehat ott nem garantalt a kulcs sorrend, de a SortedMap megvalositasa a java.util.TreeMap mar ugye ertelem szeruen garantalja a kulcs sorrendet (natural order illetve Comparator, ha jol tevedek). Hasznos a subMap(Object fromKey, Object toKey) : SortedMap vagy hasonlo metodusa (ha van egyaltalan neki, a SortedSet tudja ezt
, amivel a kulcsok sorrendje alapjan, reszhalmazat kerheted le a kulcs-ertek parjainak.
Tehat:
Map m = new HashMap();
m.put(new Integer(0), ''A'');
m.put(new Integer(1), ''B'');
m.containsKey(new Integer(0)) // true
m.containsKey(''A''); // false
for (Iterator i = m.keySet().iterator(); i.hasNext; ) {
Object key = i.next();
System.out.println(m.get(key));
}
vagy
for (Iterator i = m.entrySet().iterator(); i.hasNext(); ) {
Map.Entry entry = (Map.Entry) i.next();
System.out.println(entry.getKey() + '' -> '' + entry.getValue());
}
Eleg ertheto voltam?
-
Spyx
tag
válasz
VladimirR
#640
üzenetére
Bővebben: link
Ezen a linken az API-t éred el. a jobb alsó listában megkeresed a map -et és ott van a documentációja. szerintem elég érthető. ha már megtaláltad ezt akkor sry -
Spyx
tag
válasz
VladimirR
#637
üzenetére
Mennyire sűrgős??
Mert tudok dobni jbuildert annak full jó a helpje
biztos ki tudnád nézni belőle
mindjárt dobok egy példafile-t a mailedre. nem ragozza túl de kezdetnek nem rossz.
mit mondassz a jbuilderre. mail megy
<szerk> a jbuilder holnap esetleg szeged??
[Szerkesztve] -
KPepe
senior tag
válasz
VladimirR
#578
üzenetére
köszi
ha jól értelmezem, akkor kívülről nem férek hozzá a private függvényekhez?
Még valami: akkor hogy lehet pl. a főprogramból érték átadással private osztályban lévő fügvényekkel dolgozni? Tehát a főprogramban megadott értékekkel hogy lehet számolni az alábbi osztályban?
class szamol
{
int s1,s2,x;
void szoroz(int a, int b)
{
s1=a; s2=b; x=a*b;
}
void listaz()
{
cout<<s1<<'', ''<<s2<<'', szorzat:''<<x<<endl;
}
}; -
Drizzt
nagyúr
válasz
VladimirR
#546
üzenetére
Azt hiszem, hogy nem erről van szó. A példaprogramban is van egy dolog, de ott a komplex osztályhoz van túltöltve az operátor, de szintén két argumentummal. Igaz ott a ''!='' operátorról van szó. A fordítóprogram meg a programblokk belsejében sípol, nem a függvény fejénél, s külön-külön panaszkodik a leftoperand, illetve rightoperand-ra.
-
Miracle
senior tag
válasz
VladimirR
#374
üzenetére
''igen, tudom, hogy mi van mogotte, ezert is irtam, hogy mindig 1-et ad vissza ----> mindig az int(opt)+1 lesz a fuggveny eredmeny, amennyiben az opt nem egesz szam ---- tehat 2.1 eseten is 3-at ad vissza es 2.9 eseten is (legalabbis nalam)''
IIIIGEN, EZT JELENTI A FELSŐ EGÉSZRÉSZ, ERRE VAN MOST SZÜKSÉGÜNK.
[Szerkesztve] -
Miracle
senior tag
válasz
VladimirR
#370
üzenetére
de egy ?: operátor van mögötte. ez egy feltétel. a bool visszatérési értékét használom. amúgy igen, lehetne így is:
int leptetes = int(opt) + (double(int(opt)) < opt);
ez is tökéletesen működne, de kevéssé magátó értetődő, és ez inkávv egy ,,c''-s megoldás, nem szép dolog c++ban ilyet hagyni. nem szeretik a c++ programozók. és én sem, mert nem szép.
''es a ++b a makromnak valoban nem tesz jot neki, most neztem ()
de a te megoldasod nalam folyamatosan felfele kerekit''
óh, jháh, doktor zwack, das ist eine Uniqum, az volt a feladat, hogy felfelé kerekítsem, mert nyilván nem kell magyaráznom, hogy a log_2(n) nem mindíg egész, és amikor tört, akkor a keresett érték a felső-egészrész.
[Szerkesztve] -
Miracle
senior tag
válasz
VladimirR
#368
üzenetére
úgy az int(double), mint a static_cast<int>(double) alsó egész-részt vesz. a kód működik.
én g++-t és borland compilert szoktam használni, mind a kettő így csinálja, és bár nem néztem, de a VS is biztosan.
az előbbi (ha másért nem is) azért kerekít felelé, mert egyszerűen eldobja a mantisszát. utóbbi implementációfüggő, de csak az van garantálva, hogy nem csinál hülyeséget, de az kerekíthet bármely irányba.
Ha negatív számokra is számítanánk, akkor lehet, hogy nem működne a kód, de itt nem ez a helyzet. a makrókkal meg vigyázni kell, mert egy ilyen egyszerű kifejezés, mint a round(++b) is megfingatja. -
Cathfaern
nagyúr
válasz
VladimirR
#346
üzenetére
Na most elvileg nekem elég maga a szám, hogy hány lépésből lehet kitalálni.
De úgy döntöttem elszórakozok az egész megírásával, gyakorlásnak nem rossz.
lenne is egy kis gond (csodálkoztam volna is, ha működne rendesen): ezzel mi a gondja?
if (also_korlat+felso_korlat)/2) < szam
also_korlat = (also_korlat+felso_korlat)/2);
else felso_korlat = (also_korlat+felso_korlat)/2;
(ezt írja ki:
error C2143: syntax error : missing ';' before '/'
error C2059: syntax error : ')'
error C2059: syntax error : ')'
error C2181: illegal else without matching if
)
Egyébként MS Visual C++-ban programozok, hogy őszinte legyek a linuxos (szövegszerkesztő + fordító) messze jobban tetszik, de mivel MSVC-ben oktatják, úgy gondoltam kitanulom a f@szságait, hogy ne legyen ebből gond. -
Cathfaern
nagyúr
válasz
VladimirR
#334
üzenetére
Kösz.
Másik probléma:
Van egy adott szám és egy adott intervallum. Azt kéne meghatározni, hogy legoptimálisabb esetben hány próbálkozásból lehet ezt a számot biztosan kitalálni. Az elvet tudom: vesszük az intervallumot, elfelezzük. Utána megnézzük, hogy melyik fél intervallumban van a szám. Aztán azt továbbfelezem, majd megint megnézem hol van...stb. De akárhogy próbálkozok, ezt nem tudom lekódolni
Már ott elakadok, hogy a mit adjak meg feltételnek, hogy meddig menjen a ciklus 
(tudom, ez nagyon alap dolog, de még csak most kezdtem programozni) -
Szenty
tag
válasz
VladimirR
#286
üzenetére
(Hali, idézek Neked 1 könyvből...)
XML - Kiterjeszthető Leíró Nyelv (Extensible MArkup Language).
Az XML az SGML (Standart Generalized Markup LAnguage) utódja, és a HTML testvére, amely mellesleg szintén egy SGML alapú leíró nyelv.
Az XML előtt sokat vitatkoztak azon, hogyan kellene az adatokat megosztani. Az olyan egyszerű formátumok, mint a vessdzővel eválasztott változók (Comma Seperated Variable, CSV) eygszerű és ahtékony módját jelentették az adatátvitelnek, de fileonként csupán kb. egy adatbázis-táblázatnak megfelelő mennyiségű adatot tudtak átvinni. Struktúrált adatok továbbításához, mint amilyen mondjuk gy egész adatbázis, vagy egyy teljes dokumentum, rengeteg CSV-féjl bonyolult rendszerére volt szükség. S hogy a dolog még tovább bonyolódjon, négányan nem értették meg a vessző használatát a CSV-ben, és ehlyette inkább tabulátorokat használtak. [...]
Az XML enyhít a problémákon azzal, hogy egyetlen közös fájlstruktúrát teremt meg. Ez a szerkezet lefedi azt, amit a CSV-fájlnak kellett volna, nem enged meg olyan önkényes változtatásokat, mint például a vesszők tabulátorokra cserélése, és elfogadja a hagyományos táblázat tipusú és a kevésbé szabványos, dokument tipusú struktúrát is.
Mit csinál az XML?
--------------------------
Az XML úgy struktúrálja az adatokat, hogy az egyes adatelemeket tag-ekkel választja el egymástól. a tag-ek segítségégvel lehetőségünk van arra, hogy hosszú , értelmes nevekkel lássunk el minden adatelemet, de rövid kódolt tag-eket is használhatunk a jobb helykihasználás érdekében. A tag-eknek lehetnek jellemző paraméterei, és a fájlnak lehet egy átfogó szerkezet-definíciója, az úgynevetett Dokument Tipusú Definíció (DTD) vagy egy külső DTD-re való bivatkozása a Dokument Típusú Deklaráció. A deklaráció egy definíciót tertalmazó külső fájlt nevez meg, s az a definíció határozza meg a fájlstruktúrát.
Remélem, ez segített
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Tag Heuer Carrera Chronograph Extreme Sport férfi karóra CBU2081.FT6274 (CBU2081-FT6274)
- Honor X6a 128GB, Kártyafüggetlen, 1 Év Garanciával
- Macbook Air M3 / 8GB / 512GB SSD / Space Grey / Gari: 2027.10.07
- Jbl Partybox 1000 (Alig használt, legjobb áron)
- Seasonic VERTEX PX-1000 1000W 80 PLUS Platinum - Alza 12 év garancia 2036.12.21.
- HOWEAR HW ULTRA 3 Call okosóra
- Xiaomi Poci F4 Gt 128GB,Átlagos,Adatkabel, 12 hónap garanciával
- Azonnali készpénzes Sony Playstation 4 Slim / PS4 Pro felvásárlás személyesen/csomagküldéssel
- Samsung Galaxy S24 FE 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! 64GB(2x32GB) Kingston Fury Beast 3200MHz DDR4 memória garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



![;]](http://cdn.rios.hu/dl/s/v1.gif)







Már ott elakadok, hogy a mit adjak meg feltételnek, hogy meddig menjen a ciklus 



