|
|
|
Как проверить, поддерживает ли метод интерфейса константу?
|
|||
|---|---|---|---|
|
#18+
Использую Delphi 2009. Импортировал интерфейс: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Для параметра dwFlags используются константы: Код: pascal 1. 2. 3. 4. 5. 6. В Windows 7 добавилась новая константа: Код: pascal 1. 2. Хорошо, при старте программы я проверяю версию операционной системы, и если это Windows 7 и выше, то использую новую константу. Код: pascal 1. 2. 3. 4. 5. 6. 7. Но оказалось, что поддержка этой константы может отсутствовать в Windows 7. Об этом сообщил китайский пользователь программы: возможно, у него какая-то "левая" китайская сборка Win7 SP1, но факт остается фактом - у всех пользователей Windows 7 константа SVSFParseSapi есть в системе, а у него нет. Отсюда вопрос: как проверить, поддерживает ли метод интерфейса конкретное значение для параметра или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2020, 12:01 |
|
||
|
Как проверить, поддерживает ли метод интерфейса константу?
|
|||
|---|---|---|---|
|
#18+
crossaу всех пользователей Windows 7 константа SVSFParseSapi есть в системе, а у него нет. "Констант" нет ни у кого. Они существую только на стадии компиляции. crossaОб этом сообщил китайский пользователь программы О чём конкретно он сообщил: метод возвращает ошибку или просто значение параметра игнорируется? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2020, 12:21 |
|
||
|
Как проверить, поддерживает ли метод интерфейса константу?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov О чём конкретно он сообщил: метод возвращает ошибку или просто значение параметра игнорируется? Метод возвращает ошибку: "The caller has specified invalid flags for this operation." То есть, метод не поддерживает такое значение параметра. Интерфейс хранится в системной библиотеке, так что, теоретически, можно при запуске программы находить эту библиотеку и проверять ее версию. Изначально в дистрибутиве Windows 7 присутствует нужная версия этой библиотеки, но данный пользователь, видимо, заменил ее на более старую по какой-то причине. Не хотелось бы искать библиотеку на компьютере каждого пользователя и считывать свойства файла DLL (тем более, что файл может лежать и в папке "Windows", и в папке "Common Files", в зависимости от версии операционной системы). Неужели нет более простого способа проверить, поддерживает ли метод такое значение параметра или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2020, 13:12 |
|
||
|
Как проверить, поддерживает ли метод интерфейса константу?
|
|||
|---|---|---|---|
|
#18+
crossaМетод возвращает ошибку Вот тебе и простой способ проверить поддержку. Если, конечно, у этого класса нет метода для выяснения поддерживаемых фич. Но это же документацию читать надо... Лень... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2020, 13:17 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39957937&tid=2038327]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
206ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 477ms |

| 0 / 0 |
