Autor Téma: RX lib pro 64 bit  (Přečteno 3505 krát)

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
RX lib pro 64 bit
« kdy: 23-01-2017, 15:54:35 »
Používá někdo RX lib pro 64-bit aplikaci ?

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 819
  • Karma: 20
    • Verze Delphi: D2007, XE2, XE6
Re:RX lib pro 64 bit
« Odpověď #1 kdy: 24-01-2017, 07:19:04 »
jen pro něco :(

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #2 kdy: 24-01-2017, 09:12:59 »
Jen pro něco znamená co :-)   ?

Mě se nedaří kompilace ... vypadne s následující chybou:

[dcc64 Fatal Error] UnList.pas(19): E2213 Bad packaged unit format: C:\Users\Public\Documents\Embarcadero\Studio\18.0\Dcp\Win64\RtmRxCtl240.dcp.RxCurrEdit - Expected version: 31.0, Windows Unicode(x64) Found version: 31.0, Windows Unicode(x86)

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #3 kdy: 24-01-2017, 09:21:10 »
Ještě pro upřesnění ... jedná se o Delphi XE 10.1 Update 2

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #4 kdy: 24-01-2017, 09:31:51 »
Zkoušel jsem rekompilovat RX lib v profilu 64bit ... ale tam nejde přidat cílová platforma Win64 ...

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 819
  • Karma: 20
    • Verze Delphi: D2007, XE2, XE6
Re:RX lib pro 64 bit
« Odpověď #5 kdy: 24-01-2017, 10:00:15 »
Aha, tak že jde spíš o instalaci do IDE?

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 819
  • Karma: 20
    • Verze Delphi: D2007, XE2, XE6
Re:RX lib pro 64 bit
« Odpověď #6 kdy: 24-01-2017, 10:24:49 »
Pro 64 bit RUNTIME balíčky by měly být vytvořeny dvě sady dcu/dcp/bpl a to pro 32 a 64 bit. zvlášť. RX Lib je normálně jen pro 32 bit. Zkopírují se jen dpk a vytvoří jejich 64 bit. verze a znovu se přeloží - musí se nastavit adresáře dle platformy, to tam tuším teďka není, přepisovaly by se dcu. Taky se musí správně nastavit namespaces pro unity (a možná doupravit dpk, doplnit postfix _64 atp.).
Aplikace používající knihovnu ale normálně přeložit do 64 bit jde, pokud má k dispozici všechny zdrojáky.
« Poslední změna: 24-01-2017, 10:26:42 od JaroB »

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #7 kdy: 24-01-2017, 12:15:13 »
V IDE je vše naistalováno bez problému. Aplikace, která RX používá kompiluje v režim 32-bit také bez problému.

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #8 kdy: 24-01-2017, 12:17:51 »
RX je naistalovaný v IDE. Aplikace je složená z několik balíčku. Na něm jsem zkusil nastavit cílovou platformu na Win64, a tady to právě hlási chybu. Cesta na zdrojáky je nastavená. Nemůže to být tím, že aplikace používá balik RX jako RunTimový ....

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 819
  • Karma: 20
    • Verze Delphi: D2007, XE2, XE6
Re:RX lib pro 64 bit
« Odpověď #9 kdy: 24-01-2017, 15:34:39 »
Pokud je aplikace kompilovaná s balíčky, tak i runtime balíčky rx lib musí být zkompilovány jako 64 bit, dobré je tedy odlišit normální balíček od toho 64 bit (postfixem?).
Samozřejmě je možné vyjmout Rx Lib ze systému balíčků a vkompilovat to do exe.

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #10 kdy: 24-01-2017, 22:23:41 »
Nejde to ani po odkopírování dpk ... už lze sice nastavit 64bit variantu ... ale kompilace padne na Accse violation. Nejde to ani v samostatné kopii RX upravené pro kompilaci do 64bit.

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 819
  • Karma: 20
    • Verze Delphi: D2007, XE2, XE6
Re:RX lib pro 64 bit
« Odpověď #11 kdy: 25-01-2017, 09:25:05 »
Jakou verzi RX Lib máte/používáte?

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #12 kdy: 25-01-2017, 09:54:33 »
unrxlib_275_u_1_0_17.rar , obsahuje již podporu pro Delphi 10.1 Berlin ... staženo odsud  http://www.micrel.cz/RxLib/dfiles.htm

Offline našinec

  • Hrdina
  • ****
  • Příspěvků: 315
  • Karma: 4
Re:RX lib pro 64 bit
« Odpověď #13 kdy: 25-01-2017, 10:38:07 »
neo, Ty jsi vážně nováček.  ;)

unrxlib_275_u_1_0_17.rar , obsahuje již podporu pro Delphi 10.1 Berlin ... staženo odsud  http://www.micrel.cz/RxLib/dfiles.htm

Toto, jsou stránky Jaro Beneše, který řadu projektů pro Delphi udržuje v chodu a který reaguje na Tvé dotazy.   :D

Na Delphi.cz je o JaroB a jeho aktivitám hned několik článků, např. http://delphi.cz/post/Nekolik-poznamek-ohledne-upgrade-mezi-verzemi-Delphi.aspx.
« Poslední změna: 25-01-2017, 10:58:34 od našinec »

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #14 kdy: 25-01-2017, 10:57:56 »
:-) Já vím ... ptal se co používám za verzi a kde jsem k ní přišel  ... nic víc, nic míň

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 819
  • Karma: 20
    • Verze Delphi: D2007, XE2, XE6
Re:RX lib pro 64 bit
« Odpověď #15 kdy: 25-01-2017, 12:07:00 »
Tak se vrátíme k zajímavému Access violation :-) . Tuto chybu zhusta hlásí IDE při pokusu o rekompilaci Rx 32 bit balíčků. Doporučený způsob práce s balíky se nezměnil už od dávné doby, kdy mi to radil Fedor Koževnikov. Balíčky z IDE nutno odebrat, překompilovat a pak znovu nainstalovat (vč. balíků nad Rx Lib, např. spec. db gridy anebo edity). 64 bit. verze má jen runtime balíčky. Nemám k dispozici Berlin ale v Seattle jsem odzkoušel překlad bez problémů. Takže to může být třeba nějaké specifikum nastavení v poslední verzi Delphi. Zkuste nejprve překompilovat aplikaci v 64 bit. bez balíčků a pak s balíčky (RxLib nemusí být v balíčku, lze ji rovnou přilinkovat k exe, tj. odeberou se balíčky RtmRxDB240_64 a RtmRxCtl240_64 z runtime packages, pokud jsou přednastavené)

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #16 kdy: 25-01-2017, 12:35:53 »
Ten je opravdu zajímavý ... vysype to Acces violation s adresou 0000000, taková klasika. Zajímavé je, že okamžitý opakovaný pokus o kompilaci se rozeběhne ale spadne to na údajně neexistujícím FmRelDate.pas. To se tedy týká pokusu o kompilaci samotných RX do 64bit.

Vlastní aplikace je složena z několika balíku + hlavní EXE. Kompilace se nedaří už na prvním balíku, který používá RXlib. Runtimové balíky se tady přece nenastavují. Posílám v příloze Requires toho balíku. Zřejmě bude nutné přeložit RX kompletně ve variantě 64bit ...

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 819
  • Karma: 20
    • Verze Delphi: D2007, XE2, XE6
Re:RX lib pro 64 bit
« Odpověď #17 kdy: 25-01-2017, 12:41:31 »
A jak vypadá projekt, kde jsou použity Rx, tj sekce uses resp. jednotky kde jsou použity? Chybu nemusí vůbec vyvolávat Rx, ale nějaká jiná jednotka se shodným vnitřním prostorem jmen...

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #18 kdy: 25-01-2017, 12:46:05 »
unit DateTimeEdit;

interface

{$I TRIAPP.INC}

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, StdCtrls, Mask, RxToolEdit, ExtCtrls, Menus;

type
  TTriDateTimeEdit = class(TFrame)
    EdtDate: TDateEdit;
    PnlTime: TPanel;

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #19 kdy: 25-01-2017, 12:47:00 »
Nic zvláštního tam není ...

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 819
  • Karma: 20
    • Verze Delphi: D2007, XE2, XE6
Re:RX lib pro 64 bit
« Odpověď #20 kdy: 25-01-2017, 12:48:54 »
A jak vypadají adresáře, kam se buildují DCU a kam exe? Původní chyba ukazovala na špatné binárky.

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #21 kdy: 25-01-2017, 12:56:28 »
Jsou vytvořené zvláštní složky pro DCU, DCP i EXE s názvem Win64. Ty jsou zatím prázdné. Delphi si vytvořilo totéž a 64 bitové balíky jsou tam. Cesty v projektu toho příslušného balíku jsou nastavené právě do těchto složek.

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 819
  • Karma: 20
    • Verze Delphi: D2007, XE2, XE6
Re:RX lib pro 64 bit
« Odpověď #22 kdy: 25-01-2017, 12:58:35 »
Máte možnost totéž přeložit v XE3?

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #23 kdy: 25-01-2017, 13:03:37 »
Ano .. tam jede všechno bez problému ... aplikace má pře 2 milionu řádků ... převod z XE3 do XE10 proběhl bez větších problémů

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #24 kdy: 25-01-2017, 13:03:54 »
unit UnList;

interface

{$I TRIAPP.INC}

uses
  Windows,  SysUtils, Classes,  Graphics, ActnList,
  DBGrids,  Dialogs,  Forms,    ComCtrls, Grids,    Mask,
  Menus,    Controls, StdCtrls, ExtCtrls, IniFiles,
  CommCtrl, RxCurrEdit, RxToolEdit,
  UnGlobal, UnTools,  UnResStr, VirtualTrees;


type
  TSvGridList = class;

  { Servisni objekt pro trideni }
  TSvSortItem = class (TObject)
  private
    FAttributeName    : String;

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #25 kdy: 25-01-2017, 13:04:53 »
Tady se to zakousne na řádku v uses na  RxCurrEdit, RxToolEdit,

a nahlásí

[dcc64 Fatal Error] UnList.pas(19): E2213 Bad packaged unit format: C:\Users\Public\Documents\Embarcadero\Studio\18.0\Dcp\Win64\RtmRxCtl240.dcp.RxCurrEdit - Expected version: 31.0, Windows Unicode(x64) Found version: 31.0, Windows Unicode(x86)



Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #26 kdy: 25-01-2017, 13:05:35 »
Jo vy myslíte překlad do 64 bit v XE3 ????  ten jsem nezkoušel

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 819
  • Karma: 20
    • Verze Delphi: D2007, XE2, XE6
Re:RX lib pro 64 bit
« Odpověď #27 kdy: 25-01-2017, 13:06:18 »
Tak to zkuste, XE3 přece umí taky 64 bit.

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #28 kdy: 25-01-2017, 13:09:25 »
Jdu na to

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1849
  • Karma: 87
    • Verze Delphi: D2007, XE3, DX10
Re:RX lib pro 64 bit
« Odpověď #29 kdy: 25-01-2017, 13:32:01 »
[dcc64 Fatal Error] UnList.pas(19): E2213 Bad packaged unit format: C:\Users\Public\Documents\Embarcadero\Studio\18.0\Dcp\Win64\RtmRxCtl240.dcp.RxCurrEdit - Expected version: 31.0, Windows Unicode(x64) Found version: 31.0, Windows Unicode(x86)
Vzdyt to pise jasne: chce 64bitovou verzi souboru a nasel 32bitovou, prelozenou Berlinem

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #30 kdy: 25-01-2017, 13:34:13 »
To ano ... jenomže jakýkoliv pokus o překlad do 64bit se nedaří. Čistá kopie RXlib, čísté složky, nastavení pro 64 bit ...

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #31 kdy: 25-01-2017, 13:35:56 »
Bohužel to ted v XE3 do 64 bit nepřeložím. Při přechodu do XE10 bylo odstraněno několik komponent, které tady zlobí. Takže k RXlib se při kompilaci ani nedostanu

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #32 kdy: 29-01-2017, 18:18:09 »
Tak jsem se zabýval  Delphi XE3 a překladem knihovem do 64-bit. Bohužel výsledek je stejný jako v XE10. Vytvořena zvláštní složka pro 64 bitové balíky, nastaveny příslušná platforma a samostatné složky pro Win64 DCP, DCU a vlastní balíky. Kompilace spadne v jednotce RxVclUtils  na řádku 2379, 2382, 2389, 2401 a 2408 s chybou.

[dcc64 Error] RxVCLUtils.pas(2379) : E2064 Left side cannot be assigned to

procedure StartWait;
begin
  if WaitCount = 0 then
  begin
------------------->>>>>    SaveCursor := Screen.Cursor;
    Screen.Cursor := WaitCursor;
  end;
  Inc(WaitCount);
end;

Zatím jsem nic neopravoval, těch problémových míst může být ve všech jednotkách RX lib více.

To tady opravdu nidko nepoužívá RXlib do 64 bitové aplikace ???
Zatím se mi nechce komponemty RX z aplikace vyhazovat...

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 819
  • Karma: 20
    • Verze Delphi: D2007, XE2, XE6
Re:RX lib pro 64 bit
« Odpověď #33 kdy: 30-01-2017, 07:31:59 »
V nastavení projektu na kartě kompileru vybrat volbu "Assignable typed constants"  a nastavit na True.

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #34 kdy: 30-01-2017, 12:25:41 »
Díky, teď už to zaklaplo ... baliky RX přeloženy do 64 bit ... jak XE3 tak XE10.

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #35 kdy: 31-03-2017, 10:28:55 »
Zdravím, bude update RX pro 10.2 Tokyo ?

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 819
  • Karma: 20
    • Verze Delphi: D2007, XE2, XE6
Re:RX lib pro 64 bit
« Odpověď #36 kdy: 31-03-2017, 13:05:06 »
Pokusím se co nejdříve :)

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #37 kdy: 31-03-2017, 16:57:54 »
Díky  :)

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 819
  • Karma: 20
    • Verze Delphi: D2007, XE2, XE6
Re:RX lib pro 64 bit
« Odpověď #38 kdy: 04-04-2017, 20:31:01 »
Upravil jsem zakladni unity a pridal balicky. Tokyo nemam takže nutno vyzkoušet.

Offline neo

  • Nováček
  • *
  • Příspěvků: 38
  • Karma: 0
    • Verze Delphi: XE3, XE10
Re:RX lib pro 64 bit
« Odpověď #39 kdy: 14-05-2017, 19:50:57 »
Díky :-)

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: