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

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 806
  • Karma: 19
    • 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ů: 33
  • 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ů: 806
  • Karma: 19
    • 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ů: 33
  • 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ů: 33
  • 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ů: 806
  • Karma: 19
    • 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ů: 33
  • 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ů: 806
  • Karma: 19
    • 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ů: 33
  • 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ů: 33
  • 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ů: 33
  • 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ů: 33
  • 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ů: 806
  • Karma: 19
    • 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ů: 33
  • 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ů: 1751
  • Karma: 77
    • 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

 

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

Jméno: E-mail:
Ověření:
Kolik je šest plus čtyři (slovem):