- iPhone topik
- Android alkalmazások - szoftver kibeszélő topik
- Profi EKG-s óra lett a Watch Fitből
- Honor 400 Pro - gép a képben
- Samsung Galaxy S21 és S21+ - húszra akartak lapot húzni
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Samsung Galaxy A54 - türelemjáték
- Milyen okostelefont vegyek?
- Telekom mobilszolgáltatások
- Apple iPhone 16 Pro - rutinvizsga
-
Mobilarena
Új hozzászólás Aktív témák
-
dqdb
nagyúr
Custom collection initializer kell neked.
-
dqdb
nagyúr
válasz
btraven #20447 üzenetére
Tegyél felirat nélküli kupakokat a billentyűzetre, lehetőleg olyat, amin van homing jelölés, azaz F és J páros kissé eltér formára. Mivel folyamatosan rá leszel kényszerítve a vakon gépelésre, így meglepően hamar ki fog alakulni az izommemória a betűk és szimbólumok 90%-hoz, a maradék 10% pedig majd jön idővel.
Ha magyar oktatóoldalt keresnél, akkor klav.hu.
-
dqdb
nagyúr
"C#’s type system is unified such that a value of any type can be treated as an object. Every type in C# directly or indirectly derives from the object class type, and object is the ultimate base class of all types. Values of reference types are treated as objects simply by viewing the values as type object. Values of value types are treated as objects by performing boxing and unboxing operations (§8.3.13)."
Lehet, hogy szólni kellene a Microsoftnak, hogy hibás a C# nyelv specifikációja, mert random nickek az interneten jobban értenek hozá
-
dqdb
nagyúr
válasz
disy68 #19258 üzenetére
Kivéve, ha LastPassnak hívják, mert ott csak a jelszavak voltak így titkosítva, a metaadatok, amelyek legalább olyan fontosak lehetnek, nem, persze erről semmi értelmes dokumentáció nem állt rendelkezésre. Ha pedig bejutottak egy ilyen helyre, akkor a 2FA nem nyújt extra védelmet a fájlok ellopása esetében (távoli elérésnél persze igen).
A két kategória között jó átmenetet képvisel egy self-hosted Vaultwarden például.
-
dqdb
nagyúr
-
dqdb
nagyúr
A WSL kényelmesebb, és bőven elegendő, ha nincsen szükséged hardveres dolgokra. VSCode + remote development, vagy ha multiplatform dologról van szó és CMake alapú a build folyamat, akkor annak VS-ben eléggé jó a támogatása.
A WSLg jóvoltából már nem vagy konzolra sem korlátozva.
-
dqdb
nagyúr
Tehát nincs teljesítményveszteség, stb.
Ahol teljesítményvesztés van, az az eset, amikor WSL alól a Windows fájlrendszerét éred el. Gyorsítottak rajta valamennyit az idők során, de még mindig nem az igazi. WSL-ben érdemes a virtualizált Linux ext4 fájlrendszerét használni, és a /mnt/c típusú eléréseket minimalizálni (vagyis egy Windows alatt checkoutolt repót ne akarj lefordítani /mnt-n keresztül bemappelve, mert tetű lassú lesz, helyette checkoutold ki ext4-re is és gyors lesz, de a végeredmény átmásolására már tökéletes). -
dqdb
nagyúr
A .NET Framework SDK sem része a rendszernek, a .NET Framework runtime igen, mert rendszerkomponensek épülnek rá.
A .NET a Windowstól függetlenül fejlődik, teljesen más kiadási gyakorisággal, értelmetlen lenne beletenni a telepítőbe a runtime-ot. A Microsoftnál inkább az ellenkezője figyelhető meg mostanában, nem betesznek, hanem kivesznek olyan komponenseket, amelyeknek alapvetően eltér a kiadási ciklusa a Windowsétól (gyorsabb), és külön telepíthetővé teszik ezeket, a WSL most kerül majd ki és lesz Microsoft Store-ból telepíthető.
-
dqdb
nagyúr
válasz
pmonitor #18151 üzenetére
Ezért és a hasonlók miatt használ az a fejlesztői angol nyelvű operációs rendszert magyar regionális beállításokkal, aki nem akar szívni a lokalizált/félrefordított hibaüzenetekkel.
A .NET runtime a megjelenítésre beállított nyelven jeleníti meg a hibákat. Saját kódban a
Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
sorral ezt fejbe lehet csapni adott szálon, persze ekkor a szám- és dátumformázások is angolra váltanak.
-
-
dqdb
nagyúr
válasz
pmonitor #17807 üzenetére
void search(wchar_t* sPath, wchar_t* sFileMask, FAJLKERESESEREDMENYE* pFke, char almappae, char mappae, char fajle)
Ha már állandóan az optimalizáláson pörögsz, akkor hol vannak a
const
módosítók azon paraméterek elől, amelyek értékét nem módosítja a kód, és emiatt a compiler optimalizáláskor figyelembe tudja venni?wchar_t* sPath_1 = (wchar_t*)GlobalAlloc(LMEM_FIXED, (wcslen(sPath) + wcslen(sFileMask) + 1) * sizeof(wchar_t));
Először is:
Másodszor az első paraméterben szereplő
LMEM_FIXED
aLocalAlloc
híváshoz tartozó konstans, itt aGMEM_FIXED
konstanst kellene használni.if (sPath_1 == INVALID_HANDLE_VALUE) MessageBox(0, L"memória", L"Üzenet", 0);
A dokumentáció alapján sikertelen foglalás esetében a
GlobalAlloc
visszatérési értékeNULL
, míg azINVALID_HANDLE_VALUE
értéke -1, szóval rossz a hibakezelésnél mind a feltétel, mind a kezelése, hiszen NULL pointerrel továbbengeded a futást.És itt abbahagytam, mert feleslegesnek éreztem folytatni. Az egy pillantásra látszik, hogy tele van a kód buffer overflow aknával.
-
dqdb
nagyúr
válasz
pmonitor #17769 üzenetére
-ss position (input/output)
When used as an input option (before -i), seeks in this input file to position. Note that in most formats it is not possible to seek exactly, so ffmpeg will seek to the closest seek point before position. When transcoding and -accurate_seek is enabled (the default), this extra segment between the seek point and position will be decoded and discarded. When doing stream copy or when -noaccurate_seek is used, it will be preserved.When used as an output option (before an output url), decodes but discards input until the timestamps reach position.
position must be a time duration specification, see (ffmpeg-utils)the Time duration section in the ffmpeg-utils(1) manual.
-t duration (input/output)
When used as an input option (before -i), limit the duration of data read from the input file.When used as an output option (before an output url), stop writing the output after its duration reaches duration.
duration must be a time duration specification, see (ffmpeg-utils)the Time duration section in the ffmpeg-utils(1) manual.
-to and -t are mutually exclusive and -t has priority.
-to position (input/output)
Stop writing the output or reading the input at position. position must be a time duration specification, see (ffmpeg-utils)the Time duration section in the ffmpeg-utils(1) manual.-to and -t are mutually exclusive and -t has priority.
-
dqdb
nagyúr
válasz
fatal` #17733 üzenetére
Az SSH része a windowsnak egy ideje.
Ahogyan a curl is, szóval igazad van, mondjuk egy OpenSSL jobb példa lett volna.SSH miatt egy komplett linux alrendszert feltenni szerintem hulla felesleges.
Egyetlen alkalmazásért tényleg felesleges lenne, de arra akartam rávilágítani, hogy ha már úgyis ott van a fejlesztőknek szánt Linux alrendszer a Windowsba integrálva, akkor érdemes azt használni, amikor előnyöket nyújt. Mondanám ezt, hogy biztosan azért érzem így, mert egyes tooljaink mindkét platformon futnak, így egyszerűbb VS + CMake párossal egy helyen fejleszteni, de előbb használtam WSL-t, minthogy a Linux bejött volna célplatformként, és előtte pedig a Cygwin-MinGW párost sok-sok éven át.Fejlesztéshez oké, de én sem látom mi értelme lenne mondjuk egy total commandert vagy egy bármilyen más sima desktop appot telepítő helyett konténerből futtatni.
Egy mindennap használt desktop alkalmazást szerintem sem lenne értelme így futtatni, azt fel kell telepíteni vagy natívan Windowsra, vagy WSL/WSLg alá, és használni. De egy háttérben futó szolgáltatás mehet konténerből, vagy egy olyan desktop alkalmazás, amit néhanapján se használ az ember, annak a linuxos változata mehet konténerből, amikor szükség van rá, és aztán használat után eldobod a konténert. -
dqdb
nagyúr
Lokálisan nem látom előnyét egy dockernak
Én igen, fejlesztői gépen adatbázist, MQ-t és hasonló middleware-eket már csak konténerben futtatok. Van egy alap compose fájl az ilyen szolgáltatásokkal a mindennapi fejlesztéshez, és eseti dolgokhoz még egy adag. Így ha például fejlesztés közben kíváncsi vagyok, hogy clusterben hogyan viselkedik adott MQ, akkor leállítom az alap telepítést, el elindítok egy clusteres változatot arra az időre.Így fut nálam Windowson az MSSQL linuxos változata.
-
dqdb
nagyúr
válasz
pmonitor #17715 üzenetére
Csak kicsomagolod és használod. Nem is értem, hogy miért kell minden kis alkalmazást telepítgetni.
A csomagkezelők és konténerek korszakában a portable alkalmazások jelentősége erőteljesen csökkent. Ki akar manapság netes kereséssel, letöltéssel, megfelelő helyre kicsomagolással bajlódni, amikor egyetlen paranccsal felmegy az egész csomagkezelőből töredék idő alatt. -
dqdb
nagyúr
válasz
gordonfreemN #17665 üzenetére
Ahogyan a múltkor is írtam, ehhez logika kell, ami a puszta szöveg mellett a koordinátákból is dolgozik, mert egy PDF-ben tipikusan csak összevissza helyeken szereplő betűk vannak, amit heurisztika képes szavakká összefűzni, de ahhoz még több heurisztika kell, hogy ebből táblázatos adat legyen, amivel dolgozni tudsz.
A PDF-ek adattartalma nincsen véletlenül csatolmányként bedobva valami könnyen feldolgozható formátumban a dokumentumba? Vagy ha nincsen, akkor a PDF-et gyártó oldal nem tudja nektek más formátumban is átadni az adatokat?
-
dqdb
nagyúr
válasz
dabadab #17617 üzenetére
Sajnos (vagy szerencsére) nem tudom. Szinte kivétel nélkül generált PDF-ekkel kerültem kapcsolatba olyankor, amikor a belsejükből ki kellett valamit nyerni, és azoknál már sokszor az is csodaszámba megy, ha nem sértik meg a szabványt úgy, hogy az egyes szoftverekben megjelenítési/működési problémát okoz. Olyan úri huncutság, mint ligatúra, ezeknél elképzelhetetlen
Maga a szabvány pedig egy akkora massza a maga 800+ oldalával, hogy csak azokat a részeket néztem meg alaposan eddig, amelyekre tényleg szükség volt, és a renderelés nem ez a terület, így arról az oldalról sem ismerem ezt a témát.
Ha tudsz linkelni olyan dokumentumot, amiben van, akkor rá tudok gyorsan nézni, ez egy eléggé hasznos kis tool a dokumentum szétszedéséhez, aztán már csak az opcode-okat kell nézegetni.
-
dqdb
nagyúr
válasz
gordonfreemN #17612 üzenetére
Rövid válasz: éppen az általad is bedobott a PDF to Excel szoftvereket akartam ajánlani, mint egyszerű megoldás, hátha akad belőlük olyan, ami tökéletesen kezeli ezek a táblázatokat.
Hosszú válasz: nem megoldhatatlan, de nem is egyszerű dolog, mert a PDF egy konzisztens megjelenítésre optimalizált formátum, és nem az adatok hordozására/módosítására.
Legextrémebb esetben a szövegek nem is szövegként vannak eltárolva, hanem maguk a betűk vektorosan görbékként kerülnek be a fájlba, és ilyenkor OCR kell a szöveg kinyeréséhez. Ez szerencsére ritka, általában szépen formázott kiadványok esetében fordul csak elő.
Leggyakrabban a szövegek szövegként kerülnek bele a dokumentumba (adatokból sablon segítségével generált dokumentumoknál más megoldást még nem láttam), de a helyzet ennél bonyolultabb, mert nem bekezdésenként vagy szavanként egyben, hanem betűnként külön-külön saját pozícióval. Azaz például az alma szó a, l, m és a betűként* szerepelnek, ahol mindegyik betűhöz tartozik egy koordináta. A PDF megjelenítők vagy az általad igényelt text extractor megoldások pedig valamilyen heurisztikát használva kitalálják, hogy ezek a betűk elég közel vannak egymáshoz a használt betűtípus metrikái alapján, függőlegesen sem nagyon lógnak ki, így valószínűleg egy szót alkotnak. Aztán a szavakat hasonló heurisztika mentén bekezdésekké lehet összefűzni,
A PDF libraryk közül szinte mindegyik kínál valamilyen fajta text extractor megoldást, jobban az iTextet ismerem, ott van egy általános implementáció, amelynek átadhatod paraméterként a helyzetnek megfelelő heurisztikát vagy használhatod a gyárilag beépítettek egyikét. A képen látható dokumentum formátuma eléggé szabályosnak tűnik ahhoz, hogy saját heurisztika nélkül, pusztán az alapértelmezett segítségével kinyert szöveget elég legyen feldolgozni, vagy ha ez mégsem jön össze, akkor ki tudod használni a táblázatjelleget, és pusztán a szövegek pozíciója alapján be tudod lőni, melyik cellában voltak.
* Láttam már olyan generált dokumentumot, ahol tényleges szavak voltak, de ez ritka és a szabvány oldaláról ellenjavallott.
-
dqdb
nagyúr
Időben és pénzben valószínűleg az itt javasolt megoldással hoznád ki a legolcsóbban, ha USB-s eszközt lehet csatlakoztatni a géphez. Ha nem, akkor úgy is be fogsz szaladni a sűrűjébe, ha előtte útba igazítanak.
Még Windows 7 alatt ötleteltem egy virtuális storage driverről, aztán nagyon gyorsan beszaladtam a sűrűjébe, és hosszú szívás után félre is tettem évekre a dolgot. 2-3 éve vettem elő ismét, és már könnyített terepen (Dokant használva user space-ben) összedobtam a dolgot, hogy hátradőljek, hogy készen van végre és azóta se használjam.
-
dqdb
nagyúr
válasz
bandi0000 #17402 üzenetére
Ha pl olyan oprenszeren akarnánk futtatni (Elvben nincs ilyen, de ki tudja), ami nagyon régi, és nem támogatná a .Net 6-ot, ott milyen lehetőségek lennének, valami ilyesmire találták ki a Dockert nem?
Amelyik operációs rendszer olyan régi, hogy nem telepíthető rá a .NET 6, akkor az valószínűleg olyan öreg, hogy Dockert sem lehet rátenni (Windows esetében biztosan ez az eset).Azon is gondolkodunk, hogy ezt a TFS szisztémát lecserélnénk Azure-ra, amit már konkrétan én/mi csinálnák az elejétől, mennyire lehet benyolult egy ilyen szisztémát felépíteni 0 tudással?
Ez erősen függ a konkrét igényektől és a környezettől, amibe bele kell integrálni. Egy nulláról felépített CI/CD pipeline-ba emberhónapokat is bele lehet tolni, de lehet, hogy pár nap alatt ósszedrótozható.Ha nincsen olyan ember a cégnél, aki teljesen átlátja a TFS alapú rendszer működését, akkor előbb legyen, és csak utána szabad gondolkozni a pipeline bármiféle átalakításán. Eléggé kellemetlen tud lenni, ha nem tudtok release-elni egy ideig.
-
dqdb
nagyúr
Azt hiszem, hogy most végre sikerült megértenem az optimalizálás fontosságát. Ha minden programozó atoi-t optimalizálna reggeltől estig, akkor nem maradna ideje egyéb fejlesztésre, így nem készülnének sérülékeny szoftverek sem, mert nem készülnének szoftverek sem.
-
dqdb
nagyúr
válasz
zsolti_20 #17044 üzenetére
Sajnos Visual Stuidoban ezt nem tudom elkészíteni macOS-re
De. Xamarin Forms, vagy az utódjának tekinthető, és hamarosan megjelenő MAUI, amely a .NET platformfüggetlen UI megoldása lesz.Alternatíva lehet JS-ben fejlesztve az Electron (cserébe kapsz egy komplett böngészőnyi bloatware-t a háttérben), C++-ben a Qt is (a maga licencelési nyűgjeivel) és a wxWindows.
-
dqdb
nagyúr
válasz
nevemfel #16813 üzenetére
Vagy amikor az ügyfél hálózatában akkora packet loss van, hogy csak pislogsz. Vagy kötelező direktben használni a naplózó szerverüket helyben futó log collector nélkül, és annak a csapnivaló teljesítménye teszi tönkre a sebességedet.
Ha biztonsági okokból zónákat kell használni, akkor egy-egy ilyen kérés ellenőrzés-belső zónába hívás-válaszra várás-válasz visszaadása kör 100-200 ms-t hozzá tud adni a kiszolgálási időhöz.
-
dqdb
nagyúr
-
dqdb
nagyúr
válasz
pmonitor #16609 üzenetére
C:\Program Files (x86)\Windows Kits\10\Source\10.0.xxx.0\ucrt\convert\xtoa.cpp
Itt meg tudod nézni a forrást, a mappa neve változhat a telepített SDK verziószámának függvényében. Ha másik implementációra is kíváncsi vagy, akkor a glibc-ben lévőt itt találod.A crt, glibc és hasonló alap C libraryk célja nem az, hogy a végtelenségig optimalizálva legyenek sebességre, hanem az, hogy a végtelenségig optimalizálva legyenek stabilitásra, ne tartalmazzanak hibát, működjenek minden támogatott architektúrán és rendszeren, és mindezt lehetőleg jó sebességgel tegyék.
Te nyújtottál egy implementációt x86-ra, míg a Microsoft megoldása x64, ARM32 és ARM64 esetében is működik, a glibc esetében pedig kilométeres a lista.
-
-
dqdb
nagyúr
válasz
pmonitor #16566 üzenetére
A fejlesztőeszköz munkaeszköz, így annyi helyet foglal, amennyit. A VS helyfoglalása amúgy is elveszik az X darab használt middleware, konténer, temp fájlok, checkoutolt Git repó között.
Így viszont hiába van 1 terrás HDD, azt mégsem lehet csak a VS-nek elfoglalnia. Méghozzá azért, mert így is egy közepes erősségű vason is nagyon lassan indul(főleg, ha töredezett a meghajtó).
Az a fejlesztő, aki HDD-re telepíti a VS-t, nagyon utálja magát, és már 10 évvel ezelőtt is nagyon utálta magát. Szerintem relatíve sosem volt még ilyen olcsó egy átlagos fejlesztésre/virtualizálásra kiválóan alkalmas gépet összeállítani az olcsó SSD és sokmagos processzorok korában. -
dqdb
nagyúr
-
dqdb
nagyúr
válasz
pmonitor #16491 üzenetére
Én azt mondom, hogy meglehetősen alacsony a valószínűsége.
Amíg valaminek nullánál nagyobb a valószínűsége, legyen az akármilyen alacsony ε is, addig nem lehet kijelenteni, hogy lehetetlen. Már túl sok meglehetősen alacsony valószínűségű dolgot láttam bekövetkezni ahhoz, hogy azonnal nekiálljak jobb megoldást keresni az ilyeneknél.
-
dqdb
nagyúr
válasz
pmonitor #16487 üzenetére
Ha valami elvileg lehetséges, akkor úgy kell felkészülni, hogy gyakorlatilag be fog következni.
A Microsoft sehol sem dokumentálta, milyen algoritmus szerint osztogatja a handle-öket és PID-eket Windowsban, így olyat, hogy a kicsi valószínűsége, nem lehet kijelenteni és építeni sem lehet arra, hogy kicsi a valószínűsége.
Van, amelyik "kidob", ha a feladatkezelőben "kilövöm" a böngészőt, és valamelyikeknél bejelentkezve maradok.
Session cookie vs persistent cookie, az oldalon múlik, hogy melyiket használja. -
dqdb
nagyúr
válasz
Hege1234 #16395 üzenetére
Hülye kérdés: miért akarsz VBScripttel futtatni egy parancsot, majd ezt betenni az automatikusan induló alkalmazások közé ahelyett, hogy létrehozol egyszerűen egy parancsfájlt a Windows startup mappájába, ami a Z:\trakts mappát használja kiinduló könyvtárnak és direktben meghívja a trakts run parancsot?
-
dqdb
nagyúr
Mindezt akár úgy is, hogy a prebuild step maga is újrafelhasználható, és saját NuGet repóból adod hozzá a projektekhez az ezt tartalmazó csomagot.
Az MSBuild logikát szokni kell, kell az idő, hogy ráérezzél, azonban ha ez megvan, akkor a végletekig testre szabott CI/CD folyamatokat lehet összedobni.
-
dqdb
nagyúr
szerintem a fordítási folyamat nem tudja saját magát felül írni
Már hogyne tudná, az MSBuild eléggé szépen testre szabható, és a sztenderd C# build pipeline-ba is lényegében bárhol be lehet avatkozni. Egy makefile-hoz képest bizonyos helyeken nagyobb szabadságod van egy azoktól teljesen eltérő logika mentén felépített build rendszerben.Ha eleve környezeti változókban vannak a mappák, akkor azokra direktben lehet hivatkozni a .csproj és .targets fájlokban. Ha egy .props fájl a cél, hogy az abban definiált változókat használja a fordítás során, akkor akkor egy sor kell a .csproj elejére, ami importálja a .props fájlt, és kell egy sor a prebuild targetbe, ami hibát dob, ha nem létezik a fájl.
-
dqdb
nagyúr
válasz
pmonitor #16347 üzenetére
Nyilván senki sem, a Microsoft évfordulók miatt hozta nyilvánosságra a kódot. De érted, ők sem egy zipet tettek fel egy random aloldalra, hanem feltolták Githubra.
Ezzel a kettővel ellentétben a FreeDOS használatban van, de úgy nézem, ők sem világosodtak meg, hogy verziókezelőt használnak.
-
dqdb
nagyúr
válasz
pmonitor #16340 üzenetére
hol vannak már az ms-dos verziói?
Öööö .. például verziókezelőben? -
dqdb
nagyúr
válasz
pmonitor #16340 üzenetére
Értem. Vagyis adott egy közepes méretű rendszer 5-10 szolgáltatással, amelyek 60-70 céges libraryt használnak, akkor kiadáskor valaki szépen összemásolgatja ennek a 65-80 komponensnek a forrását egy mappába egy rakás időt elégetve, elteszi és készít róla biztonsági mentést. Aztán ha valamit nyomozni kell, akkor ezt a 65-80 mappát visszamásolod a helyére, felépíted belőle a forrásfát és nekiesel. Logikus.
Hogyan oldod meg, hogy egynél több ember dolgozzon egy rendszeren egyszerre, sokszor ugyanazt a komponenst érintve?
-
dqdb
nagyúr
válasz
pmonitor #16277 üzenetére
Vagyis ugyanazt csinálja, mint a sima másolás, csak a végére teszi.
És miért? Ha az adott szövegfájl forráskódot, listát vagy markdownt tartalmaz, akkor teljesen más működést várnék el ugyanabban a programban egy ilyen funkciótól.Képszerkesztő esetén természetesen folytatólagosan aláteszi a képet a szükséges átméretezésekkel.
Miért természetesen és miért alá? Milyen algoritmussal végzi a szükséges átméretezést?De mégis több választás lenne ezekkel a funkciókkal, még ha programonként eltérő értelmezés lenne is.
Miért lenne ettől több választási lehetősége? Kapna egy, az adott programban a fejlesztő által önkényesen kiválasztott működést, amit amúgy is el tudna érni egy másolás-beillesztés funkciókkal egy másik ablakban/fülön. -
dqdb
nagyúr
válasz
pmonitor #16275 üzenetére
A másolás-kivágás-beillesztés ritka kivételektől eltekintve egy eléggé egyértelműen értelmezhető művelet. Ehhez képest a te pluszos műveleteid ritka kivételektől eltekintve sokféleképpen értelmezhetőek.
Adott egy notepad szintű szövegszerkesztőben a másolás+:
1. az előzőleg másolt szöveg végére illeszti az új szöveget, vagy
2. ezt egy space-szel elválasztva teszi, vagy
3. ezt soremeléssel elválasztva teszi?Ha az elsőt csinálja, akkor miért azt és nem a harmadikat, mert éppen komplett bekezdéseket fűznék össze? Ha a harmadikat, akkor miért nem a másodikat, mert félmondatokat kevernék? Vagy mi van, ha listát fűznék össze és vesszőt szeretnék a másolt blokkok közé?
Vagy adott egy képszerkesztő program. Kijelölsz egy területet, másolod, eddig könnyű. Kijelölsz egy másik, eltérő méretű területet, másolás+, ekkor mi fog történni? Mellé teszi? És átméretezi közben Alá teszi? És átméretezi közben? Összevonja a kettőt eggyé? És miért azt a blendinget használja, miért nem másikat?
-
dqdb
nagyúr
Így megy
printf
-fel:#include <windows.h>
int main()
{
SetConsoleOutputCP(CP_UTF8);
printf(u8"árvíztűrő tükörfúrógép\n");
const unsigned char text[] =
{
0xC3, 0xA1, 0x72, 0x76, 0xC3, 0xAD, 0x7A, 0x74,
0xC5, 0xB1, 0x72, 0xC5, 0x91, 0x20, 0x74, 0xC3,
0xBC, 0x6B, 0xC3, 0xB6, 0x72, 0x66, 0xC3, 0xBA,
0x72, 0xC3, 0xB3, 0x67, 0xC3, 0xA9, 0x70, 0x00
};
printf((const char *)text);
}dabadab: Tényleg röhely az, amit a MS az UTF-támogatással csinált.
Ezzel nehéz nem egyetérteni, a sajátos WCHAR és W/A implementációval szép káoszt hoztak össze. -
dqdb
nagyúr
Az a legjobb megoldás, ha nem szívatod magad ékezetes betűkkel konzolon.
Ha mégis, akkor a második legjobb megoldás, ha Win32 Console API-t használod erre:
#include <windows.h>
int main()
{
SetConsoleCP(CP_UTF8);
const wchar_t text[] = L"árvíztűrő tükörfúrógép";
DWORD length = (DWORD)wcslen(text);
WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), text, length, &length, NULL);
}Ha mégis ragaszkodnál a
printf
-hez hasonló függvényekhez, akkorwprintf
-re áttérve így:#include <stdio.h>
#include <io.h>
#include <fcntl.h>
int main()
{
_setmode(_fileno(stdout), _O_U16TEXT);
wprintf(L"árvíztűrő tükörfúrógép");
}De ismétlem, a legjobban akkor jársz, ha elfelejted az ékezeteket.
Akármelyik megoldást is választod, az
ő
ésű
csak akkor jelenik meg jól ékezettel, ha nem raszteres font van kiválasztva az adott ablakban. -
dqdb
nagyúr
Úgy, hogy te aláírod. Ehhez kell egy code signing tanúsítvány, amit a SignTool tud majd használni. Az jó kérdés, hogy adott esetben elég-e egy Móricka CA-ból kiállított tanúsítvány, amit a Windows tanúsítványtárába beteszel megbízhatóként, vagy esetleg ragaszkodik a rendszer a gyári fehérlistához, ekkor a NetLock vagy Microsec fog segíteni rajtad sok pénzért hosszú adminisztráció után.
Elméleti háttér itt, ha nem userspace dologról van szó, hanem driver szintűről, akkor kiegészítés itt.
wow-ot hekkeltem
Ne csodálkozz, ha az anticheat megoldásuk banánnal jutalmazza majd a fáradozásaidat. -
dqdb
nagyúr
válasz
Diopapa #16017 üzenetére
Új projektet egy meglévő solutionbe vagy új projektet egy új solutionbe? A kettő nem ugyanaz, ha nem törölted le a solution mappája alatti .vs mappát, akkor annak az elromlott tartalma érintheti az új projekt működését is.
Ha törölted a mappát vagy új solutiont hoztál létre, és így sem megy, akkor lépj ki VS-ből és takarítsd ki a %TEMP% mappát is, hátha oda cache-elt valamit, amit nem kellett volna (például VS2015-nél rendszeresen halt be a Test Explorer és nem találta mega unit testeket, amíg innen nem töröltél ki egy mappát).
Ha egyik sem megy, akkor utolsó lehetőségként repair a VS telepítőben vagy utolsó utáni lehetőségként VS újratelepítés.
-
dqdb
nagyúr
Ha HTTPS kell, akkor ott van a Windowsban a WinHTTP API erre a célra. Ha TLS kell saját protokoll alá, akkor ott van az SChannel API. A windowsos .NET implementáció is ezeket használja legalul.
Persze ha nem tetszik és platformfüggetlen dologra vágysz, akkor ott van a libcurl például.
Természetesen lehet .NET kódot C++-ből használni, de az ágyúval verébre eset lenne HTTP kommunikációhoz.
-
dqdb
nagyúr
-
dqdb
nagyúr
-
dqdb
nagyúr
válasz
#44001536 #15694 üzenetére
Ha nem tölthetem le az adatok egy részét, akkor mire van egy publikus API, ami pont ezt segíti?
Például azért, hogy botot készíts a saját szerveredre/másoknak vagy integáld a Discordot más szolgáltatásokkal (például support bot, aminek DM-et küldve lehet ticketet nyitni vagy webshop integráció részeként a hírlevél automatikusan posztolásra kerül egy csatornában is). Azaz monitorozhatod/lekérdezheted az üzeneteket, hogy az alapján csinálj valamit, de azért nem kérdezhetsz le, hogy eltárold azt, amit megkaptál.Szerintem a Discord keresője önmagában is egész jó, sok funkciót a PH is átvehetne tőlük.
-
dqdb
nagyúr
válasz
pmonitor #15488 üzenetére
Ez teljesen a futtatott alkalmazástól függ.
A legtöbb MDI és MSDI alkalmazás például úgy működik, hogy egy fő folyamat van csak, és nem ablakonként külön egy-egy. Így amikor például egy újabb Wordöt indítasz úgy, hogy az még nem futott, akkor elindul egy új folyamat. Azonban amikor ismét elindítanád úgy, hogy már fut, akkor az az új folyamat szól a már létezőnek, hogy meg kellene nyitni egy újabb dokumentumot, majd kilép.
A másik végletet a Chromium alapú böngészők képviselik, ahol egyetlen futó alkalmazáshoz X+Y folyamat tartozik, ahol X egy fix érték (jellemzően 3-4, mint UI kiszolgálása, hálózati forgalom intézése, bővítmények kiszolgálása) és Y pedig a megnyitott fülek számával és telepített bővítmények számával arányos.
-
dqdb
nagyúr
válasz
instantwater #14924 üzenetére
Attól, hogy nem tolták a képedbe, még ott van és volt, ez például egy 20+ éve elkezdett alkalmazás multidesktop támogatásra Windowson.
Sőt, aki használt NT 3.1-et vagy bármely utódját (azaz 95/98/ME vonal kivételével bármilyen Windowst), az használta a Windows multidesktop funkcióját, legfeljebb nem tud róla: a logon képernyő saját desktopon van, a belépett felhasználó egy másik desktopra kerül és lenyomja a Ctrl+Alt+Del-t vagy feljön az UAC prompt, akkor az egy harmadik desktopot jelent (a screensaver pedig egy negyediket jelenthet). Külön jogosultsági szinteket lehet beállítani egyes desktopokhoz, szóval egy mezei alkalmazás a default és winlogon/UAC asztalokhoz nem fér hozzá például, ahogyan egy másik belépett felhasználó asztalához sem. Citrix és társai, RDP, user switching, mind a multidesktop feature-re épülnek.
-
dqdb
nagyúr
válasz
instantwater #14913 üzenetére
NT 4.0 óta van virtuális asztal támogatás a Windowsban, csak eddig külső szoftver kellett a kihasználásához.
-
dqdb
nagyúr
Részemről Thatsit és meg tudom erősíteni az összes érvedet. Ez a minimalista háttámlával annyival nyújt többet, hogy hátra is lehet dőlni vagy nyújtózni, ha úgy alakul éppen. Német eBayen egész jó áron lehet venni felújított darabokat.
Nem a térdre kerül a súlypont, hanem a lábszárra, és ahogy helyezkedsz a székben, sosem pontosan ugyanoda. Térdepelni sem kötelező, sokszor az egyik lábam a földön van (vagy akár mindkettő).
-------Az a jó az RGB mániában, hogy szinte az összes ilyen eszközben alacsony frekvenciás, 100-200 Hz közötti PWM-mel szabályozzák a fényerőt (érdemes megnézni videókat billentyűzetről, házról, mind vibrál), és a legtöbbször a periferiális látómeződben vibrálnak tönkretéve az ergonómiát. Ha pedig valaki direkt azért vett flicker-free monitort, hogy ne vibráljon, akkor egy RGB csodával helyből keresztül is húzta annak a hatását.
Leopold, Varmilo, Filco, IKBC vagy az olcsóbb kategóriában Cherry G80, ezek munkabillentyűzetek.
-
dqdb
nagyúr
válasz
Con Troll #14289 üzenetére
Jobb klikk a válaszon és lesz Save As, amint aztán be lehet adni értelmes hex editornak, mint például a HxD. Ha 1f 8b az első két byte, akkor tényleg gzip lesz.
Az sokat segíthet az ötletelésben, ha nem az Accept-Encoding mezőt teszed be, amiben a kliens mondja meg a szervernek, hogy mit támogat, hanem a Content-Type és Content-Encoding mezőket, hogy a kliens mit és milyen kódolással küldött.
-
dqdb
nagyúr
válasz
bobalazs #14276 üzenetére
A Kernel projekt lefordításához biztosan szükséged lesz telepített WDK-ra az #include-ok alapján. Azt ellenben nem tudom, hogy manapság egy Windows drivert csak ilyen lazán le lehet-e fordítani VS-ben, vagy más, speciális módja van. Amikor legutoljára (egyúttal legelőször és legutoljára) drivert fordítottam, akkor még DDK néven futott, XP volt az uralkodó rendszer és parancssorból ment scriptekkel.
-
dqdb
nagyúr
válasz
aviator #14264 üzenetére
Mitől függ, hogy 32 bites, vagy 64 bites a kód?
Alapvetően attól, hogy 32 bitesre vagy 64 bitesre fordítodA problémát az okozta, hogy az első paraméter
HANDLE
típus mérete eltér 32 bitre (4 byte) és 64 bitre (8 byte) fordított alkalmazásokban. AzINVALID_HANDLE_VALUE
konstans értéke, amit az eredeti kódban túlbonyolítva meg szerettek volna adni, pedig -1, azonban ez így ebben a formában csak 32 biten sikerült jól megadni. Ha ott(HANDLE)-1
szerepelt volna, akkor működött volna, de a konstansok azért vannak, hogy azokat használja az ember. -
dqdb
nagyúr
Miért erőlteted a 2015-öt, amikor azóta megjelent a 2017 és a 2019 is, amelyek éppen ilyen téren fejlődtek sokat?
Előfordul néha, hogy nem megy a refactoring/hibát dob/fájl átnevezésekor nem ajánlja fel az osztály átnevezését. Ilyenkor lépésenként kell próbálkozni, hátha úgy megy (szokott). Ha csatolt fájlokra nem megy, akkor ott a munkát a .csproj kézi módosításával és/vagy a generált fájl szerkesztésével is el lehet érni (bár sokszor elég a .csproj hegesztése után újra elmenteni az adott fájlt, aztán a generátorok már elvégzik a munka többi részét.
-
dqdb
nagyúr
válasz
Tigerclaw #13757 üzenetére
Az objektumod valamilyen fát reprezentál és mélységi bejáráshoz szeretnél enumeratort adni. Vagy az objektum egy tokenizer és parse-olás közben a tokeneket adja vissza anélkül, hogy azokat egy listában eltárolnád. És még hasonló példákat lehet felhozni, ahol egy sima collection kevés vagy nem is létezik az adat olyan formában.
-
dqdb
nagyúr
válasz
samujózsi #13666 üzenetére
Szerintem nem túl szerencsés dolog interaktivitást tenni egy makefile-ba.
Jobb megírni úgy az alap scriptet, hogy ellenőrizze a feltételeket, és elhasaljon, ha felülírna valamit, amit nem kellene. Ezután a felülírós változat lehetne egy másik build target (például make build_always), vagy az alap scriptben ellenőriznéd egy make-nek átadott paraméter meglétét, és ennek hiányában elhasalna, meglétekor felülírna (például make build OVERWRITE=1).
Vagy ha ragaszkodsz a kérdéshez, akkor valahogyan így.
-
dqdb
nagyúr
válasz
kuyarashi #13294 üzenetére
Mennyire tesztelted az alkalmazást? Azért kérdezem, mert ez így okozhat meglepetéseket a program futtatása közben, a beszúrást követő részek elcsúsztak egy byte-tal, és ha van direkt hivatkozás oda, akkor az rossz helyre mutathat. A szöveg felülírása általában nem problémás, de a beszúrás az tud lenni.
-
dqdb
nagyúr
válasz
RedHarlow #13094 üzenetére
a. Individual License. If you are an individual working on your own applications to sell or for any other purpose, you may use the software to develop and test those applications.
Szóval ha nem céges keretek között fejlesztetted, akkor szabad az út.b. Organizational License. If you are an organization, your users may use the software as follows:
· If none of the above apply, and you are also not an enterprise (defined below), then up to 5 of your individual users can use the software concurrently to develop and test your applications.An “enterprise” is any organization and its affiliates who collectively have either (a) more than 250 PCs or users or (b) one million U.S. dollars (or the equivalent in other currencies) in annual revenues, and “affiliates” means those entities that control (via majority ownership), are controlled by, or are under common control with an organization.
Céges keretek között ez a szabály él (az open source, driver, oktatási részt töröltem), szóval ha a cég, amelynek az alkalmazottjaként fejlesztettél, nem éri el a 250 felhasználót és/vagy évi 1 millió dollár bevételt, akkor az a cég jogosult a VSCE használatára 5 gépen, és ott fejleszthet eladásra is akár. Ha eléri a limiteket, akkor nem és ebben az esetben nekik vállalkozóként számlázva sem lehet használni. -
-
dqdb
nagyúr
válasz
jattila48 #13019 üzenetére
Erre a célra szerencsésebb lenne a FindFirstChangeNotification használata FILE_NOTIFY_CHANGE_LAST_WRITE filterrel, és a többi folyamat érzékelné a fájl változását a változást követően, nem kellene aktívan monitorozni a fájl tartalmát, töredékére esne az elérési ütközések száma. Ezután a többi folyamat FILE_SHARE_READ sharing flaggel nyitná meg a fájlt (azaz amíg nyitva tartja, addig a fő folyamat nem tudná módosítani azt. nem lesz dirty read), ha nem sikerül, akkor pár tizedmásodperccel később újra próbálkozik. Ha a fő folyamatnál nem sikerül a ReplaceFile hívás, akkor az is pár tizedmásodperccel később újra próbálkozik.
Szerintem érdemes lenne a mostani konfigurációs fájlnak nevezett dolgot kettéválasztása szigorúan konfigurációs fájlra, ami nem módosulna és állapotfájlra, amit a fő folyamat módosítana. Vagy bármi más megoldás (pipe, socket, zeromq, MSMQ, stb.), ahol a fő folyamat értesítené a többi folyamatot, hogy itt van új állapotadat, tessék azt használni.
-
dqdb
nagyúr
válasz
jattila48 #13015 üzenetére
előfurdulhat-e a ReplaceFile végrehajtása közben, hogy a helyettesítendő file név pillanatnyilag nem létezik (mert temporálisra lett átnevezve), miközben egy másik thread próbálja megnyitni
Igen, előfordulhat. És az is, hogy a fő szálon azért száll el a ReplaceFile hívás, mert egy másik szál FILE_SHARE_DELETE flag nélkül nyitotta meg a fájlt és még nyitva tartja.De mindkét eset könnyen érzékelhető és kezelhető a fő és/vagy a többi szál kódjának módosításával.
Ha IPC-re használsz ilyen módon fájlokat, akkor továbbra is azt tartom, hogy a megoldást kellene átdolgozni olyanra, ami nem igényel atomi műveleteket. Vagy ha nem szükséges az üzenetek perzisztens tárolása arra az esetre, ha a többi szál nem futna, akkor a fájlok használatától is teljesen el lehet tekinteni.
bambano: windowst nem ismerem. truncate-nek szokták hívni angolul.
Vagy TRUNCATE_EXISTING paraméterrel kell meghívni a CreateFile-t (ez csak akkor működik, ha már létezik a fájl), vagy CREATE_ALWAYS paraméterrel, és ez vagy létrehozza az új fájlt, vagy truncate-eli a már létező fájlt. -
dqdb
nagyúr
válasz
jattila48 #13011 üzenetére
A Windows ReplaceFile API függvényével kapcsolatban érdekelne, hogy az mennyiben tekinthető atomi műveletnek.
Ha átadsz backup fájlnevet, akkor a hívó szempontjából közel atominak tekinthető. A közel szó arra vonatkozik, hogy az eredeti fájl tartalma megmarad, csak az attribútumai nem (részletek itt).A kérdésem az, hogy a Windows preemptív ütemezője átadhatja-e a vezérlést másik thread-nek/processznek a ReplaceFile végrehajtása közben.
Természetesen. És mivel jellemzően egyetlen szálnál több létezik manapság egy processzorban, így még a preemptív végrehajtásfelfüggesztés sem kell ahhoz, hogy párhuzamosan más is fusson.Mert az, hogy a ReplaceFile teljesen vagy egyáltalán nem hajtódik végre, rendben van, de előfordulhat-e, hogy a ReplaceFile véhrehajtása közben egy másik thread megpróbálja megnyitni a helyettesítendő file-t?
Előfordulhat.Ekkor ugyanis lehet, hogy a másik thread nem fogja tudni megnyitni a file-t.
Ha olyan sharing flagekkel nyitja meg, amit a ReplaceFile nem enged, akkor nem fog sikerülni, ha olyannal, hogy engedi, akkor igen.Ha a ReplaceFile olyan értelemben lenne atomi, hogy az ütemező közben nem adhatná át a vezérlést másik thread-nek, akkor ez a probléma nem léphetne fel.
Vagyis egy ReplaceFile hívás blokkolná a teljes operációs rendszert arra az időre, ami nyilvánvalóan nagyon nem jó.TxF kell neked, és ott a MoveFileTransacted hívást, aminél minden fél számára atomi művelet a mozgatás. Vagy gondold át a választott megoldást, mert a legtöbb esetben más működést választva eliminálhatóak azok az esetek, amelyekre most választ keresel.
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
- ASUS Radeon RX 7600 V2 Dual OC 8Gb - Aqua gari 26.12.12 ig
- Újszeru GIGABYTE G5 - 15.6" FullHD 144Hz - i7-13620H - 48GB - 1TB - RTX 4050 - Win11 - 1,5 év gari
- BESZÁMÍTÁS! ASROCK H310CM i5 8400 16GB DDR4 256GB SSD 1TB HDD GTX 1060 3GB Rampage SHIVA TT 500W
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- HATALMAS AKCIÓK / MICROSOFT WINDOWS 10,11 / OFFICE 16,19,21,24 / VÍRUS,VPN VÉDELEM / SZÁMLA / 0-24
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest