-
Fototrend
Ú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ódolniMá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!
- Építő/felújító topik
- Megérkezett a Google Pixel 7 és 7 Pro
- Milyen belső merevlemezt vegyek?
- Hitelkártyák használata, hitelkártya visszatérítés
- Milyen billentyűzetet vegyek?
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Call of Duty: Black Ops 6
- Milyen videókártyát?
- Router gondok
- Otthoni hálózat és internet megosztás
- További aktív témák...
- ROG Maximus Z790 Dark Hero
- Új MSI KATANA 17 Gamer Tervező Laptop 17,3" -35% i7-13620H 10Mag 16/1TB RTX 4060 8GB FHD 144Hz
- Apple Iphone 13 128gb csillagfény színű OLCSÓN . Csere/beszámítás
- OnePlus Pad 2 + OnePlus Pad 2 billentyűzet + Extrák
- AKCIÓ!!! GAMER PC: Új i5-14400F +RTX 4060/5060/4070/5070 +Új 16-64GB DDR4! GAR/SZÁMLA! 50 FÉLE HÁZ!
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max/
- ROBUX ÁRON ALUL - VÁSÁROLJ ROBLOX ROBUXOT MÉG MA, ELKÉPESZTŐ KEDVEZMÉNNYEL (Bármilyen platformra)
- Apple Macbook Pro 13 2020 - M1 - 8GB/256GB SSD - Touch Bar - 102 Ciklus - 99% Akku - Ezüst - MAGYAR
- LG 55B4 - 55" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready
- AKCIÓ! MSI B450M R7 5700X 16GB DDR4 512GB SSD RX 5700 XT 8GB Rampage SHIVA Zalman 600W
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest