Linker Error: C++ and Build 2013.08.130521

TeeChart VCL for Borland/CodeGear/Embarcadero RAD Studio, Delphi and C++ Builder.
Post Reply
rgsolutions
Newbie
Newbie
Posts: 46
Joined: Tue Jun 04, 2013 12:00 am

Linker Error: C++ and Build 2013.08.130521

Post by rgsolutions » Tue Jun 04, 2013 11:51 pm

I just downloaded and installed this update. When I attempt to link a 32bit DLL, I get the following error:

[ilink32 Error] Error: 'C:\SOFTWARE\PACKAGES\STEEMA SOFTWARE\TEECHART 2013 FOR RAD XE4\DELPHI18.WIN64\LIB\OBJ\TEEUI918.BPI' contains invalid OMF record, type 0x21 (possibly COFF)

It appears that the processing is attempting to link the 64bit library for the 32bit DLL. I have the standard TEEINCPATH and TEELIBPATH entries (there are none for 64bit), and they point to the Win32 directory (...\Delphi18.win32\Include and ...\Delphi18.win32\Lib). My project doesn't even have a 64bit target, only 32bit.

I should state that I have successfully compiled this DLL with the Trial release that I downloaded for XE4 on 3 May.

Yeray
Site Admin
Site Admin
Posts: 9602
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: Linker Error: C++ and Build 2013.08.130521

Post by Yeray » Wed Jun 05, 2013 9:11 am

Hi,

Check the paths are on the top of the respective lists. Note the \Lib\Obj path:

Include path:
...\Delphi18.win32\Include

Library path:
...\Delphi18.win32\Lib
...\Delphi18.win32\Lib\Obj

Then, try with a new simple project with just a chart on the main form. Does it work fine for you?
If the new simple project works fine but not the old one, I'd check the project paths. Note there may be some paths hardcoded in the project files, so the only way to correct it is manually editing (with notepad or similar) the project files and correct any wrong reference you may find.
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

rgsolutions
Newbie
Newbie
Posts: 46
Joined: Tue Jun 04, 2013 12:00 am

Re: Linker Error: C++ and Build 2013.08.130521

Post by rgsolutions » Wed Jun 05, 2013 11:58 pm

I added the paths and the project now links.

I have a new problem.

When I recompile all the processing and run the application, it faults in a DLL on the following statement:

chart = new TChart (Application);

It is faulting TCustomChart => TCustomTeePanelExtended => TCustomTeePanel => TDGIPlusCanvas => InitInstance (of TObject).

This processing worked on the Trial for the XE4. I started to look into the files provided in the release. I found that the Tee918.bpl file had a size of 1730KB for 32bit and 2314KB for 64bit. When I looked into the system32 directory, I found that this file had a size of 2314KB (the 64bit file size). When I looked in the SysWOW64 directory, I did not see any TChart files.

Guessing the files might be installed wrong, I copied over the 32bit files to the system32 directory and tried that (after restarting the system). It had the same fault.

Right now I cannot use your update and tomorrow I will have to revert back to your trial version. Do you have any ideas of what I might be able to try before I do go back? Remember, this processing is all 32bit and all worked on the Trial version of XE4. My suspicion is that it is not linking correctly, but I could be wrong.

rgsolutions
Newbie
Newbie
Posts: 46
Joined: Tue Jun 04, 2013 12:00 am

Re: Linker Error: C++ and Build 2013.08.130521

Post by rgsolutions » Thu Jun 06, 2013 7:45 pm

I tried to revert back to the Trial version of XE4, and the processing fails. Something had changed since I last used the Trial version so I started to look at the processing. Since the Win64 files were in the system32 directory, I replaced the runtime files with the corresponding Win32 files. It still failed. (As a note, since the install of the Trial put Win64 files in system32 and I was able to successfully run, I would assume that the TeeChart processing no longer uses these files for execution from the IDE).

I then started to look at the DLLs that use TChart (there are 4 with one exe). Two looked okay in that it was (supposedly) including the proper runtime bpi files. The third one did not have any runtime bpi files so I attempted to add Tee918.bpi to the runtime file list. I got the following error message:

