abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 19:55 | Zajímavý článek

Byly zveřejněny (pdf) podrobnosti o kritické bezpečnostní chybě CVE-2017-12542 v HPE iLO 4 (Integrated Lights-Out), tj. v proprietárním řešení společnosti Hewlett Packard Enterprise pro vzdálenou správu jejich serverů. Bezpečnostní chyba zneužitelná k obejití autentizace a k vzdálenému spuštění libovolného kódu byla opravena již v květnu loňského roku ve verzi 2.53.

Ladislav Hagara | Komentářů: 4
včera 17:55 | Zajímavý projekt

CSIRT.CZ informuje o CTF (Capture the Flag) platformě ZSIS CTF s úlohami pro procvičování praktických dovedností z oblasti kybernetické bezpečnosti a upozorňuje na soutěž Google Capture the Flag 2018, kde je možné vyhrát zajímavé ceny.

Ladislav Hagara | Komentářů: 0
včera 17:00 | Komunita

Byly zveřejněny prezentace a videozáznamy přednášek z prvního československého setkání síťových operátorů CSNOG konaného 11. a 12. června v Brně a semináře IPv6 2018 uskutečněného 6. června v Praze.

Ladislav Hagara | Komentářů: 0
včera 16:11 | Komunita

Svobodný unixový operační systém FreeBSD slaví 25 let. Přesně před pětadvaceti lety, tj. 19. června 1993, byl vybrán název FreeBSD.

Ladislav Hagara | Komentářů: 0
včera 15:11 | Komunita

Oficiální YouTube kanál Blenderu je již několik dní blokován. Nadace Blender Foundation informuje, že od společnosti Google dostala šestistránkový návrh nové smlouvy (pdf). Zdá se, že podmínkou další spolupráce je zapnutí reklam na kanálu, tj. zpeněžení obsahu.

Ladislav Hagara | Komentářů: 25
včera 01:55 | Nová verze

Byla vydána verze 1.13 multiplatformního open source textového editoru Brackets (Wikipedie, GitHub). Přehled novinek v oficiálním oznámení a v poznámkách k vydání. Brackets je nově dostupný také jako balíček ve formátu Flatpak z oficiálního repozitáře Flathub.

Ladislav Hagara | Komentářů: 4
18.6. 18:44 | Komunita

Oficiální YouTube kanál Blenderu je již několik dní blokován. Důvody jsou zatím nejasné. Pravděpodobně chyba YouTube. Dění lze sledovat na Twitteru Tona Roosendaala.

Ladislav Hagara | Komentářů: 19
18.6. 17:55 | Zajímavý software

Na GitHubu byly pod open source licencí LLVM zveřejněny zdrojové kódy překladače programovacího jazyka C++ Zapcc vycházejícího z Clangu/LLVM. Překlad pomocí Zapccu je díky lepšímu kešování obvykle několikrát rychlejší než překlad pomocí Clangu. V březnu loňského roku byl vydán Zapcc ve verzi 1.0.

Ladislav Hagara | Komentářů: 0
18.6. 17:22 | Pozvánky

Červnový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 21. 6. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát na téma: F-Droid, aneb svobodný software do vašeho mobilu. Kromě toho budou k vidění i vývojové desky HiFive1 se svobodným/otevřeným čipem RISC-V.

xkucf03 | Komentářů: 1
15.6. 22:44 | Zajímavý článek

Na blogu projektu NeoPG (GitHub), kryptografického softwaru vycházejícího z GnuPG, byly zveřejněny 4 příspěvky detailně popisující aktuální bezpečnostní problémy v GnuPG a souvisejících softwarových produktech. V prvním příspěvku je ukázáno, že je možné vytvořit zprávu, o které budou Earlybird, Evolution, Mutt nebo Outlook tvrdit, že jí dešifrovali a přitom ale zpráva vůbec zašifrována nebyla. V druhém příspěvku je popsána

… více »
Ladislav Hagara | Komentářů: 8
Jak čtete delší texty z webových stránek?
 (77%)
 (21%)
 (4%)
 (6%)
 (3%)
 (11%)
