Log On
Embarcadero Home
Watch, Follow, &
Connect with Us
Share This
QualityCentral
Communities
Articles
Blogs
Resources
Downloads
Help
QualityCentral
Delphi-BCB
IDE
Add Component Template
Background compile
Batch file target
Block Completion
Build Tools
Caliber
Class Completion
Class Explorer
Code Browsing
Code Completion
Code Editor
Code Explorer
Code Parameters
Code Templates
Compiler Message Window
Deployment Manager
Dialogs
Direct
Docking
File Browser
File Handling
Form Designer
Help
History View
IDE Insight
Memory Issues
Menu Designer
Menus
Module Manager
Multi-Monitor Support
Object Inspector
Object TreeView
Open Tools API
Packages
Performance
Printing
Project Explorer(old Object Browser)
Project Management
Refactoring
Repository
Save Desktop
Search
Start Page
Starteam
Startup/Shutdown
Structure Pane
System Resources
ToDoList
Tool Palette
Toolbars/Status Line
Translation Tools
Unit Testing
Version Control
VersionInfo
Views
Visual Form Inheritance
Workgroup(PVCS)
You are not logged in.
Help
Print
Public Report
Report From:
Delphi-BCB/IDE/VersionInfo
[ Add a report in this area ]
Report #:
72811
Status:
Open
LIBPREFIX directive interferes with other functionalities
Project:
Delphi
Build #:
12.0.3210.17555
Version:
12.1
Submitted By:
Adam Wu
Report Type:
Crash / Data loss / Total failure
Date Reported:
4/6/2009 12:58:22 PM
Severity:
Infrequently encountered problem
Last Updated:
3/20/2012 2:24:39 AM
Platform:
All versions
Internal Tracking #:
269029
Resolution:
None
(Resolution Comments)
Resolved in Build:
:
None
Duplicate of:
None
Voting and Rating
Overall Rating:
No Ratings Yet
0.00 out of 5
Total Votes:
None
Description
Version Info:
Basically, if LIBPREFIX directive exists in the .dpr file, the version info part of the project malfunctions.
1. The LIBPREFIX directive causes the "include version information" checkbox in the project options to be disabled, and:
- If the project does not yet have version info, then it cannot be set to have one (until LIBPREFIX directive is manually removed);
- If the project already has version info, then the compiled library will have the version information "stuck" at the last version BEFORE the LIBPREFIX directive was set.
2. When opening a project with missing .res file, normally, the IDE will realize that the .res file is missing and recreate it. But when the LIBPREFIX directive is present, the IDE refuse to generate new .res file for the project.
-----------
Project File References:
If the LIBPREFIX directive appears before the uses clause in the library .dpr file, the IDE project manager seems to stop parsing the following uses clause, and the files referred in the .dpr file are not displayed in the project manager.
Steps to Reproduce:
Create a new DLL
1. Set the version of the DLL to 1.1.0.0, save and compile;
-- the "test.dll" have version of 1.1.0.0, which is expected
2. Enable the library prefix, save and compile;
-- the "prefix.test.dll" have version of 1.1.0.0, which is expected
3. Change the DLL version to 1.2.0.0, save and compile;
-- then new "prefix.test.dll" STILL have version of 1.1.0.0
-- It should have the new version 1.2.0.0
4. Save and close project, then delete the "test.res" file in the project directory. Open the project again:
a) there will be no prompt saying the "test.res" file is created, and
b) the project cannot be compiled because the "test.res" file is missing.
5. Then, delete the LIBPREFIX directive from the DLL's source
-- the instant this directive is gone, the IDE prompts an alert saying the "test.res" file is created.
6. Add some unit file to the project, then, put the LIBPREFIX directive BEFORE the uses clause of the DLL's source;
Save and close the project, then open the project again:
-- In the project manager window, the unit files that are added to this project do not show up
Now move the LIBPREFIX directive AFTER the uses clause of the DLL's source;
Save and close the project, then open the project again:
-- Now, the unit files that are added to this project show up properly in the project manager window
Workarounds
Whenever you need to recreate and/or update the version information of a DLL with libprefix:
1. Open the DLL's source, remove the LIBPREFIX directive,
2. Save all, this allows the IDE to create/update the .res file,
3. Put back the LIBPREFIX directive,
4. Save and compile the project.
Not a scalable solution if you have dozens of libraries... :(
Attachment
None
Comments
Tomohiro Takahashi at 4/6/2009 11:35:01 PM
-
> 2. Enable the library prefix, save and compile;
How do you configure the setting? Please provide more detailed Steps.
Adam Wu at 4/16/2009 12:02:27 PM
-
1. Go to Project Options window;
2. Go to "Application" page;
3. In the Library name group, type 'Prefix.' in the LIB prefix edit box;
4. Click OK to close the project options window
5. Save by clicking "Save All"
Adam Wu at 4/16/2009 12:15:37 PM
-
I've just found out the LIBPREFIX directive is also interfering with the project manager. I have modified the description and steps accordingly.
Tomohiro Takahashi at 4/18/2009 6:02:08 PM
-
> 2. Enable the library prefix, save and compile;
> -- the "prefix.test.dll" have version of 1.1.0.0, which is expected
In my case, version information of "prefix.test.dll" has been set to blank....
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