Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


e440 и Vista

Вы не вошли.

 Поиск | Регистрация | Вход 

Бондаренко Андрей
17.08.2009 13:54:18
#1

Гость

e440 и Vista

Доброе время суток!
Скачал последнюю версию библиотеки lusbapi 3.2
Запустил пример для delphi 6 -работает.
В delphi пытаюсь собрать (скомпилировать) тот же пример но после запуска программа выдает - интерфейс не найден.
Что может быть?
На старой версии все работает нормально, просто увидел новый драйвер под висту и решил проверить у себя.
Прошу помощи. Заранее спасибо!

Бондаренко Андрей
17.08.2009 14:00:20
#2

Гость

Re: e440 и Vista

добавлю - Vista Business 32

Бондаренко Андрей
17.08.2009 14:49:14
#3

Гость

Re: e440 и Vista

проверял на Windows XP, таже самая ситуация.
Системные файлы и библиотека - последние, скачанные с сайта

17.08.2009 17:19:12
#4

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 674

Re: e440 и Vista

Программист по lusbapi сейчас в отпуске. Появится через полторы недели.

Бондаренко Андрей
25.08.2009 10:05:31
#5

Гость

Re: e440 и Vista

Программист еще не вышел из отпуска?

25.08.2009 11:32:12
#6

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 674

Re: e440 и Vista

Выходит 31.08.2009

Павел
25.08.2009 22:59:27
#7

Гость

Re: e440 и Vista

2 Бондаренко Андрей
Внимательно читайте примечание к библиотеке! На странице http://lcard.ru/support/download написано же:
"Внимание!!! В этой версии библиотеки используется новый USB драйвер. Т.о при переходе со старых версий Lusbapi на более новую версию 3.2, конечному пользователю следует через "Device Manager" ("Диспетчер устройств") переключить USB модуль на работу с новым драйвером."

Бондаренко Андрей
26.08.2009 07:24:24
#8

Гость

Re: e440 и Vista

2 Павел
Все это я прочитал, устанавливал и тестировал.
Для ЧИСТОТЫ тестов взял НУЛЁВУЮ машину с вистой и установил НОВЫЙ драйвер и библиотеку. Результат нулевой. Программы, скомпилированные под XP с новой библиотекой запускаются, а если компилируешь программу на висте (уточню - на машине с нуля) - программа говорит что интерфейс не найден (это относится и к написанным мной программам (отлично работающим на ХР) и вашим примерам (тоже отлично работающим  на ХР)

Бондаренко Андрей
26.08.2009 08:51:54
#9

Гость

Re: e440 и Vista

С горем пополам установился драйвер на машину (посредством установки lcomp.exe, замены последней версии библиотеки и драйвера)
Пример риддата компилируется и запускается, но когда доходит до серийного номера - рисует /' /' - пустоту и все, дальше не идет sad

Бондаренко Андрей
26.08.2009 09:14:28
#10

Гость

Re: e440 и Vista

дополню пост выше- компилируется под delphi 7,  тот же самый пример но под delphi 2009 все так же настойчиво говорит что не может обнаружить интерфейс sad

Павел
26.08.2009 11:10:40
#11

Гость

Re: e440 и Vista

2 Бондаренко Андрей

Во-первых, моих примеров Вы видеть не могли - я сторонний разработчик и своих кодов не выкладывал.

Во-вторых, у меня была точно такая же проблема после обновления Lusbapi, по-этому я и написал Вам.
Сам работаю на Vista Home Premium, Turbo Delphi 2006, e440. Проверьте, какая версия dll находится в путях поиска и находится ли прошивка. Возможно, в папке с программой лежит старая версия.
И, на всякий случай, в сведениях о драйвере проверьте, чтобы был Ldevusbu.sys.
Мои проблемы это решило :-)

Бондаренко Андрей
26.08.2009 11:33:38
#12

Гость

Re: e440 и Vista

2 Павел
Прошу прощения, я подумал что вы из L-Card smile
Библиотека 3.2.2.0
Драйвер Ldevusbu.sys
Немного побился с делфями и вот что вышло
delphi 7 говорит:
DLL Version 3.2 --> OK
Module Interface --> OK
Не удалось обнаружить модуль E14-440 в первых 127 виртуальных слотах!
Delphi 2009 говоирт меньше smile
DLL Version 3.2 --> OK
Не могу найти интерфейс модуля E14-440!

Что еще сделать я ума не приложу.
P.S. Павел, с Вами можно связаться по ICQ или Skype?

Павел
26.08.2009 12:49:30
#13

Гость

Re: e440 и Vista

Версия dll у меня та же.

Вот последовательность, которая работает у меня. Итак:
...
  //проверяем версию dll
  DllVersion := GetDllVersion;

  if DllVersion <> CURRENT_VERSION_LUSBAPI then Raise Exception.CreateFmt(WrongDllVersionStr,[DllVersion shr 16,DllVersion and $FFFF,CURRENT_VERSION_LUSBAPI shr 16,CURRENT_VERSION_LUSBAPI and $FFFF]);

  // пробуем получить указатель на интерфейс для модуля E14-140
  pModule := CreateLInstance(pCHAR(/'e440/'));
  if pModule = nil then Raise Exception.Create(NoL140InterfaceStr);

  // пробуем обнаружить модуль в первых 127 виртуальных слотах
  for i := 0 to (MaxVirtualSoltsQuantity-1) do
    //если модуль найден, добавляем номер порта к списку
    if pModule.OpenLDevice(i) then begin
    // получим идентификатор устройства
    ModuleHandle := pModule.GetModuleHandle();

        //номер слота
        SlotNumber:=Number;

        // читаем название модуля в текущем виртуальном слоте
        Temp := /'0123456/';
        if not pModule.GetModuleName(pCHAR(Temp)) then ModuleName:=NoModuleNameStr
                                            else ModuleName:=Temp;

        // пробуем получить скорость работы шины USB
        if not pModule.GetUsbSpeed(@UsbSpeed) then UsbSpeed:=$02;

    // теперь получим номер версии загруженного драйвера DSP
        //Если модуль E14-440, нужно сначала загрузить в память прошивку
        // Код драйвера DSP возьмём из соответствующего ресурса DLL библиотеки Lusbapi.dll
        if not pModule.LOAD_MODULE(nil) then Raise Exception.Create(CannotLoadLBios);

        // проверим загрузку модуля
        if not pModule.TEST_MODULE() then Raise Exception.Create(CannotTestLBios);
    end;

...

Павел
26.08.2009 12:54:50
#14

Гость

Re: e440 и Vista

Да, на всякий случай, выполните RemoveLusbapi.bat и CopyLusbapi.bat от имени Администратора из архива с библиотекой и примерами...

Скорее всего, где-то не совпадают версии...

Бондаренко Андрей
27.08.2009 09:22:42
#15

Гость

Re: e440 и Vista

Павел, ничего не помогло - запускал batы, попробовал ваш код - те же самые сообщения sad
видимо всетаки проблемма в связке библиотеки и висте бизнес

Павел
27.08.2009 16:25:03
#16

Гость

Re: e440 и Vista

Не верю я в такие коренные отличия версий системы одной... dll есть dll.
На всякий случай, Вы скопировали из обновлённого архива файл объявлений Lusbapi.pas?
Можно попробовать удалить все копии Lusbapi.dll с компьютера (или переименовать для резерва), выполнить CopyLusbapi.bat от имени Администратора. И проверить на каком шаге вывалится программа...

Да, если не находится модуль, то возможно он просто зарезервирован либо ранее в алгоритме (у меня такое тоже было поначалу), либо в другой программе...

Не поможет - придётся дождаться вторника, когда появится штатный программист.

Бондаренко Андрей
28.08.2009 11:00:14
#17

Гость

Re: e440 и Vista

Нашел ноут с вистой хоум, установил delphi 7 - компилируется все норм.
После всяких действий, на висте бизнес - в делфи 7 тоже все запустилось (с небольшими переделками)
Итог - делфи 2009 затыкается на поиске интерфейса и не находит его. имя интерфейса передается как PCHAR(/'e440/') - в делфи 7  это был тип PAnsiChar а в delphi 2009 - это PWIDEChar - возможно в этом проблемма, как ее решить - не понятно

Бондаренко Андрей
28.08.2009 11:08:23
#18

Гость

Re: e440 и Vista

Я понял в чем проблемма (процентов на 80 точно)
PCHAR используется в библиотеке а в delphi 2009 это PWIDEChar, в общем нужно в библиотеке вставлять PAnsiChar. Хотя я могу и ошибкаться.
ЗЫ. Интерфейс стал находиться именно после запены PChar на PAnsiChar
Но дальше идет GetModuleName а в нем не получается исправить эту проблему

Бондаренко Андрей
28.08.2009 11:17:27
#19

Гость

Re: e440 и Vista

УРА!!!! Проблема с pchar решена!
В общем инициализация происходит нормально (жалко что придется весь код переписывать свой старый). Надеюсь проблем больше не возникнет wink

Павел
28.08.2009 13:41:38
#20

Гость

Re: e440 и Vista

Поздравляю! :-)
Сидя на 2006 я забыл, что они всё перевели на Wide... Надо будет запомнить, если перееду!
Удачи :-)