Lazarus 1.6.4 и библиотеки ВербаOW
Модератор: Модераторы
Kemet писал(а):Может быть адреса строк-переменных должны быть выравнены по некоторой границе?
Добавлено спустя 2 минуты 52 секунды:
или стек вызывающей процедуры
Добрый день. Можно поподробнее об этом? Как проверить?
Kemet писал(а):Не понятно, на какой системе запускается программа, разрядность библиотеки
Сейчас пытаю все это на windows 10 х64. Есть еще windows 7 x64. Библиотека есть и х86 и х64.
Пробовал собирать простой exe и x86 и х64. Начиная с версии Лазаруса 1.4.4 везде один и тот же возврат вызываемой функции (34- Ошибка GK) при одинаковом коде.
- serbod
- постоялец
- Сообщения: 449
- Зарегистрирован: 16.09.2016 10:03:02
- Откуда: Минск
- Контактная информация:
Хм, до какой-то версии Lazarus был 32-bit only. То есть даже при установке x64 ставилась 32.
http://wiki.lazarus.freepascal.org/Wind ... for_SEH.29
Добавлено спустя 7 минут 50 секунд:
А еще в 1.4.4 выпилили поддержку Win98..
http://wiki.lazarus.freepascal.org/Wind ... for_SEH.29
Добавлено спустя 7 минут 50 секунд:
А еще в 1.4.4 выпилили поддержку Win98..
Kemet писал(а):а где для чравнения асм примера последней работающей связки лазарус+fpc и неработающей
Вот тут два ехе 1.4.2 работает и 1.4.4 уже нет. Код один.
К сожалению, не пользовался никогда отладкой до асемблера. Я совсем не зная асемблера.
Kemet писал(а):вроде как нужно скомпилировать юнит с опцией -a, тогда ассемблерный файл останется и его можно будет посмотреть
Чего-то я совсем ничего не понял... Три недели башка кругом от этой непонятки. Совсем соображать уже нечем.
Давайте пошагово, что, чаво, куды и как?
gvido вот интересно... вы пробовали нечто такого:
То что ютф и т.д. вы пробовали - видно, а вот что по поводу простого Ansi скажете.?
п.с.
Сложность вашей ситуации - доступность самой длл и.... Вот нет у меня желания тащить (покупать) её. И смотреть что да как. А так получается страниц эдак гадания.
Код: Выделить всё
var
err_code: integer;
a_s : AnsiString;
begin
a_s := 'A:\';
err_code:=InitKey(Pchar(a_s),'');То что ютф и т.д. вы пробовали - видно, а вот что по поводу простого Ansi скажете.?
п.с.
Сложность вашей ситуации - доступность самой длл и.... Вот нет у меня желания тащить (покупать) её. И смотреть что да как. А так получается страниц эдак гадания.
pupsik писал(а):gvido вот интересно... вы пробовали нечто такого:Код: Выделить всёvar err_code: integer; a_s : AnsiString;begin a_s := 'A:\'; err_code:=InitKey(Pchar(a_s),'');То что ютф и т.д. вы пробовали - видно, а вот что по поводу простого Ansi скажете.?п.с.Сложность вашей ситуации - доступность самой длл и.... Вот нет у меня желания тащить (покупать) её. И смотреть что да как. А так получается страниц эдак гадания.
О!?!? ЯЯ.
А теперь главное - Как только я отключил манифест windows, в версии 1.4.4 в него были внесены изменения (поддержка Win8,8.1 и win10) все заработало без танцев с бубном в 1.6.4 ФПС 3.0.2:
Код: Выделить всё
err_code:= initKey('F:\','');Не, ну вы представляете!?!?!?
Три, три недели!!!!!
После такого исхода - откупорил запрятанную бутылку Тайского рома.
?! а он каким боком к взаимодействию с дллманифест windows
pupsik писал(а):?! а он каким боком к взаимодействию с длл
Я не знаю... но вот... как-то так.
gvido писал(а):Я не знаю
А если обратно включить, то dll - перестаёт работать?
vitaly_l писал(а):А если обратно включить, то dll - перестаёт работать?
Добрый день, всем!!!
Совершенно верно. Ставишь галку, зачищаешь каталог и - не работает.
Снимаешь галку, зачищаешь каталог и - работает.
Кто может доходчиво объяснить, что за хрень творится!?!?!?
