Lazarus 1.6.4 и библиотеки ВербаOW

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

Может быть адреса строк-переменных должны быть выравнены по некоторой границе?

Добавлено спустя 2 минуты 52 секунды:
или стек вызывающей процедуры
gvido
постоялец
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Сообщение gvido »

Kemet писал(а):Может быть адреса строк-переменных должны быть выравнены по некоторой границе?

Добавлено спустя 2 минуты 52 секунды:
или стек вызывающей процедуры

Добрый день. Можно поподробнее об этом? Как проверить?
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

Не понятно, на какой системе запускается программа, разрядность библиотеки
gvido
постоялец
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Сообщение gvido »

Kemet писал(а):Не понятно, на какой системе запускается программа, разрядность библиотеки

Сейчас пытаю все это на windows 10 х64. Есть еще windows 7 x64. Библиотека есть и х86 и х64.
Пробовал собирать простой exe и x86 и х64. Начиная с версии Лазаруса 1.4.4 везде один и тот же возврат вызываемой функции (34- Ошибка GK) при одинаковом коде.
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

а где для чравнения асм примера последней работающей связки лазарус+fpc и неработающей
Аватара пользователя
serbod
постоялец
Сообщения: 449
Зарегистрирован: 16.09.2016 10:03:02
Откуда: Минск
Контактная информация:

Сообщение serbod »

Хм, до какой-то версии Lazarus был 32-bit only. То есть даже при установке x64 ставилась 32.
http://wiki.lazarus.freepascal.org/Wind ... for_SEH.29

Добавлено спустя 7 минут 50 секунд:
А еще в 1.4.4 выпилили поддержку Win98..
gvido
постоялец
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Сообщение gvido »

Kemet писал(а):а где для чравнения асм примера последней работающей связки лазарус+fpc и неработающей

Вот тут два ехе 1.4.2 работает и 1.4.4 уже нет. Код один.
К сожалению, не пользовался никогда отладкой до асемблера. Я совсем не зная асемблера.
Kemet
постоялец
Сообщения: 241
Зарегистрирован: 10.02.2010 18:28:32
Откуда: Временно оккупированная территория
Контактная информация:

Сообщение Kemet »

вроде как нужно скомпилировать юнит с опцией -a, тогда ассемблерный файл останется и его можно будет посмотреть
gvido
постоялец
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Сообщение gvido »

Kemet писал(а):вроде как нужно скомпилировать юнит с опцией -a, тогда ассемблерный файл останется и его можно будет посмотреть

Чего-то я совсем ничего не понял... Три недели башка кругом от этой непонятки. Совсем соображать уже нечем.
Давайте пошагово, что, чаво, куды и как?
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

gvido вот интересно... вы пробовали нечто такого:

Код: Выделить всё

var
    err_code: integer;
   a_s : AnsiString;
begin
  a_s := 'A:\';
   err_code:=InitKey(Pchar(a_s),'');

То что ютф и т.д. вы пробовали - видно, а вот что по поводу простого Ansi скажете.?

п.с.
Сложность вашей ситуации - доступность самой длл и.... Вот нет у меня желания тащить (покупать) её. И смотреть что да как. А так получается страниц эдак гадания.
gvido
постоялец
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Сообщение gvido »

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:\','');


Не, ну вы представляете!?!?!?
Три, три недели!!!!!

После такого исхода - откупорил запрятанную бутылку Тайского рома. :) Напьюся с зюзю....
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

манифест windows
?! а он каким боком к взаимодействию с длл :shock:
gvido
постоялец
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Сообщение gvido »

pupsik писал(а):?! а он каким боком к взаимодействию с длл

Я не знаю... но вот... как-то так. :) Досадно до боли....
Аватара пользователя
vitaly_l
долгожитель
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41
Контактная информация:

Сообщение vitaly_l »

gvido писал(а):Я не знаю

А если обратно включить, то dll - перестаёт работать?
gvido
постоялец
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

Сообщение gvido »

vitaly_l писал(а):А если обратно включить, то dll - перестаёт работать?

Добрый день, всем!!!

Совершенно верно. Ставишь галку, зачищаешь каталог и - не работает.
Снимаешь галку, зачищаешь каталог и - работает.

Кто может доходчиво объяснить, что за хрень творится!?!?!?
Ответить