Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » DBISAM Technical Support » Support Forums » DBISAM General » View Thread |
Messages 1 to 5 of 5 total |
Compiling dbsys |
Wed, Nov 26 2008 4:47 AM | Permanent Link |
Pat | Hi all,
I want to see how the REAL men code so I just download the latest dbsys (4.27b1) and tried to compile it in D6. I get 2 errors: 1. field MainForm.ProgressGuage does not have corresponding component 2. Fatal Error: File not found 'FastMM4.dcu' With #1, looks like its a component I do not have. Where do I obtain this? With #2, I downloaded FastMM4 and the ReadMe says: ================================= Usage: ------ Delphi: Place this unit as the very first unit under the "uses" section in your project's .dpr file. When sharing memory between an application and a DLL (e.g. when passing a long string or dynamic array to a DLL function), both the main application and the DLL must be compiled using this memory manager (with the required conditional defines set). There are some conditional defines (inside FastMM4Options.inc) that may be used to tweak the memory manager. To enable support for a user mode address space greater than 2GB you will have to use the EditBin* tool to set the LARGE_ADDRESS_AWARE flag in the EXE header. This informs Windows x64 or Windows 32-bit (with the /3GB option set) that the application supports an address space larger than 2GB (up to 4GB). In Delphi 6 and later you can also specify this flag through the compiler directive {$SetPEFlags $20} *The EditBin tool ships with the MS Visual C compiler. C++ Builder 6: Refer to the instructions inside FastMM4BCB.cpp. ================================= I am pretty lost how to get FastMM installed/working so I can compile dbsys in Delphi 6. Anyone care to explain? (step by step would be great). Thanks a lot. Regards, Pat |
Wed, Nov 26 2008 5:40 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Pat
Just looking at an earlier version ProgressGuage is a TGuage which in D6 was in Samples (unit Gauges). You can replace it with a TProgressBar in which case you'll get further errors as it tries to set missing properties (Progress vs Position, MinValue vs Min, MaxValue vs Max) FastMM as it says should be the first unit declared so Tim will already have put it in. Your contribution is to download it and add the path to it to your library path in Delphi. Roy Lambert [Team Elevate] |
Wed, Nov 26 2008 4:49 PM | Permanent Link |
Pat | Hi Roy,
>Just looking at an earlier version ProgressGuage is a TGuage which in D6 was in Samples (unit Gauges). You can replace it with a TProgressBar in which case you'll get further errors as it tries to set missing properties (Progress vs Position, MinValue vs Min, MaxValue vs Max) Eventually found that I did not have the ProgressGauge on the Samples VCL tab. So went to Component | Install Packages and Samples was not ticked. Installed it and all OK now >FastMM as it says should be the first unit declared so Tim will already have put it in. Your contribution is to download it and add the path to it to your library path in Delphi. Did that and it complies now but when I close the application, while running in the IDE, I get an error message 'Memory Leak Detected'... The small block leaks are..... this is not stopping me looking at the dbsys source but I would be happier if I didn't receive the message every time I close the app (I get no error message when I run dbsys from the .exe). Any ideas on what to look for? Thanks again Roy. Pat |
Thu, Nov 27 2008 2:42 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Pat
I'm running D2006 and what I pop into the .dpr is sharemem, FastMMDebugSupport in 'C:\3rdParty\FastMM\Replacement BorlndMM DLL\FastMMDebugSupport.pas', at the top and then begin ReportMemoryLeaksOnShutdown := DebugHook <> 0; SetMMLogFileName(PChar('C:\zap\Leaks.txt')); at the top of the begin end; part of it. What you then get is a record of what the leaks were and where they came from (can still be a bit difficult to track down). There are two additional points: 1. Some parts of the VCL have leaks and you either put up with them, add them to the know leaks list in FastMM (sorry don't remember how), alter the VCL or stop using whatever it was that caused the leak. My advice is just put up with them. 2. If the app is improperly terminated for any reason you'll probably get a leak reported which doesn't really exist since it will be cleaned up when the app closes properly. eg if I create a TStringList and have its .Free in the form's OnClose event if I put in a breakpoint before the .Free and then terminate the app (eg alt-r-e in the IDE) I won't have freed the stringlist and may have a leak reported. Its not as simple as that and I have no idea where some of the false leaks come from. Roy Lambert [Team Elevate] |
Thu, Nov 27 2008 5:53 AM | Permanent Link |
Pat | Roy,
>I'm running D2006 and what I pop into the .dpr is..... thanks for sharing your experience, I like to see how other coders approach things. Pat |
This web page was last updated on Thursday, April 18, 2024 at 10:42 AM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |