Article View: borland.public.cppbuilder.migration
Article #128Re: C++ Builer 2007 problem
From: Michael Corby
Date: Sat, 05 Jul 2008 10:46
Date: Sat, 05 Jul 2008 10:46
73 lines
4077 bytes
4077 bytes
I have put the entire code which incorporates the "TDBEedit" line into a new
VCL FORMS
project as you suggested and it builds correctly. However when I put the
same code
into a new DLL project it gives the linker error.
It also gives the same error for TDBComboBox, TDBLookupComboBox and
TDBRadioGroup.
"#include <DBCtrls.hpp>" line is included.
This is one of a number of DLLs I wrote which incorporate generic data entry
and
other routines and I have being using these without problems in various
projects
for a number of years.
Michael Corby
"Leo Siefert" <lIHATESPAMsiefert@senate.michigan.gov> wrote in message
news:egdp64pkvj2ufp2cj6uuj92530sfdoe3qk@4ax.com...
> Michael Corby wrote:
>
>>static_cast<TDBEdit*>(fName->Components[n])->ReadOnly = false;
>>
>>[ILINK32 Error] Error: Unresolved external '__fastcall
>>Dbctrls::TDBEdit::SetReadOnly(bool)'
>>referenced from C:\USERS\PUBLIC\DOCUMENTS\RAD
>>STUDIO\PROJECTS\DLLFILES\DEBUG_BUILD\DLLFORM.OBJ
>
> The fact that you have a linker error shows that your code has been
> compiled without errors.
>
> The linker error indicates that it is unable to locate the VCL library
> module containing the code for the DBEdit control.
>
> If you have imported the project from an earlier version of C++
> builder you should check the imported library paths to make sure that
> they are correct.
>
> If this happens in a new project, then either you have overridden the
> default settings of the IDE or the install is bad.
>
> I tested the type of code you are using in a simple project by
> dropping a TDBEdit control on the form and adding an OnClick handler
> with this code:
>
> void __fastcall TForm3::DBEdit1Click(TObject *Sender)
> {
> static_cast<TDBEdit*>(Sender)->ReadOnly = false;
> }
>
> The project builds correctly.
>
> You could try doing the same in your copy of C++ Builder 2007. If that
> works (if it links with no errors) then you know that the problem is
> somewhere in the project file for the project that does not work. If
> that fails, then I suggest that you either uninstall and reinstall C++
> Builder or perform a repair install to try to correct the problem.
>
> If the problem is in your project settings, you can compare the paths
> and the list of runtime packages in the project options dialog for
> your old project against those in the one that works. Or, you can just
> create a new project and add to it the files from your old project.
>
> BTW - it is safer (but slower) to use a dynamic_cast<> than a
> static_cast<> in situations like this unless you are certain that your
> code ensures that only TDBEdit pointers can be contained in the array.
> If only TDBEdit pointers can be in the array, then it would be cleaner
> and more transparent to declare it as an array of TDBEdit pointers and
> avoid the cast altogether. A cast is often a sign that your code can
> be improved.
>
> - Leo
Technical Details
Message-ID:
<486f50fa@newsgroups.borland.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder1-2.proxad.net!proxad.net!feeder1-1.proxad.net!club-internet.fr!feedme-small.clubint.net!news.isoc.lu!newsgroups.borland.com!not-for-mailReferences:
<486bbcd3@newsgroups.borland.com> <egdp64pkvj2ufp2cj6uuj92530sfdoe3qk@4ax.com>Show Full Headers
Complete Article Headers
X-Google-Thread: 110f51,fb2c2c2025b1b3f9 X-Google-Attributes: gid110f51,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit From: "Michael Corby" <mcorby@indigo.ie> Newsgroups: borland.public.cppbuilder.migration References: <486bbcd3@newsgroups.borland.com> <egdp64pkvj2ufp2cj6uuj92530sfdoe3qk@4ax.com> In-Reply-To: <egdp64pkvj2ufp2cj6uuj92530sfdoe3qk@4ax.com> Subject: Re: C++ Builer 2007 problem Date: Sat, 5 Jul 2008 11:46:15 +0100 Lines: 74 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Windows Mail 6.0.6001.18000 X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6001.18000 NNTP-Posting-Host: 86.41.204.233 Message-ID: <486f50fa@newsgroups.borland.com> X-Trace: newsgroups.borland.com 1215254778 86.41.204.233 (5 Jul 2008 03:46:18 -0700) Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder1-2.proxad.net!proxad.net!feeder1-1.proxad.net!club-internet.fr!feedme-small.clubint.net!news.isoc.lu!newsgroups.borland.com!not-for-mail