Foxpro应用程序和可移动驱动器问题

时间:2020-03-05 18:51:25  来源:igfitidea点击:

我有一个foxpro应用程序,其中包含图标和位图的硬编码路径。这就是foxpro的工作方式,没有办法解决。这项工作正常,除了在使用了可移动驱动器但未连接的情况下,并且在连接时,Windows分配与硬编码路径相同的字母,在打开任何包含该路径的表格时,都会出现以下错误消息(从Windows ,而不是狐狸):

Windows-无磁盘
异常处理消息c0000012参数.....

任何帮助请
纳尔逊·马莫尔

解决方案

回答

尼尔森:

"那是foxpro的工作方式,没有办法解决"?

从FoxPro 2.5到Visual FoxPro 9,我一直在使用FOX,我们从不以任何方式硬编码路径,可以使用SET PATH TO(sYourPath),可以将图标和位图嵌入EXE / APP文件,因此无需在外部包含此资源。

我们说我们有一个" Foxpro应用程序":哪个版本?旧的MS-DOS FoxPro或者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分配另一个字母。

回答

我同意@PabloG,自从我与FoxPro(Dos和Windows)合作以来已有十多年了,但是即使在FPW2.6中,我们也可以确定应用程序从哪里运行,设置绝对或者相对搜索路径,甚至捆绑资源直接进入"已编译"(heh)exe。我们所有的资源都位于app文件夹内的特定子文件夹中,数据库文件也位于app文件夹下的另一个子文件夹中。我记得,我们对所有事物都使用了相对路径。

我们能给我们更多有关该问题的信息吗?

如果我们认为这会有所帮助,我可以尝试在执行此类操作的地方挖掘一些FPW2.6代码。 :-)

回答

是VFP8,很抱歉,如果我不做核心解释。我也认为"没有办法解决"可能听起来很糟糕。我的意思是表格中的属性" ICON"。由于我们在文件夹(表格,报表,菜单,图标等)中分别分隔了每种组件类型,因此,如果我们尝试使路径相对,则下次编辑文件时,foxpro将包含完整路径。这个问题最近开始出现,我们发现我们的客户开始使用外部USB驱动器作为备份手段。

回答

在我看来,我们正在向客户分发表格/报告/标签等。如果生成EXE,则不应出现"路径"问题,因为VFP会将资源(在本例中为图标)嵌入到exe中,并且知道如何在运行时提取资源。

彼德森

回答

不,我们不使用该应用程序分发表格或者任何东西……它是一个exe文件。我忘了提到EXE是用KONXIZE 1.0压缩和混淆的。

回答

假设应用程序可以在运行时确定图标文件的路径,然后在表单的load事件中,可以使用以下方式设置图标:

THIS.Icon=<path to file>

回答

如果其他人遇到此问题,则通常可以在"属性"窗口中为Icon属性键入类似的内容,以强制对其进行评估,这可能会阻止路径自动填充:

=" icon.ico"

而不只是icon.ico。