| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2871 人关注过本帖
标题:编译后,AVCXCLASSES读取类库中有多少个类时,提示类库不存在。。
只看楼主 加入收藏
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
结帖率:98.98%
收藏
已结贴  问题点数:20 回复次数:12 
编译后,AVCXCLASSES读取类库中有多少个类时,提示类库不存在。。
前提:
文件目录 form,class
文件有
form\表单1.scx,表单2.scx
class\myform.vcx
编译后,不删除 form,class目录中的文件,测试都正常用过
*!* 读取myform.vcx中,有多少个类
LOCAL cFrm_Name
cFrm_Name = ""
AVCXCLASSES(aClassAry1,"Class\MyForm") && 类名MyForm
IF ALEN(aClassAry1,1) > 0
   FOR ii = 1 TO ALEN(aClassAry1,1)
       cFrm_Name = cFrm_Name + "," + aClassAry1[ii,1]
   ENDFOR
ENDIF
MESSAGEBOX(cFrm_Name)
图片附件: 游客没有浏览图片的权限,请 登录注册

*!* 判断表单1.scx是否存在
MESSAGEBOX(file("form\表单1.scx"))  && 返回 .t.

但如果把form,class目录中的文件都删除掉,
AVCXCLASSES(aClassAry1,"Class\MyForm") && 会提示类库文件MyForm.vcx不存在,
图片附件: 游客没有浏览图片的权限,请 登录注册

但判断表单1.scx,却正常,返回 .t.
为什么

搜索更多相关主题的帖子: 文件 表单 form class 类库 
2020-04-05 13:35
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
** 设置系统路径
*************************************************
cSysPath=LEFT(SYS(16),RAT("\",SYS(16)))
SET DEFAULT TO (cSysPath)
SET PATH TO (cSysPath)
SET CLASSLIB TO Class\MyClass
SET CLASSLIB TO Class\MyForm ADDITIVE
2020-04-05 13:37
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
类似这个,大家可以测试
1.不删除文件测试
2.除了项目1.EXE 文件,其他全部删除
Test.rar (18.09 KB)
2020-04-05 14:17
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:0 
**AVCXCLASSES(aClassAry1,"Class\MyClass") && 类名MyForm
AVCXCLASSES(aClassAry1,"MyClass") && 类名MyForm

已经
SET CLASSLIB TO Class\MyClass
SET CLASSLIB TO Class\MyForm ADDITIVE


[此贴子已经被作者于2020-4-5 14:59编辑过]

2020-04-05 14:54
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43182
注 册:2014-5-20
收藏
得分:0 
奇怪
原封不动编译EXE,再复制到其他文件夹不正常
直接编译EXE到其他文件夹正常

2020-04-05 15:19
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1710
专家分:3318
注 册:2012-2-29
收藏
得分:5 
回复 3楼 mywisdom88
①不删除文件夹测试完全正常。
②仅保留exe文件,出现你上述相同错误。
③在②的错误之后,在Class空文件夹里,将一文本文件改名为myclass.vcx,再次运行,显示:
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2020-4-5 16:56编辑过]

2020-04-05 16:54
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
所以,不知道是什么问题啊,如果没有包含进去的话,那,测试的按钮,怎么可以用呢。
同样,如果是包含进去,不会释放文件,那 file("form\表单1.scx")返回 .t.又怎么解析。

[此贴子已经被作者于2020-4-5 17:34编辑过]

2020-04-05 17:32
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
我同时改了一下,同时用 file()检查2个文件;结果file()都可以检查到文件;
图片附件: 游客没有浏览图片的权限,请 登录注册

Test.rar (18.71 KB)
2020-04-05 17:47
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用schtg在2020-4-5 16:54:15的发言:

①不删除文件夹测试完全正常。
②仅保留exe文件,出现你上述相同错误。
③在②的错误之后,在Class空文件夹里,将一文本文件改名为myclass.vcx,再次运行,显示:

是的,我编译后,把EXE文件外的全部删除,随便把1个文本文件改名为myclass.vcx,是可以正常运行;然后,我把myclass.vcx中的类,增加1个,变成3个,结果读取出来的还是2个,也就是说,他还是读EXE文件包含进去的那个。难道是这个函数的bug???
2020-04-05 17:56
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
cLibraryName
指定类库的名称,AVCXCLASSES() 将类信息放在 ArrayName 指定的数组中。cLibraryName 可以包含该类库的路径。如果所指定的类库不存在,会造成一个错误。
2020-04-05 18:11
快速回复:编译后,AVCXCLASSES读取类库中有多少个类时,提示类库不存在。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031104 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved