| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 1275 人关注过本帖, 4 人收藏
标题:VFP9 combox 的BUG,CCB2000在VFP10中已修复。谁有简单的绕过这个BUG的方法 ...
只看楼主 加入收藏
VFPRafer
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2025-4-9
收藏
得分:0 
以下是引用kangss在2025-4-4 17:49:24的发言:


同样的 exe,运行有这个BUG,用 2412 版本的 vfp9r.dll、vfp9rchs.dll 替换掉,再运行就没有这个BUG



图片附件: 游客没有浏览图片的权限,请 登录注册


我用的这个版本,没点问题
4 天前 12:41
VFPRafer
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2025-4-9
收藏
得分:0 
PROCEDURE prdCombobox_Inpt_Atcyen
    PARAMETERS m.cWdgtLtr,m.nCyen,m.lLine

    .ColumnCount=5
    .ColumnLines=0
    .ColumnWidths=[60,80,60,60,30]
    .DisabledItemForeColor=255
    .AddListItem('\]'+fncTran([English desc]))
    .AddListItem('\]'+fncTran([Chinese desc]),.NewItemID,2)
    .AddListItem('\]'+fncTran([Currency sort]),.NewItemID,3)
    .AddListItem('\]'+fncTran([Currency no.]),.NewItemID,4)
    .AddListItem('\]'+fncTran([No.]),.NewItemID,5)
    .AddListItem([\-])
    .AddListItem(SPACE(0))
    IF    SqlExec(_Screen.RmtHdl,[select cAtcy_no,cAtcy_en,cAtcy_cn,cSort_cy from x_Atcy order by cAtcy_en],[x_Tdx])=1
        DO prdES WITH [Pub_setCodeword],ALIAS()
        SCAN FOR fncTran([This currency])$x_Tdx.cSort_cy=.T.
            DO prdCombobox_Inpt_Atcyen_Act WITH ALLTRIM(x_Tdx.cSort_cy)
        ENDSCAN
        IF    m.lLine=.T.
            .AddListItem([\-])
        ENDIF
        m.lLine=.F.
        SCAN FOR fncTran([Often])$x_Tdx.cSort_cy=.T. AND fncTran([This currency])$x_Tdx.cSort_cy=.F.
            DO prdCombobox_Inpt_Atcyen_Act WITH ALLTRIM(x_Tdx.cSort_cy)
        ENDSCAN
        IF    m.lLine=.T.
            .AddListItem([\-])
        ENDIF
        DELETE FOR fncTran([This currency])$x_Tdx.cSort_cy=.T. OR fncTran([Often])$x_Tdx.cSort_cy=.T.
        SELECT DISTINCT LEFT(x_Tdx.cAtcy_en,1) AS cLr FROM x_Tdx INTO CURSOR x_Tdy
        SCAN
            SELECT x_Tdx
            m.nLr=1
            SCAN FOR LEFT(x_Tdx.cAtcy_en,1)==x_Tdy.cLr
                DO prdCombobox_Inpt_Atcyen_Act WITH IIF(EMPTY(x_Tdx.cSort_cy)=.F.,ALLTRIM(x_Tdx.cSort_cy),LOWER(x_Tdy.cLr)+LTRIM(STR(m.nLr)))
                m.nLr=m.nLr+1
            ENDSCAN
            IF    RECNO([x_Tdy])!=RECCOUNT([x_Tdy])
                .AddListItem([\-])
            ENDIF
        ENDSCAN
        USE IN x_Tdx
    ENDIF
    .AddListItem(SPACE(0))
    .AddListItem([\-])
    .AddListItem('\]'+.List[1,1])
    .AddListItem('\]'+.List[1,2],.NewItemID,2)
    .AddListItem('\]'+.List[1,3],.NewItemID,3)
    .AddListItem('\]'+.List[1,4],.NewItemID,4)
    .AddListItem('\]'+.List[1,5],.NewItemID,5)
    .DefaultValue=.List[3]
ENDPROC
4 天前 12:42
VFPRafer
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2025-4-9
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
4 天前 12:44
easyppt
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:351
专家分:850
注 册:2021-11-24
收藏
得分:0 
kangss 老师厉害了, ccb2000 竟然现身了  

4 天前 13:38
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:769
专家分:3010
注 册:2018-3-13
收藏
得分:0 
以下是引用VFPRafer在2025-4-9 12:41:25的发言:
我用的这个版本,没点问题

你这是用的第三方 ActiveX 吧

这家伙很懒,啥也没留下
4 天前 14:02
ccb2000
Rank: 2
等 级:论坛游民
威 望:2
帖 子:18
专家分:40
注 册:2022-2-26
收藏
得分:0 
回复 50楼 csyx
> 初步确定 vfp9.exe(5815) 的修改位置是 0x4c7421(0x4c7420+1),只是不知这个 e9 6f 00 的 6f 是否适用于 5815 (简单测试了一下好像没问题)
> vfp9r.dll(5815) 修改位置是 0x3bdecf(0x3bdece+1)
修改位置,修改代码e9 6f 00 00 00正确。
vfp9t.dll(5815) 修改位置是 0x2F2E03+1,修改代码e9 6f 00 00 00。

4 天前 15:54
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:769
专家分:3010
注 册:2018-3-13
收藏
得分:0 
以下是引用ccb2000在2025-4-9 15:54:06的发言:

> 初步确定 vfp9.exe(5815) 的修改位置是 0x4c7421(0x4c7420+1),只是不知这个 e9 6f 00 的 6f 是否适用于 5815 (简单测试了一下好像没问题)
> vfp9r.dll(5815) 修改位置是 0x3bdecf(0x3bdece+1)
修改位置,修改代码e9 6f 00 00 00正确。
vfp9t.dll(5815) 修改位置是 0x2F2E03+1,修改代码e9 6f 00 00 00。

多谢确认,更感谢您提供的修改方法


这家伙很懒,啥也没留下
4 天前 16:11
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:362
专家分:335
注 册:2013-10-4
收藏
得分:0 
以下是引用csyx在2025-4-9 16:11:26的发言:

多谢确认,更感谢您提供的修改方法


嘿,咱哥俩好像用的同一版本5815。谁来当小白鼠?要不要先猜个拳?——我出包,你出锤子?若是管用,吱一声?
4 天前 16:29
cssnet
Rank: 5Rank: 5
等 级:职业侠客
威 望:5
帖 子:362
专家分:335
注 册:2013-10-4
收藏
得分:0 
以下是引用ccb2000在2025-4-9 15:54:06的发言:

> 初步确定 vfp9.exe(5815) 的修改位置是 0x4c7421(0x4c7420+1),只是不知这个 e9 6f 00 的 6f 是否适用于 5815 (简单测试了一下好像没问题)
> vfp9r.dll(5815) 修改位置是 0x3bdecf(0x3bdece+1)
修改位置,修改代码e9 6f 00 00 00正确。
vfp9t.dll(5815) 修改位置是 0x2F2E03+1,修改代码e9 6f 00 00 00。


非常感谢ccb2000的指导!

现在唯一的犹豫就是:只要一改,哪怕只五个字节,微软的数字签名便立即失效;倘若真对外发布缺失了微软数字签名的vfp9r.dll,不知会不会有版权方面的问题;且,面对客户,似乎也存在无法交代清楚的疑虑……唉,真是愁银!
4 天前 16:45
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:769
专家分:3010
注 册:2018-3-13
收藏
得分:0 
以下是引用cssnet在2025-4-9 16:29:00的发言:
嘿,咱哥俩好像用的同一版本5815。谁来当小白鼠?要不要先猜个拳?——我出包,你出锤子?若是管用,吱一声?

不用了吧,陈先生已在56楼确认5815的位置正确,修复后的执行状况应该与vfpa的相同,而vfpa已经国内外用户检验过,现在应用当不算小白鼠了
简单测试了几次,管用。
还有点点遗憾,我们的安装程序使用的运行库是 msm,想要咱自己修复它有点困难,有空得找找 msm 是否能解包更新


这家伙很懒,啥也没留下
4 天前 16:48
快速回复:VFP9 combox 的BUG,CCB2000在VFP10中已修复。谁有简单的绕过这个BUG的 ...
数据加载中...
 
   



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

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020747 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved