Favicon Svethardware.cz  Svět hardware   Fórum Favicon Svetmobilne.cz  Svět mobilně Favicon Svetaudia.cz  Svět audia Favicon Digimanie.cz  Digimanie   Fórum   Galerie Společnost oXy Online s.r.o.
Zobrazené výsledky: 1 až 7 z 7

Téma: Využití exportované C++ třídy a jejích metod z DLL

  1. #1
    Nováček Avatar uživatele riman
    Registrace
    Mar 2004
    Příspěvků
    6

    Historie se opakuje. Když jsem si kdysi koupil svou první TV kartu (3DeMON), byl jsem nadšený z dálkového ovládání. Brzy jsem zjistil, že by se mi moc líbilo, ovládat s tím, co mě napadne, ne jen televizi. Tak jsem hledal univerzální programy na dálkové ovládání a skončil u Girderu. Jenže ouha, žádný z dostupných pluginů nefungoval. Nezbylo nic jiného, než sehnat hlavičky knihovny na ovldádání z originální aplikace, sebrat své skrovné znalosti C++, přeložit potřebné hlavičky funkcí do Object Pascalu (Delphi) a prostě si ten plugin udělat sám.

    Jak píšu - historie se opakuje. Koupil jsem si nedávno Hauppauge WinTV NOVA-t, která má dálkové ovládání... Žádný plugin, který by fungoval, jsem nesehnal. Podstoupil jsem tedy anabázi se získáním SDK od TechnoTrendu, který vyrábí vlastní chipset, a zírám na zdrojáky ukázkové aplikace ve Visual C++ 6.0.

    Mám totiž docela problém - v tomto případě příslušná knihovna exportuje rovnou celou třídu. Exporty jejích metod a typů pak vypadají nějak takhle "?OnRemoteControlCode@CDVBRemoteControl@@MAEXPAEH@ Z". A já se obávám, že to si v nějakém jiném jazyce a možná i v nějakém jiném C++ nářečí ani neškrtnu.

    Pokud má někdo zkušenosti a ví či alespoň tuší, jak by se dal tenhle problém vyřešit, budu mu moc vděčný. Opakuji - mám DLL s exportovanými třídami, mám ukázkovou aplikaci ve Visual C++ 6.0 a umím obstojně Delphi. (Ještě jsem nedosáhl takového stupně zoufalství, abych se začal učit Microsoftí céčko...)
    Odpovídat lze po přihlášení

  2. #2
    Je tu občas
    Registrace
    Mar 2004
    Příspěvků
    152

    zkus www.builder.cz, urcite nekdo poradi..
    Odpovídat lze po přihlášení



  3. #3
    Je tu pořád Avatar uživatele artam
    Registrace
    Mar 2004
    Příspěvků
    1,161

    riman:
    Huh, Delphi (Pascal) a C++ to sú hrušky a jablká . MSVC++ 6.0 je C++ ako každé iné, a nemusíš sa učiť práve to mikrosoftie, môžeš gcc a devcpp, atď, ale v každom prípade sa asi budeš musieť to C++ naučiť, drvivá väčšina vývojárskej komunity, ktorá sa venuje hardvéru, pracuje v c++ a neznáša pascal (tiež som takto postihnutý a preto sa hrdo priznávam, že som neobjektívny)
    Odpovídat lze po přihlášení

  4. #4
    Čestný člen Avatar uživatele Mike
    Registrace
    Mar 2004
    Příspěvků
    649

    Delphi používá v objektech jiné volání, takže přívolání nepůjde, buď to udělej v C++, nebo si udělej v C++ přechodné DLL, které ti převede volání C stdcall na C++
    Odpovídat lze po přihlášení

  5. #5
    Nováček Avatar uživatele riman
    Registrace
    Mar 2004
    Příspěvků
    6

    Když jsem se na to včera díval, napadlo mě, že bych to mohl udělat tak, že udělám v tom VC++ jednoduchou DLL, kde při inicializaci vytvořím potřebný objekt a jeho metody vyexportuju jako klasické funkce a pak už to v pohodě načtu v Delphi.

    Ale narazil jsem na problém, a to ten, že C++ ve Visual Studiu .NET 2003 vytrvale odmítá konstrukci "class AFX_EXT_CLASS CDVBRemoteControl", což je dost nepříjemné.

    Každopádně, je otázka, když bych už dokázal v tom céčku udělat DLL, jestli bych nezmákl celý plugin... ;-)
    Odpovídat lze po přihlášení

  6. #6
    Nováček Avatar uživatele riman
    Registrace
    Mar 2004
    Příspěvků
    6

    Nejsem vývojář hardware, programuju pro své potěšení menší věcičky, kde hraje důležitou roli uživatelské rozhraní. A na to je Delphi skutečně vynikající nástroj.

    C++ je určitě mocnější jazyk, ale možná bys byl překvapen, že ten rozdíl není zase tak obrovský. Ale nemám žádný důvod tady rozpoutávat nějakou flamewar... ;-) Chci jenom vyřešit problém.
    Odpovídat lze po přihlášení

  7. #7
    Je tu pořád Avatar uživatele artam
    Registrace
    Mar 2004
    Příspěvků
    1,161

    V pohode, flamewar je nezmysel

    FYI, prekvapenie sa nekoná , ono je to asi tak, že aj v tom MSVC++ sú značne silné nástroje na tvorbu GUI. Delfín mi len osobne (ale zrejme asi nielen mne) pripadá dosť ťažkopádny na písanie ovládačov (sys, dll), väčšinou sa tam píšu zdroje v texťáku, žiadne prevratné gui, a pascal je na môj vkus trochu "ukecaný" (aj keď musím povedať, že taký COBOL, čo sme sa učili na strednej, ten bol teda ukecaný asi 100x viac )
    Odpovídat lze po přihlášení



Podobná témata

  1. Reakcí: 1
    Poslední příspěvek: 09-01-2012, 08:07
  2. Nové využití již odloženého HW.
    Od bastlir v sekci Bastlení
    Reakcí: 10
    Poslední příspěvek: 13-11-2011, 18:37
  3. Využití projektoru BENQ W500
    Od Martin Zare v sekci Projektory
    Reakcí: 7
    Poslední příspěvek: 01-01-2010, 19:46
  4. exportované video se ke konci sekne-pinnacle
    Od jkmaxfli v sekci MPEG-1/2
    Reakcí: 0
    Poslední příspěvek: 12-09-2008, 08:20