Forum Delphi.cz

Delphi => Obecné => Téma založeno: vandrovnik 13-07-2019, 12:26:21

Název: Převod .h souborů do Delphi
Přispěvatel: vandrovnik 13-07-2019, 12:26:21
Ahoj,

nevíte někdo o nějakém dobře fungujícím nástroji pro převod .h hlavičkových souborů do Delphi? Potřebuji použít prntntv.h (funkce PTOpenProvider atd.), bohužel v Delphi také nejsou. V nejhorším to zkusím nějak ručně, ale nástroj by se hodil i pro případné další konverze.

Díky,

Karel
Název: Re:Převod .h souborů do Delphi
Přispěvatel: Stanislav Hruška 13-07-2019, 16:33:46
Netuším o čo ide, ale nejedná sa o toto?
https://community.idera.com/developer-tools/b/blog/posts/c-to-delphi-converter-tool-can-quickly-and-easily-help-you-convert-standard-c-code-to-delphi (https://community.idera.com/developer-tools/b/blog/posts/c-to-delphi-converter-tool-can-quickly-and-easily-help-you-convert-standard-c-code-to-delphi)
Název: Re:Převod .h souborů do Delphi
Přispěvatel: vandrovnik 13-07-2019, 16:52:08
Ano, přesně takový druh aplikace, ale aby vytvářel alespoň trošku funkční výsledky. Tenhle zvládnul přepsat jen pár konstant, to je ještě horší, než když to matlám ručně :-)
Název: Re:Převod .h souborů do Delphi
Přispěvatel: Stanislav Hruška 13-07-2019, 18:52:57
Keďže sa neviem hnúť, tak radšej robím niečo iné. Asi si na to narazil. Našiel som v podstate len 2 odkazy.

Na toto bol jeden odkaz, že je dobrý
http://www.drbob42.com/tools/headconv.htm (http://www.drbob42.com/tools/headconv.htm)
Nič k tomu
https://blog.grijjy.com/2018/05/29/chet-a-c-header-translator-powered-by-clang/ (https://blog.grijjy.com/2018/05/29/chet-a-c-header-translator-powered-by-clang/)
Název: Re:Převod .h souborů do Delphi
Přispěvatel: Stanislav Hruška 13-07-2019, 19:31:25
Tu sú nejaké rady/návody k prevodu. Ak to budeš robiť ručne, možno Ti to v niečom pomôže. Viď prílohu. Je tam len *.doc
Název: Re:Převod .h souborů do Delphi
Přispěvatel: vandrovnik 13-07-2019, 20:17:05
Díky, díky.

Já se většinou zaseknu na něčem takovém:
Kód: Delphi [Vybrat]
  1.         hr = ::CoCreateInstance(
  2.             __uuidof(PrintDocumentPackageTargetFactory),
  3.             nullptr,
  4.             CLSCTX_INPROC_SERVER,
  5.             IID_PPV_ARGS(&documentTargetFactory)
  6.             );

To pak vyvstávají otázky jako třeba: kde vzít PrintDocumentPackageTargetFactory, proč předávají jen 4 parametry, když CoCreateInstance jich očekává 5 (IID_PPV_ARGS nejspíš z toho jednoho argumentu udělá dva) apod.

No třeba se z donucení to C++ (snad je to C++ :-) ) na stará kolena naučím. Stáhnul jsem si free verzi Microsoft Visual Studia a byl jsem příjemně překvapený - a zároveň trochu naštvaný, protože pár věcí, co mě v ne zrovna levných Delphi rozčilují, tady fungují zdarma dobře. Třeba v Delphi Ctrl + kliknutí na identifikátor "obvykle" skočí na jeho definici, ale někdy IDE třeba 10 sekund přemýšlí a na definici pak stejně neskočí a nepomůže tomu ani kompletní rebuild. Nebo že se při krokování zobrazí, jak dlouho trvalo vykonání kroku. Nebo možnost snadno rozdělit okno editoru na půlky... Samozřejmě za tu chvíli netuším, jaké mouchy má Visual Studio.
Název: Re:Převod .h souborů do Delphi
Přispěvatel: vandrovnik 14-07-2019, 09:27:32
Děkuju, zatím jsem se s tím nějak popral, každé poprvé je těžké :-)

Co jsem přesně nepochopil, je (v DocumentTarget.h):

Kód: Delphi [Vybrat]
  1. typedef class PrintDocumentPackageTargetFactory PrintDocumentPackageTargetFactory;
  2. ...
  3. EXTERN_C const CLSID CLSID_PrintDocumentPackageTargetFactory;
  4. class DECLSPEC_UUID("348ef17d-6c81-4982-92b4-ee188a43867a")
  5. PrintDocumentPackageTargetFactory;
  6. ...
  7.         hr = ::CoCreateInstance(
  8.             __uuidof(PrintDocumentPackageTargetFactory),
  9. ...


Ale k fungování naštěstí stačilo:

Kód: Delphi [Vybrat]
  1. const PrintDocumentPackageTargetFactory: TGUID = '{348ef17d-6c81-4982-92b4-ee188a43867a}';
  2. ...
  3. hr:=CoCreateInstance(PrintDocumentPackageTargetFactory,
  4.