Btrieve 6.15 (Win 95) не загружается автоматически в среде VB 6.0 IDE

Недавно я купил новую башню и использовал стороннее программное обеспечение для портирования всех моих инструментов разработки (это отдельная история), включая VB 6.0, все мои сторонние инструменты и Btrieve. Единственная проблема, которая у меня есть с Btrieve, больше раздражает, чем что-либо еще. В этой новой башне я должен не забыть запустить скомпилированное приложение один раз, прежде чем пытаться запустить его из среды IDE, иначе оно не загрузится и впоследствии вернет соответствующую ошибку при попытке открыть первый файл.

Если кто-то еще сталкивался с этим и знает, как это исправить, я был бы очень признателен.


person Bill Hileman    schedule 08.05.2017    source источник
comment
Определите не загружается и, возможно, сообщите нам, какой номер ошибки и описание вы видите.   -  person Bob77    schedule 08.05.2017
comment
Btrieve — программа сервера баз данных. Он просто перестал запускаться, когда я запускаю свое приложение из среды IDE. Сообщение об ошибке не имеет смысла ни для вас, ни для других, поскольку это мое собственное сообщение об ошибке. Достаточно сказать, что он не может открыть файл Btrieve, потому что сервер Btrieve не запущен/не загружен. Мне только интересно, почему он вдруг перестал автозагружаться на моем новом компе после переноса. Это не то, что моему приложению нужно инициировать явно.   -  person Bill Hileman    schedule 08.05.2017
comment
Я должен добавить, что когда я сталкиваюсь с этим (на данный момент), все, что мне нужно сделать, это запустить мое скомпилированное приложение и закрыть его. Потом все остальное время работает в IDE.   -  person Bill Hileman    schedule 08.05.2017
comment
Пахнет как проблема виртуализации UAC, но мы до сих пор не знаем, какое исключение возникает, поэтому трудно чем-то помочь.   -  person Bob77    schedule 09.05.2017
comment
@BillHileman: Btrieve установлен как служба? Автоматический старт? Давно уже не пользовался, не помню.   -  person nabuchodonossor    schedule 09.05.2017
comment
@ Bob77 Это вовсе не исключение. Я понимаю путаницу. Когда я пытаюсь открыть файл в Btrieve, вызов сервера возвращает статус 22 (я думаю), в зависимости от того, что именно означает, что Btrieve не загружен. Дело не в том, что я не знаком с этой ошибкой, мне просто интересно, почему она возникает только на этой новой машине и только при запуске (в первый раз) из среды IDE.   -  person Bill Hileman    schedule 09.05.2017
comment
@nabuchodonossor Уверен, это услуга. Я полагаю, что сама программа (по памяти) - это wbtrv32.exe. Я использую старые элементы управления Smithware ActiveX для доступа к файлам данных. Позже Smithware была поглощена Pervasive. Большинство разработчиков используют свои версии SQL, но есть устаревшие приложения, такие как мое, которым по-прежнему требуется более старая версия.   -  person Bill Hileman    schedule 09.05.2017
comment
@BillHileman: Как насчет следующего обходного пути: вы создаете очень маленькую программу, чтобы просто открыть файл btrieve и немедленно выйти. И эту программу вы можете поставить в автозапуск - она ​​должна выполнять вашу ручную задачу. По крайней мере, пока вы не нашли причину. Кстати, я использую VsamEx... тоже очень старый стиль g   -  person nabuchodonossor    schedule 10.05.2017


Ответы (1)


Проверив эту страницу в Википедии, я понял, что мне нужно сосредоточиться на двух файлах: w32mkde.exe и wbtrv32.dll

Запустив исполняемый файл вручную, он загрузил бы движок, и мое приложение затем запустилось бы в среде IDE, но мне все равно пришлось запускать исполняемый файл вручную. Желаемое и оригинальное поведение на моей старой машине заключалось в том, что запуск моей программы в среде IDE автоматически запускал исполняемый файл сервера. Из вики-страницы я узнал, что именно wbtrv32.dll на самом деле вызывается программой, которая, в свою очередь, при необходимости вызывает exe.

Недавно я перенес свою старую машину на новую башню, и многие файлы ocx и dll в \windows\syswow64 не переносились. Кажется, нет шаблона, к каким, но мне пришлось перерегистрировать те, которые я нашел. Там должна быть какая-то ссылка, потому что, когда я скопировал файлы W*.exe и W*.dll из моей рабочей папки резервного копирования в папку syswow64, он внезапно снова заработал. Скорее всего просто поврежденная копия файла dll. Я считаю, что причина того, что скомпилированная версия работала правильно, заключается в том, что эти файлы dll и exe были установлены в папку приложения и, по-видимому, были в порядке, но не вызывались при запуске из IDE.

Надеюсь, это может помочь кому-то еще когда-нибудь.

person Bill Hileman    schedule 29.05.2017