--------------------------------------------------------------------------------------------------
[ENHANCED] VFP 9.0 FIX - THE MAXIMUM NUMBER OF CHARACTERS FOR THE LABEL.CAPTION PROPERTY
January 2026
--------------------------------------------------------------------------------------------------
CCB
1. BUG:
In vfp9 (and vfp6, vfp7, vfp8), the maximum number of characters for the Label.Caption property is 255,
now the maximum number of characters for the Label.Caption property is 16383.
2. CAUSE:
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Label4b5385 ::
push ebp ;0x004b5385 : 55
lea ebp , dword ptr [ esp - 116 ] ;0x004b5386 : 8d6c248c
;
; ---------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE MAXIMUM NUMBER OF CHARACTERS FOR THE LABEL.CAPTION PROPERTY
; November 2019
; ---------------------------------------------------------------------------------------
; CCB
;
; In vfp9, the maximum number of characters for the Label.Caption property is 255,
; now the maximum number of characters for the Label.Caption property is 16383.
;
; 2019/11/12, by ccb
;
; sub esp , 01F0h ;0x004b538a : 81ecf0010000
mov eax , 04210h ;0x004b538a : 81ecf0010000
call Fun42c118
mov eax , dword ptr [ Data937090 ] ;0x004b5390 : a190709300
mov dword ptr [ ebp + 112 ] , eax ;0x004b5395 : 894570
push ebx ;0x004b5398 : 53
push esi ;0x004b5399 : 56
push edi ;0x004b539a : 57
mov edx , ecx ;0x004b539b : 8bd1
mov dword ptr [ ebp + 0FFFFFEB8h ] , edx ;0x004b539d : 8995b8feffff
mov ebx , dword ptr [ ebp + 124 ] ;0x004b53a3 : 8b5d7c
;
; ---------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE MAXIMUM NUMBER OF CHARACTERS FOR THE LABEL.CAPTION PROPERTY
; November 2019
; ---------------------------------------------------------------------------------------
; CCB
;
; In vfp9, the maximum number of characters for the Label.Caption property is 255,
; now the maximum number of characters for the Label.Caption property is 16383.
;
; 2019/11/12, by ccb
;
pushd 01008h ;0x004b53a6 : 6a57
pop ecx ;0x004b53a8 : 59
xor eax , eax ;0x004b53a9 : 33c0
lea edi , dword ptr [ ebp - 0419Ch ] ;0x004b53ab : 8dbd14ffffff
rep stosd ;0x004b53b1 : f3ab
pushd 057h ;0x004b53a6 : 6a57
pop ecx ;0x004b53a8 : 59
xor eax , eax ;0x004b53a9 : 33c0
lea edi , dword ptr [ ebp + 0FFFFFF14h ] ;0x004b53ab : 8dbd14ffffff
rep stosd ;0x004b53b1 : f3ab
mov eax , dword ptr [ ebx + 28 ] ;0x004b53b3 : 8b431c
;
; ---------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE MAXIMUM NUMBER OF CHARACTERS FOR THE LABEL.CAPTION PROPERTY
; November 2019
; ---------------------------------------------------------------------------------------
; CCB
;
; In vfp9, the maximum number of characters for the Label.Caption property is 255,
; now the maximum number of characters for the Label.Caption property is 16383.
;
; 2019/11/12, by ccb
;
; mov dword ptr [ ebp + 0FFFFFF14h ] , eax ;0x004b53b6 : 898514ffffff
mov dword ptr [ ebp - 0419Ch ] , eax ;0x004b53b6 : 898514ffffff
movzx eax ,word ptr [ ebx + 88 ] ;0x004b53bc : 0fb74358
lea esi , dword ptr [ ebx + 32 ] ;0x004b53c0 : 8d7320
;
; ---------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE MAXIMUM NUMBER OF CHARACTERS FOR THE LABEL.CAPTION PROPERTY
; November 2019
; ---------------------------------------------------------------------------------------
; CCB
;
; In vfp9, the maximum number of characters for the Label.Caption property is 255,
; now the maximum number of characters for the Label.Caption property is 16383.
;
; 2019/11/12, by ccb
;
; lea edi , dword ptr [ ebp + 0FFFFFF18h ] ;0x004b53c3 : 8dbd18ffffff
lea edi , dword ptr [ ebp - 0419Ch ][04h] ;0x004b53c3 : 8dbd18ffffff
movsd ;0x004b53c9 : a5
movsd ;0x004b53ca : a5
movsd ;0x004b53cb : a5
pushd 04h ;0x004b53cc : 6a04
movsd ;0x004b53ce : a5
pop esi ;0x004b53cf : 5e
mov dword ptr [ ebp + 44 ] , eax ;0x004b53d0 : 89452c
lea eax , dword ptr [ ebp + 124 ] ;0x004b53d3 : 8d457c
push eax ;0x004b53d6 : 50
lea eax , dword ptr [ ebp + 0FFFFFEB4h ] ;0x004b53d7 : 8d85b4feffff
push eax ;0x004b53dd : 50
mov edi , dword ptr [ ebp + 0FFFFFEB8h ] ;0x004b53de : 8bbdb8feffff
pushd 010h ;0x004b53e4 : 6a10
mov dword ptr [ ebp + 100 ] , edx ;0x004b53e6 : 895564
pop edx ;0x004b53e9 : 5a
mov ecx , edi ;0x004b53ea : 8bcf
mov dword ptr [ ebp + 124 ] , esi ;0x004b53ec : 89757c
call Fun41993a ;0x004b53ef : e84645f6ff
cmp eax , esi ;0x004b53f4 : 3bc6
jne Label5ff204 ;0x004b53f6 : 0f85089e1400
mov eax , dword ptr [ ebp + 0FFFFFEB4h ] ;0x004b53fc : 8b85b4feffff
Label4b5402 ::
push edi ;0x004b5402 : 57
mov word ptr [ ebp + 70 ] , ax ;0x004b5403 : 66894546
call Fun4b52f1 ;0x004b5407 : e8e5feffff
mov dword ptr [ ebp + 48 ] , eax ;0x004b540c : 894530
or byte ptr [ ebp + 49 ] , 080h ;0x004b540f : 804d3180
pushd 017h ;0x004b5413 : 6a17
lea esi , dword ptr [ ebx + 64 ] ;0x004b5415 : 8d7340
;
; ---------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE MAXIMUM NUMBER OF CHARACTERS FOR THE LABEL.CAPTION PROPERTY
; November 2019
; ---------------------------------------------------------------------------------------
; CCB
;
; In vfp9, the maximum number of characters for the Label.Caption property is 255,
; now the maximum number of characters for the Label.Caption property is 16383.
;
; 2019/11/12, by ccb
;
; lea eax , dword ptr [ ebp + 0FFFFFF14h ] ;0x004b5418 : 8d8514ffffff
push ecx
push esi
push edi
mov ecx , 014h
lea esi , dword ptr [ ebp - 0419Ch ]
lea edi , dword ptr [ ebp + 0FFFFFF14h ]
rep movsb
pop edi
pop esi
pop ecx
lea eax , dword ptr [ ebp + 0FFFFFF14h ] ;0x004b5418 : 8d8514ffffff
mov byte ptr [ ebp + 40 ] , 01h ;0x004b541e : c6452801
call Fun4e5d8c ;0x004b5422 : e865090300
lea eax , dword ptr [ ebp + 0FFFFFEBCh ] ;0x004b5427 : 8d85bcfeffff
push eax ;0x004b542d : 50
mov eax , dword ptr [ ebx + 4 ] ;0x004b542e : 8b4304
call Fun4308bf ;0x004b5431 : e889b4f7ff
mov eax , dword ptr [ ebp + 0FFFFFF0Ch ] ;0x004b5436 : 8b850cffffff
mov esi , dword ptr [ ebp + 0FFFFFEB8h ] ;0x004b543c : 8bb5b8feffff
mov dword ptr [ ebp + 60 ] , eax ;0x004b5442 : 89453c
lea eax , dword ptr [ ebp + 0FFFFFEB0h ] ;0x004b5445 : 8d85b0feffff
push eax ;0x004b544b : 50
;
; ---------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE MAXIMUM NUMBER OF CHARACTERS FOR THE LABEL.CAPTION PROPERTY
; November 2019
; ---------------------------------------------------------------------------------------
; CCB
;
; In vfp9, the maximum number of characters for the Label.Caption property is 255,
; now the maximum number of characters for the Label.Caption property is 16383.
;
; 2019/11/12, by ccb
;
; lea eax , dword ptr [ ebp + 0FFFFFF28h ] ;0x004b544c : 8d8528ffffff
; push eax ;0x004b5452 : 50
; pushd 03Ah ;0x004b5453 : 6a3a
; mov edi , 0100h ;0x004b5455 : bf00010000
; pop edx ;0x004b545a : 5a
lea eax , dword ptr [ ebp - 0419Ch ][14h] ;0x004b544c : 8d8528ffffff
push eax ;0x004b5452 : 50
pushd 03Ah ;0x004b5453 : 6a3a
mov edi , 04000h ;0x004b5455 : bf00010000
pop edx ;0x004b545a : 5a
mov ecx , esi ;0x004b545b : 8bce
mov dword ptr [ ebp + 0FFFFFEB0h ] , edi ;0x004b545d : 89bdb0feffff
call Fun41993a ;0x004b5463 : e8d244f6ff
test eax , eax ;0x004b5468 : 85c0
je Label4a8ce1 ;0x004b546a : 0f847138ffff
mov eax , dword ptr [ ebp + 0FFFFFEB0h ] ;0x004b5470 : 8b85b0feffff
cmp eax , edi ;0x004b5476 : 3bc7
jnb Label5ff20b ;0x004b5478 : 0f838d9d1400
;
; ---------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE MAXIMUM NUMBER OF CHARACTERS FOR THE LABEL.CAPTION PROPERTY
; November 2019
; ---------------------------------------------------------------------------------------
; CCB
;
; In vfp9, the maximum number of characters for the Label.Caption property is 255,
; now the maximum number of characters for the Label.Caption property is 16383.
;
; 2019/11/12, by ccb
;
; mov byte ptr [ ebp + eax + 0FFFFFF28h ] , 00h ;0x004b547e : c6840528ffffff00
mov byte ptr [ ebp + eax - 0419Ch ][14h] , 00h ;0x004b547e : c6840528ffffff00
Label4b5486 ::
pushd 00h ;0x004b5486 : 6a00
xor edx , edx ;0x004b5488 : 33d2
mov ecx , esi ;0x004b548a : 8bce
call Fun438316 ;0x004b548c : e8852ef8ff
pushd 00h ;0x004b5491 : 6a00
mov edx , 0172h ;0x004b5493 : ba72010000
mov ecx , esi ;0x004b5498 : 8bce
mov dword ptr [ ebp + 124 ] , eax ;0x004b549a : 89457c
call Fun436ddb ;0x004b549d : e83919f8ff
pushd 04h ;0x004b54a2 : 6a04
mov ebx , eax ;0x004b54a4 : 8bd8
pop edi ;0x004b54a6 : 5f
sub ebx , edi ;0x004b54a7 : 2bdf
neg ebx ;0x004b54a9 : f7db
sbb ebx , ebx ;0x004b54ab : 1bdb
inc ebx ;0x004b54ad : 43
cmp dword ptr [ ebp + 124 ] , 00h ;0x004b54ae : 837d7c00
jne Label5ff214 ;0x004b54b2 : 0f855c9d1400
Label4b54b8 ::
lea eax , dword ptr [ ebp + 0FFFFFEB4h ] ;0x004b54b8 : 8d85b4feffff
push eax ;0x004b54be : 50
lea eax , dword ptr [ ebp + 0FFFFFEB8h ] ;0x004b54bf : 8d85b8feffff
push eax ;0x004b54c5 : 50
pushd 027h ;0x004b54c6 : 6a27
pop edx ;0x004b54c8 : 5a
mov ecx , esi ;0x004b54c9 : 8bce
mov dword ptr [ ebp + 0FFFFFEB4h ] , edi ;0x004b54cb : 89bdb4feffff
call Fun41993a ;0x004b54d1 : e86444f6ff
cmp eax , edi ;0x004b54d6 : 3bc7
jne Label5ff26a ;0x004b54d8 : 0f858c9d1400
Label4b54de ::
mov edx , dword ptr [ ebp + 48 ] ;0x004b54de : 8b5530
and edx , 040h ;0x004b54e1 : 83e240
movzx ecx ,word ptr [ ebp + 0FFFFFEB8h ] ;0x004b54e4 : 0fb78db8feffff
jne Label47dd32 ;0x004b54eb : 0f854188fcff
test ecx , ecx ;0x004b54f1 : 85c9
jne Label47dd32 ;0x004b54f3 : 0f853988fcff
Label4b54f9 ::
cmp dword ptr [ ebp + 124 ] , 00h ;0x004b54f9 : 837d7c00
jne Label5ff284 ;0x004b54fd : 0f85819d1400
Label4b5503 ::
;
; ---------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE MAXIMUM NUMBER OF CHARACTERS FOR THE LABEL.CAPTION PROPERTY
; November 2019
; ---------------------------------------------------------------------------------------
; CCB
;
; In vfp9, the maximum number of characters for the Label.Caption property is 255,
; now the maximum number of characters for the Label.Caption property is 16383.
;
; 2019/11/12, by ccb
;
; mov dword ptr vfpa_labelcaption_islabelcaption,01h
pushd 01h ;0x004b5503 : 6a01
pushd 017h ;0x004b5505 : 6a17
pushd 00h ;0x004b5507 : 6a00
;
; ---------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE MAXIMUM NUMBER OF CHARACTERS FOR THE LABEL.CAPTION PROPERTY
; November 2019
; ---------------------------------------------------------------------------------------
; CCB
;
; In vfp9, the maximum number of characters for the Label.Caption property is 255,
; now the maximum number of characters for the Label.Caption property is 16383.
;
; 2019/11/12, by ccb
;
; lea eax , dword ptr [ ebp + 0FFFFFF14h ] ;0x004b5509 : 8d8514ffffff
push ecx
push esi
push edi
mov ecx , 0114h
lea esi , dword ptr [ ebp - 0419Ch ]
lea edi , dword ptr [ ebp + 0FFFFFF14h ]
rep movsb
mov byte ptr [ ebp + 39 ] , 00h
pop edi
pop esi
pop ecx
lea eax , dword ptr [ ebp + 0FFFFFF14h ] ;0x004b5509 : 8d8514ffffff
push eax ;0x004b550f : 50
call Fun42628b ;0x004b5510 : e8760df7ff
;
; ---------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE MAXIMUM NUMBER OF CHARACTERS FOR THE LABEL.CAPTION PROPERTY
; November 2019
; ---------------------------------------------------------------------------------------
; CCB
;
; In vfp9, the maximum number of characters for the Label.Caption property is 255,
; now the maximum number of characters for the Label.Caption property is 16383.
;
; 2019/11/12, by ccb
;
Label4b5514 ::
; mov dword ptr vfpa_labelcaption_islabelcaption,00h
Label4b5515 ::
mov ecx , dword ptr [ ebp + 112 ] ;0x004b5515 : 8b4d70
pop edi ;0x004b5518 : 5f
pop esi ;0x004b5519 : 5e
pop ebx ;0x004b551a : 5b
call Fun42bf1d ;0x004b551b : e8fd69f7ff
add ebp , 074h ;0x004b5520 : 83c574
leave ;0x004b5523 : c9
ret 04h ;0x004b5524 : c20400
4. APPLIES TO:
VFP 6.0.8167.0
VFP 6.0.8961.0 (SP5)
VFP 7.0.0.9262
VFP 7.0.0.9465 (SP1)
VFP 8.0.0.2521
VFP 8.0.0.3117 (SP1)
VFP 9.0.0.2412
VFP 9.0.0.3504 (SP1)
VFP 9.0.0.4611 (SP2)
VFP 9.0.0.5015 (SP2)
VFP 9.0.0.5411 (SP2)
VFP 9.0.0.5721 (SP2)
VFP 9.0.0.5815 (SP2)
VFP 9.0.0.6303 (SP2)
VFP 9.0.0.6602 (SP2)
VFP 9.0.0.7423 (SP2)
The bug has been fixed in VFP Advanced.
5. REFERENCE WEBSITES:
1, baiyujia.com:
http://www.baiyujia.com
2, hentzenwerke.com:
https://www.hentzenwerke.com/samplechapters/wnvfp9_sc02.pdf
3, github.io:
https://jeffpar.github.io/kbarchive/kb/159/Q159269/
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|