3

Я читал SysUtils, когда я наткнулся на эту функцию:Каков список всех возможных значений для DVCLAL?

function ALR: Pointer; 
var 
    LibModule: PLibModule; 
begin 
    if MainInstance <> 0 then 
    Result := Pointer(LoadResource(MainInstance, FindResource(MainInstance, 'DVCLAL', 
     RT_RCDATA))) 
    else 
    begin 

После этого я искал что DVCLAL, и я нашел этот question.

Каковы все возможные подписи, которые компилятор Delphi испускает на ресурс DVCLAL?

+0

Это не очень понятно каков ваш реальный вопрос. –

ответ

3

Там нет официальной документации по этому вопросу, так что здесь что-то из моих нот 15+ лет назад:

DVCLAL есть, чтобы проверить, какой SKU Дельф вы используете, и она изменяется в зависимости от SKU.

Есть только проверяет Professional (RPR) и Client/Server (RCS) SKUs:

procedure RCS; 

procedure RPR; 

Если они терпят неудачу, они называют этот метод:

procedure ALV; 
begin 
    raise Exception.CreateRes(@SNL); 
end; 

где

resourcestring 
    SNL = 'Application is not licensed to use this feature'; 

В зависимости от матрицы признаков и Delphi versi on, различные компоненты звонят RPR и RCS в своих конструкторах Create, чтобы гарантировать минимальное количество SKU.

+1

Нет даже официальной документации? – EProgrammerNotFound

+0

@MatheusFreitas сейчас есть (; –

1

Я просто поместил еще один ответ на этот вопрос, для всех людей, которые ищут фактические значения DVCLAL.

1) Как Йерун Wiert Pluimers сказал, если вы хотите, чтобы проверить «Professional или выше» или «Enterprise только» внутри приложения Delphi, вы будете использовать RPR или RCS («клиент/сервер», который был имя для выпуска Enterprise в ранних версиях Delphi) соответственно.

2) В случае, если вы хотите, чтобы проверить на одной конкретной версии, вы можете использовать вывод функции GDAL, которая является одним из следующих:

FFFFFFF0 = Standard/Personal edition DVCLAL value 
FFFFEBF0 = Professional edition DVCLAL value 
00000000 = Enterprise edition DVCLAL value 
FFFFFFFF = DVCLAL resource not existing 

если DVCLAL ресурс имеет неожиданное значение, GDAL позвонит ALV, который поднимет Exception.

3) Если вы хотите проверить значение DVCLAL для внешнего EXE-файла (например, если вы хотите написать редактор ресурсов, декомпилятор и т. Д.), Вам придется напрямую запрашивать ресурс DVCLAL. Есть только три возможных значения:

23785D23 B6A5F319 43F34002 26D111C7 = Standard/Personal 
A28CDF98 7B3C3A79 26713F09 0F2A2517 = Professional 
263D4F38 C28237B8 F3244203 179B3A83 = Enterprise 

4) Кроме того, в то же время, как представляется, является официальной документации, по крайней мере, для функций GDAL, RPR и RCS:

 Смежные вопросы

  • Нет связанных вопросов^_^