View Issue Details

IDProjectCategoryView StatusLast Update
0006420JEDI VCL00 JVCL Componentspublic2020-05-19 10:49
ReporterLucignoloAssigned To 
PrioritynormalSeverityminorReproducibilityalways
Status feedbackResolutionopen 
Product Version 
Target VersionFixed in Version 
Summary0006420: Linker Error with C++ Builder 6.0
Description[Linker Error] Unresolved external '__fastcall Jvexmask::TJvExCustomMaskEdit::PaintWindow(void *)' referenced from JVDBLABELEDSPINEDIT.OBJ

C++ Builder 6.0 don't link this compinent file
Additional InformationIt seems to lack the procedure PaintWindow of the class TJvExCustomMaskEdit.
But in the JvExMask.pas there is this procedure.
By editing JvExMask.hpp as reported it seems to be working properly; it is absent in the call to the base class.
TagsNo tags attached.

Activities

2015-07-21 20:56

 

JvDBLabeledSpinEdit.zip (4,184 bytes)

obones

2015-09-14 14:15

administrator   ~0021201

I'm sorry, but I can't find any JvDBLabeledSpinEdit file inside the current JVCL sources.

Lucignolo

2015-09-14 21:00

reporter   ~0021205

Sorry for the imprecision.
The problem is not in the class (or file) JvDBLabeledSpinEdit but in the class TJvExCustomMaskEdit.
When the linker tries to find the function Jvexmask::TJvExCustomMaskEdit::PaintWindow(void *) is not even being present in the .pas file where the class was defined. I think the problem is due to a failure to recognize the call of the corresponding base class function. I solved the problem by rewriting imaginative the function in the file .hpp, automatically generated by the compiler, in the same way as the .pas file.
I hope I was comprehensive and useful.
Best regard.

obones

2015-09-15 09:06

administrator   ~0021208

Well, I'm sorry again, but PaintWindow is there at line 117 when I use the latest GIT content:

    virtual void __fastcall PaintWindow(HDC DC);

Lucignolo

2015-09-16 00:41

reporter   ~0021211

Ok...And it is declared virtual so that in derived classes (as in my class JvDBLabeledSpinEdit) must be redefined. But in the file JvExMask.pas this function is not declared virtual and is implemented explicitly (defined in line 128 and implemented by line 630).
it is my fault, I'm missing something?
I hope I was helpful.
Thanks for your concern.
Best regards.

obones

2020-05-19 10:49

administrator   ~0021929

I had a look at the current content of JvExMasks.pas and it contains two classes:

TJvExCustomMaskEdit
TJvExMaskEdit

Both these classes declare PaintWindow and both are using the override keyword, as appropriate because it is 'virtual' in their common ancestor.
I thus don't see any issue here.

Issue History

Date Modified Username Field Change
2015-07-21 20:56 Lucignolo New Issue
2015-07-21 20:56 Lucignolo File Added: JvDBLabeledSpinEdit.zip
2015-09-14 11:26 obones Status new => acknowledged
2015-09-14 14:15 obones Note Added: 0021201
2015-09-14 14:15 obones Status acknowledged => feedback
2015-09-14 21:00 Lucignolo Note Added: 0021205
2015-09-15 09:06 obones Note Added: 0021208
2015-09-16 00:41 Lucignolo Note Added: 0021211
2020-05-19 10:01 obones Assigned To => obones
2020-05-19 10:01 obones Status feedback => acknowledged
2020-05-19 10:49 obones Assigned To obones =>
2020-05-19 10:49 obones Status acknowledged => feedback
2020-05-19 10:49 obones Note Added: 0021929