Log On
Embarcadero Home
Watch, Follow, &
Connect with Us
Share This
QualityCentral
Communities
Articles
Blogs
Resources
Downloads
Help
QualityCentral
Delphi-BCB
ActiveX
AddOn
Bold
CodeGuard
CodeGuard 32
CodeGuard Config
IDE Interaction
Compatibility
Compiler
CORBA
Database
Databinding
Debugger
Demos
Documentation
Enterprise
FireMonkey
IDE
Install
International
Internet
Linker
MFC Support
Midas
Modeling
MTS
Resourcing
RTL
SOAP
TASM/TD
Tools CL
VCL
VCLX
You are not logged in.
Help
Print
Public Report
Report From:
Delphi-BCB/CodeGuard
[ Add a report in this area ]
Report #:
86335
Status:
Closed
CG Error if two CRTDLLs are loaded
Project:
C++Builder
Build #:
3593.25826
Version:
14.0
Submitted By:
Registered Studer AG
Report Type:
Basic functionality failure
Date Reported:
7/16/2010 5:15:16 AM
Severity:
Serious / Highly visible problem
Last Updated:
3/20/2012 2:24:39 AM
Platform:
All versions
Internal Tracking #:
278510
Resolution:
Fixed
(Resolution Comments)
Resolved in Build:
:
15.0.3870.33544
Duplicate of:
None
Voting and Rating
Overall Rating:
No Ratings Yet
0.00 out of 5
Total Votes:
None
Description
None
Steps to Reproduce:
Two Projects:
- First Project is DLL with DynamicRTL (must be Dynamic)
- Second Project is EXE (Console) with DynamicRTL
The EXE loads the DLL on startup (Binding 2). The CodeGuard reports a error saying that two different CRTDLLs are loaded (name of the DLL-Project) (c:\windows\system32\cc32100mt.dll)
This behavior is new in C++ Builder 2010. Older version worked fine. We need a solution on that, since we strongly relay on CodeGuard for Code Quality reasons.
Workarounds
None
Attachment
Tests.zip
Comments
Tomohiro Takahashi at 7/17/2010 8:00:50 PM
-
I confirmed your issue and opened this report.
> - First Project is DLL with DynamicRTL (must be Dynamic)
But, generally speaking, we should not use Dynamic RTL for .DLL project.
Please take a look at this.
[Release Notes for Embarcadero Delphi 2010 and C++Builder 2010 >> Cannot Use Dynamic Link RTL if Dynamically Load DLL]
http://support.codegear.com/article/39758#RADStudio2010ReleaseNotes-VCL%2FRTLNotes
Zach Saw at 7/20/2010 6:14:03 PM
-
> But, generally speaking, we should not use Dynamic RTL for .DLL project.
Using Dynamic RTL doesn't mean he's loading the DLL dynamically -- it has nothing to do with that link you provided.
And, where do you see in the link saying we shouldn't use dynamic RTL for dll projects??? -- it only says that it is a known issue and a genuine workaround is available.
Registered Studer AG at 7/18/2010 6:41:27 AM
-
I'm suprised to hear this. It used to work with older versions (borland 6, CodeGear 2007) and in fact, technically it works fine (besides the message Two different CRTLDLLs are loaded from CodeGuard), meaning there is no memory leak or access violation.
We need DynamicRTL because we allocate memory in this DLL and the memory is released in the EXE (for instance when using std::wstring from STL). This works only using DynamicRTL, otherwise you'll get a CodeGuard message saying that the memory you are releasing was allocated in a different RTL.
I found some other interesting issue: If I compile the DLL with dynamic RTL but set _TCHAR to char (instead of wchar_t) CodeGuard has no problem (no such message Two different CRTLDLLs are loaded).
So I have the feeling that if the project uses _TCHAR as wchar_t the linking with cg32.lib produces a mismatch which is detected when loading the DLL.
View Your Reports
Search
Server Response from: ETNACODE01
Developer Tools
Blackfish SQL
C++Builder
Delphi
FireMonkey
Prism
InterBase
JBuilder
J Optimizer
HTML5 Builder
3rdRail & TurboRuby
Database Tools
Change Manager
DBArtisan
DB Optimizer
ER/Studio
Performance Center
Rapid SQL
Technical Articles
Tutorials
White Papers
Press Releases
Newsletters
Add Content (GetPublished)
Audio
Audio & Video
Video
Bugs & Suggestions (QualityCentral)
Discussion Forums
Examples (CodeCentral)
Tags
Technology Partners
Downloads
Free Trials
Registered User Downloads
Beta Programs
Add Content (GetPublished)
Articles
Blogs
Bugs & Suggestions (QualityCentral)
Discussion Forums
Examples (CodeCentral)
Member Services
About
Connect with Us