2008-09-11 2 views
0

У меня есть приложение foxpro, которое содержит жестко закодированный путь для значков и растровых изображений. Вот как это делает foxpro, и вокруг нет никакого способа. И это работает отлично, за исключением того, что, когда съемный диск был использован, но не подключен, а когда он подключен, окна назначают ту же букву, что и жестко закодированный путь, при открытии любой формы, содержащей такой путь, появляется следующее сообщение об ошибке (FROM Система Windows, не лисица):Проблема с приложениями Foxp и съемными дисками

Windows, нет диска Исключение c0000012 обработки сообщений Параметры .....

Любая помощь, пожалуйста, Нельсон Мармол

ответ

2

Нельсон:

«Это как это делает foxpro, и вокруг этого не существует »?

Я использую FOX с FoxPro 2.5 для Visual FoxPro 9, и вы НИКОГДА не принуждаетесь каким-либо образом жестко закодировать путь, вы можете использовать SET PATH TO (sYourPath), вы можете вставлять значки и растровые изображения в ваш файл EXE/APP и, следовательно, нет необходимости включать эти ресурсы извне.

Вы говорите, что у вас есть приложение «Foxpro»: какая версия? Старый MS-DOS FoxPro o Visual FoxPro? Если вы используете VFP 8+, вы можете использовать SYS (2450, 1):

Specifies how an application searches for data and resources such as functions, procedures, executable files, and so on. 

You can use SYS(2450) to specify that Visual FoxPro searches within an application for a specific procedure or user-defined function (UDF) before it searches along the SET DEFAULT and SET PATH locations. Setting SYS(2450) can help improve performance for applications that run on a local or wide area network. 


SYS(2450 [, 0 | 1 ]) 



Parameters 
0 
Search along path and default locations before searching in the application. (Default) 

1 
Search within the application for the specified procedure or UDF before searching the path and default locations. 

Один быстрый обходной путь может быть назначить другую букву вашему USB с помощью диспетчера дисков.

0

Я согласен с @PabloG - прошло более десяти лет с тех пор, как я работал с FoxPro (Dos & Windows), но даже в FPW2.6 вы могли определить, где ваше приложение было «от», установить абсолютные или относительные пути поиска и даже связывать ваши ресурсы прямо в «скомпилированный» (хех) exe. Все наши ресурсы находились в отдельной подпапке в папке приложения, файлы базы данных в другой подпапке также под папкой приложения. Как я помню, мы использовали относительные пути для всего.

Не могли бы вы дать нам немного больше информации о проблеме?

Если вы считаете, что это было бы полезно, я мог бы попробовать и выкопать часть нашего кода FPW2.6, где мы делаем такие вещи. :-)

0

Это VFP8 и извините, если я сам не объяснил себя. Также я думаю, что «нет никакого способа обойти это» может показаться плохим. Я имел в виду свойство «ICON» в формах. Поскольку каждый тип компонента разделен в папках (формы, отчеты, меню, значки и т. Д.), Если вы попытаетесь сделать путь относительным, в следующий раз, когда вы отредактируете файл, foxpro будет включать полный путь. Эта проблема началась недавно, и мы обнаружили, что наши клиенты начали использовать внешние USB-накопители в качестве средств для резервного копирования.

+0

Нельсон: вы попробовали _COMMAND = SYS (2450, 1) в CONFIG.FPW? – PabloG 2008-09-11 23:03:42

0

Мне кажется, что вы распространяете формы/отчеты/ярлыки и т. Д. Клиентам. Если вы создаете EXE, вы не должны получать проблему «пути», так как VFP будет вставлять ресурс (в этом случае значок) в exe и будет знать, как его извлечь во время выполнения.

Петерсон

0

Нет, нет раздаточных формы или что-нибудь с приложением ... это ЕХ. Я забыл упомянуть, что EXE сжимается и обфускается KONXIZE 1.0.

0

Если предположить, что приложение может определить путь к файлу значка во время выполнения, то в случае загрузки формы, вы можете установить значок с:

THIS.Icon=<path to file> 
0

Если кто-то проходит через это, ты может вообще-то вроде этого для свойства Icon в окне свойств, чтобы заставить его оценить, что, вероятно, предотвратить путь автоматического заполнения:

= «icon.ico»

вместо icon.ico.