Celkem 219 hlasů
 Komentářů: 36, poslední 18.6. 21:16
    Rozcestník

    Dotaz: Is it possible to call a c++ class method by string name and also pass in the parameters?

    10.4.2010 14:57 blv
    Is it possible to call a c++ class method by string name and also pass in the parameters?
    Přečteno: 682×
    Nevím jak se správně neohrabaně česky vyjádřit a tak se ptám takto: Jde nějak v c++ udělat toto: http://old.nabble.com/call-c%2B%2B-method-by-string-name-%2B-passing-parameters-td27196409.html?

    Odpovědi

    10.4.2010 16:18 petris_ | skóre: 12
    Rozbalit Rozbalit vše Re: Is it possible to call a c++ class method by string name and also pass in the parameters?
    Ano, ale neprenositelne:

    1: Zjistite si zamanglovane jmeno metody - zavisle na prekladaci

    2: Vyhledate jmeno v tabulce symbolu (nesmitne stripnout binarku) a spoctete adresu - zavisle na typu binarky/OS

    3: Adresu vlozite do ukazatele na funkci, ktery jako prvni prijma void* a dale parametry, jako volana metoda.

    4: Zavolate vytvoreny pointer, kde jako prvni parametr pouzijete ukazatel na instanci.
    10.4.2010 17:14 blv
    Rozbalit Rozbalit vše Re: Is it possible to call a c++ class method by string name and also pass in the parameters?
    A kdyby se jednalo o qt a o QObject ?
    10.4.2010 17:52 Sinuhet | skóre: 31
    Rozbalit Rozbalit vše Re: Is it possible to call a c++ class method by string name and also pass in the parameters?

    Samozrejme ze to jde. Zakladem je mapa string => ukazatel na metodu, kterou vygenerujete pro kazdou tridu, kde to budete potrebovat. S pomoci maker a sablon to jde udelat i docela elegantne.

    18.5.2010 10:37 blv
    Rozbalit Rozbalit vše Re: Is it possible to call a c++ class method by string name and also pass in the parameters?
    Nevíte o okázce/příkladu toho, co psal Sinuhet?
    10.4.2010 23:18 Tomáš
    Rozbalit Rozbalit vše Re: Is it possible to call a c++ class method by string name and also pass in the parameters?
    Jak už psali moji předchůdci. Jde to, ale není to jednoduché. Viz řešení od petrise.

    Pokuď se neptáte jen ze studijního zájmu, pak to značí že potřebujete vyvolávat metody bez ohledu na dědičnost. Jediným čistým C++ řešením tohoto problému je společná (abstraktní) bázová třída, ve které si nadeklaruje metody, které potřebujete. Pokud takovou třídu nemůžete vytvořit ( třeba kvůli cizím knihovnám ), pak máte smůlu.

    Pokud potřebujete mechanismus vyvolávání metod přes jméno (a nikoliv přes index ve virtual method table), proč nepoužijete objective C, které má tento způsob volání metod nativně zabudovaný?
    11.4.2010 14:55 blv
    Rozbalit Rozbalit vše Re: Is it possible to call a c++ class method by string name and also pass in the parameters?
    Přeseji řečeno se jedná pokus o vytvoření primitivního bindingu na knihovnu Qt. A ptám se protože by mi to hodně usnadnilo práci, neupsal bych se tolik...

    S programování teprve začínám a tak jdu na to určitě příliš složitě... :-) Navíc by to určitě šlo jednodušeji přes smoke...

    Ale stejně, určitě Qobject nějakou takovou freaturu nemá? Nebo nešly by adresy funkcí zjistit pomocí GBD?
    11.4.2010 20:17 zulu
    Rozbalit Rozbalit vše Re: Is it possible to call a c++ class method by string name and also pass in the parameters?
    Nic ti to neusnadni a k nicemu to nepotrebujes. Stejne budes muset ty funkce pekne po jedne nejak prototypovat.
    12.4.2010 18:57 __dark__
    Rozbalit Rozbalit vše Re: Is it possible to call a c++ class method by string name and also pass in the parameters?
    Mrkni do dokumentace na QMetaClass a metodu invoke() nebo invokeNěco(), teď nevim přesně.
    22.5.2010 17:04 blv
    Rozbalit Rozbalit vše Re: Is it possible to call a c++ class method by string name and also pass in the parameters?
    Nepoporuje invoke Gobject? Přeci jenom by se mi ten Gobject zamlouval více než Qobject... I když Nejvíce se mi zamlouvá Objective-C++, umožňuje věci, o kterých si může nechat C++ jenom zdát... celkem se divím, jak málo se používá... Je pravda, že Objective-C je pouze preprocesor pro C?
    23.5.2010 09:07 Boris Dušek | skóre: 22 | blog: everything
    Rozbalit Rozbalit vše Re: Is it possible to call a c++ class method by string name and also pass in the parameters?
    v podstatě ano, přesněji není to preprocesor (Cčkový preprocesor nezná hranaté závorky apod.), ale syntax sugar překladače, kde např. syntaxe

    [object method:arg1 anotherArg:arg2];

    se přeloží ("expanduje") do Cčkového volání

    objc_msgSend(object, methodSelector, arg1, arg2);

    , kde objc_msgSend je naimplementováno v normální Cčkové knihovně libobjc-runtime (kterou ale vyžaduje přímo překladač), a methodSelector se dá právě získat pomocí jiných funkcí z názvu (tedy překlad string -> metoda), nebo se tento selektor jako symbol nalinkuje dynamicky při startu programu, pokud je znám v době překladu. Ale např. věci okolo GUI (načtení deklarativního zápisu GUI z NIBu nebo XIBu vytvořených naklikáním v Interface Builderu a nalezení stringem popsaných metod v tom XIBu odkazovaných, typicky "kliknutím na toto tlačítko vyvolej metodu tohoto názvu v tomhle kontroleru") - tam se využije to dynamické získávání selektoru (funkce) ze stringového názvu funkce za běhu. Víc k počtení i na Objective-C Runtime Programming Guide.
    vim ~/.emacs

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.