"Another file with the same base name (C:\Software\Packages\Steema Software\TeeChart 2013 for Rad XE4\Delphi18.win64\Lib\Obj\Tee918.bpi) is already on the search path."

I must reiterate that this project, and all of the other projects in the project group do not have any have 64bit targets, only 32bit targets. I get this message regardless of whether I have a $(TEELIBPATH)\Obj statement or not.

Since I was able to compile and run successfully on the Trial version of XE4, I must assume that your latest build has changed something in my XE4 C++ Builder environment. I took a look in the registry and found that the "HKEY_CURRENT_USER\Software\Embarcadero\BDS\11.0\C++\Paths\Win32" had been updated to include the Steema search paths. Unfortunately, in this list the Win64 appears first, then OSX, and then finally Win32.

I am not completely shut down and unable to use XE4 at all. I need some advice about what to do as I am reluctant to modify registry entries.

Yeray
Site Admin
Site Admin
Posts: 9602
Joined: Tue Dec 05, 2006 12:00 am
Location: Girona, Catalonia
Contact:

Re: Linker Error: C++ and Build 2013.08.130521

Post by Yeray » Fri Jun 07, 2013 8:08 am

Hi,

First of all, note Windows\System32 is the folder for the 64bit runtime libraries and Windows\SysWOW64 is the folder for the 32bit runtime libraries, in the 64bit Windows:
http://en.wikipedia.org/wiki/WoW64#Regi ... ile_system

If you suspect TeeChart was wrongly installed, I'd suggest you to reinstall TeeChart running TeeInstall utility in the TeeChart installation folder. Note you will have to run it twice, one to uninstall the component from the IDE, and a second one to install it again. This process doesn't remove the folder structure of the TeeChart installation and you won't have to register the component again; it just uninstalls the component from the target IDE if found, otherwise, it installs the component present in the same folder as TeeInstall being run into the target IDE.

Here there are some instructions to make sure the packages and the paths loaded in the IDE are correct:
- Open the IDE with no project loaded.
- Go to "Component/Install Packages...". In this list, check the TeeChart Pro components are selected and not the Standard version that was shipped with the IDE.
- Go to "Tools/Options.../Environment Options/Delphi Options/Library". Here check the "Library path" and "Debug DCU path". Check the following paths are on the TOP of the lists:

32-bit Windows:
Library path wrote: \Delphi18.win32\Lib
Debug DCU path wrote: \Delphi18.win32\Lib
64-bit Windows:
Library path wrote: \Delphi18.win64\Lib
Debug DCU path wrote: \Delphi18.win64\Lib
OS X:
Library path wrote: \Delphi18.osx32\Lib
Debug DCU path wrote: \Delphi18.osx32\Lib
iOS Device:
Library path wrote: \Delphi18.iOSDevice\Lib
Debug DCU path wrote: \Delphi18.iOSDevice\Lib
iOS Simulator:
Library path wrote: \Delphi18.iossimulator\Lib
Debug DCU path wrote: \Delphi18.iossimulator\Lib
- If you are interested in C++Builder, go to "Tools/Options.../Environment Options/C++ Options/Paths and Directories". Here check the "System Include path" and "Library path". Check the following paths are on the TOP of the lists:

32-bit Windows:
System Include path wrote: \Delphi18.win32\Include
Library path wrote: \Delphi18.win32\Lib
\Delphi18.win32\Lib\Obj
64-bit Windows:
System Include path wrote: \Delphi18.win64\Include
Library path wrote: \Delphi18.win64\Lib
\Delphi18.win64\Lib\Obj
OS X:
System Include path wrote: \Delphi18.osx32\Include
Library path wrote: \Delphi18.osx32\Lib
\Delphi18.osx32\Lib\Obj
Note all these paths are not complete; they are relative to where you installed TeeChart. Ie, if you've installed TeeChart at
"C:\Program Files (x86)\Steema Software\TeeChart 2013 for RAD XE4"
where says "\Delphi18.win32\Lib" it's meant to be:
"C:\Program Files (x86)\Steema Software\TeeChart 2013 for RAD XE4\Delphi18.win32\Lib"

As said above, please check the above paths are on the top of their respective lists, and also check there's no other reference to an older TeeChart installation.

After checking all the above, try to build and run a new simple project with just a chart on the form. If it doesn't work fine, the complete installation of the component or the IDE installation may be corrupt. Then, I'd suggest you to fully uninstall TeeChart (running the uninstaller), repair the entire IDE with the appropriate disk and install TeeChart again.
Best Regards,
ImageYeray Alonso
Development & Support
Steema Software
Av. Montilivi 33, 17003 Girona, Catalonia (SP)
Image Image Image Image Image Image Please read our Bug Fixing Policy

rgsolutions
Newbie
Newbie
Posts: 46
Joined: Tue Jun 04, 2013 12:00 am

Re: Linker Error: C++ and Build 2013.08.130521

Post by rgsolutions » Sat Jun 08, 2013 4:12 pm

Due to the amount of confusion and issues I had with the setup, I decided to start over with everything. I uninstalled TeeChart and XE4, and then cleaned up all the remaining references. I then reinstalled C++ Builder XE4 and then I installed the latest TeeChart build (2013.08.130521). Once complete, I then meticulously checked my various projects (within the project group) to ensure that all was proper. Once complete, I then rebuilt the entire set of files.

The processing still fails with an access error (write of 0x00000000).

Since I realize that any error message of this type would not be much help to you, I then attempted to create a test case. I was able to successfully create a test case. However, since it was done with a clean install of both C++ Builder XE4 and the latest TeeChart, I am confident that it is not due to any linkage or setup issues. Therefore, I am going to conclude this thread and open a new one with more details about the problem.

wGraves
Newbie
Newbie
Posts: 1
Joined: Mon Jun 03, 2013 12:00 am

Re: Linker Error: C++ and Build 2013.08.130521

Post by wGraves » Wed Jun 12, 2013 4:37 am

Problems with TChart for XE4, 32 and 64 bit.

When I override the two string routines by commenting them out, I still fail:

"Project NtwXe2VariableGeometry.exe raised exception class $C0000005 with message 'access violation at 0x5005f23b: read of address 0xf8f424f3'.

When I hit 'break', I get:

Source File not Found: VCLTee.TeCanvas.pas

Path to Source File:

VCLTee.TeCanvas.pas

Error: File VCLTee.TeCanvas.pas not found

The Call Stack Shows:

:5005f23b rtl180.@System@@ClassCreate$qqrpvzc + 0x7
:004AC004 Vcltee::Tecanvas::initialization()
:32d9d069 ; C:\Program Files (x86)]\Embarcadero\RadStudio\11.0\bin\CC32130MT.DLL
:32d9d3e3 CC32130MT.__wstartup + 0xeb


Your includes are pulling up a pascal include as a part of a C++ linkage. I've been working on this with Embarcadero where I have a maint. license, but it looks like it might be your library.

I am a licensee of TeeChart Pro 2012, 13

Bill Graves

Narcís
Site Admin
Site Admin
Posts: 14730
Joined: Mon Jun 09, 2003 4:00 am
Location: Banyoles, Catalonia
Contact:

Re: Linker Error: C++ and Build 2013.08.130521

Post by Narcís » Thu Jun 13, 2013 11:44 am

Hi Bill,
wGraves wrote:When I override the two string routines by commenting them out, I still fail:

"Project NtwXe2VariableGeometry.exe raised exception class $C0000005 with message 'access violation at 0x5005f23b: read of address 0xf8f424f3'.
I'm sorry but it's not clear to me under which specific circumstances do you get this error. Could you please provide more detailed information and, if possible, attach a simple example project we can run "as-is" to reproduce the problem here?

Thanks in advance.
Best Regards,
Narcís Calvet / Development & Support
Steema Software
Avinguda Montilivi 33, 17003 Girona, Catalonia
Tel: 34 972 218 797
http://www.steema.com
Image Image Image Image Image Image
Instructions - How to post in this forum

Post Reply