Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Разный код для Win32 и Win64 - модуль "не видит" директиву CPU64  [new]
Devillio
Member

Откуда: Волгоград
Сообщений: 267
Добрый день!

Подключаю JwaWinBase, там полно таких конструкций:
{$ifdef CPU64}
...
{$else}
...
{$endif CPU64}
И вот при сборке 64бит-платформы все равно собирает из $else (пытается собрать, не проходит).
Если добавить в начале модуля {$define CPU64}, то проект собирается как Win64
Явно я что-то делаю неправильно, вряд ли так задумано - дописывать что-то в этот модуль.
Подскажите, что я делаю не так?

PS И попутный глупый вопрос: если приложение и так работает как 32-разрядное, есть ли смысл делать 64-битную сборку? :)

Спасибо!
13 май 18, 15:59    [21406386]     Ответить | Цитировать Сообщить модератору
 Re: Разный код для Win32 и Win64 - модуль "не видит" директиву CPU64  [new]
_Hommer
Guest
CPUX64
13 май 18, 16:36    [21406421]     Ответить | Цитировать Сообщить модератору
 Re: Разный код для Win32 и Win64 - модуль "не видит" директиву CPU64  [new]
alekcvp
Member

Откуда:
Сообщений: 1103
Devillio,

В разных версиях дельфей разные дефайны, они просто это не учли.
В свойствах 64-битной конфигурации (debug | release) прописать определение CPU64 и всё.
13 май 18, 18:06    [21406543]     Ответить | Цитировать Сообщить модератору
 Re: Разный код для Win32 и Win64 - модуль "не видит" директиву CPU64  [new]
Devillio
Member

Откуда: Волгоград
Сообщений: 267
alekcvp, огромное спасибо!
Да, просто добавил и все )
13 май 18, 21:46    [21406708]     Ответить | Цитировать Сообщить модератору
 Re: Разный код для Win32 и Win64 - модуль "не видит" директиву CPU64  [new]
GunSmoker
Member

Откуда:
Сообщений: 3071
Да всё они там учли. CPU64 = 64-битный процессор, не обязательно x86.

{$IFDEF BORLAND}
    {$IFNDEF CPUX86}
      {$IFNDEF CPUX64}
        {$DEFINE CPU386}  // For Borland compilers select the x86 compat assembler by default
        {$DEFINE CPU32}   // Assume Borland compilers are 32-bit (rather than 64-bit)
        {$DEFINE CPUASM}
      {$ELSE ~CPUX64}
        {$DEFINE CPU64}
        {$DEFINE CPUASM}
        {$DEFINE DELPHI64_TEMPORARY}
      {$ENDIF ~CPUX64}
    {$ELSE ~CPUX86}
      {$DEFINE CPU386}
      {$DEFINE CPU32}
      {$DEFINE CPUASM}
    {$ENDIF ~CPUX86}
{$ENDIF BORLAND}


Версия, может, старовата?
13 май 18, 22:03    [21406732]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить