Category: Uncategorized

Arnor Baldvinsson
04/16/09

Online manuals updated

I have updated the online manuals for the products that have those. That includes Outlookbar, PowerToolbar, Previewer, Utilities, XP-Taskpanel and XP-Theme.

The documentation for some of the older tools is still in Word/PDF format only and will not be updated until I get those into Help and Manual.

Arnor Baldvinsson

Arnor Baldvinsson
04/15/09

Clarion 7 compatible installs

We have made Clarion 7 compatible installs available for ALL of our products! Those who have a valid subscription can log in and download the latest installs. The installs have been tested with the last 2-3 builds of Clarion 7 and anything we have found has been fixed if we could. There is a couple of items that we found to be bugs in Clarion and we are certain that those will be fixed by Softvelocity as soon as possible.

One problem we ran into was with our Checkbox Fixer. It fixes checkboxes and radio buttons on reports so they look better and are more easily readable. We create controls at runtime and rely on getting the font information from the controls on the report. In Clarion 6.3 and older this worked flawlessly. In Clarion 7 the font size for Radio buttons is not related to the actual font size - not sure what it is related to. On our test machines here we would get a value of 25 points while Softvelocity confirmed that they were getting values around 64 points!

Another issue with Clarion 7 is that we cannot use the Menu theming in PowerToolbar in Clarion 7 so it has been disabled. Clarion 7 uses owner drawn menus and there is no way to make the PowerOffice menus work with them unless SV makes it possible to turn the Clarion 7 menus into standard windows menus like they are in Clarion 6.

If you find any problems with the new installs, either for Clarion 7 or older then please let us know as soon as possible so we can fix them right away and release new builds.

We have done a lot to make the look and feel of all our products and all our installs as similar as possible. All our templates now have a "Support" tab where you can go directly to our website, our bug tracker and open a support web page that is installed on your computer. From that page you can log into your account, open the online chat software, etc. etc.

We now use our Build Automator to build all our installs. That means that everything should have exactly the same version numbers, including template source, class source, install, everything. So you can see immediately by looking at the first lines of a source file what version it is if you need to report problems. All the templates also show the version number on the Support tab and the release date. We hope this will help tracking down issues.

One other thing that we are changing and that is that we will be making new installs available for download without overwriting or removing the old installs. We will however not make installs that are older than todays installs available so this is more for future use. This allows you to download older installs if you need to for example if you are working on client projects that use older versions and you don't want to update.

There has been a lot of discussion about placement of demo apps for Clarion 7. All our installs now allow you to select a folder to place the demo apps in for both Clarion 7 and older versions. By default the suggested path is %ROOT%\3rdParty\Examples\ProductName in Clarion 6 and older and CSILD_COMMON_DOCUMENTS\SoftVelocity\Clarion7\Accessory\Icetips\ProductName in Clarion 7. If you install for Clarion 7 a shortcut is created to the demo apps folder during the install.

Arnor Baldvinsson

Why duplicate symbol error?

In Clarion 6.3 build 9058, Softvelocity added a bunch of new API function information to the WIN32.LIB and WININET.LIB library files. This caused a conflict with some other LIB files that included two shared function names, DLLInstall and DLLGetVersion.

There has been a fair amount of discussion about this, some confusion about who should fix this problem and even what exactly the problem is.

The problem

The problem, in a nutshell, is that two or more LIB files include the same function name and are both or all included into the same Clarion project or application. This results in the Clarion linker throwing a "Duplicate Symbol" error when it attempts to link in the second LIB file with the duplicate function name.

Can't we change the label and use NAME() to fix it?

No. That only takes care of issues with duplicate labels in Clarion. This is duplicate symbol which means that there are two libs that contain the same API function - in this case DLLGetVersion, DLLInstall.

This could be prototyped in two different places like this:

Module('IcetipsWhatever.lib')
  IT_DLLGetVersion  ...,NAME('DLLGetVersion')
  IT_DLLInstall     ...,NAME('DLLInstall')
END
MODULE('ABWHatever.Lib')
  AB_DLLGetVersion ...,NAME('DLLGetVersion')
  AB_DLLInstall    ...,NAME('DLLInstall')
END

This will give you two different (Clarion) labels for the functions, but they will still generate a "Duplicate Symbol" errors on IcetipsWhatever.Lib and ABWhatever.Lib which both include those two symbols. So this does not solve this particular problem. However it does solve the problem of possibly duplicate labels for the same (or different) API functions prototyped by different vendors.

This is kind of like the mail man trying to delive a letter to an address only to discover that there are two houses on the same street with the same number.

So, how CAN we fix it?

There are only two ways to fix this as far as I know.

  1. Find the offending LIB(s) and remove these two entries using LibMaker and then PLEASE report it to the producer of the LIB
  2. Dynamically load the DLLs and skip the LIBs altogether. This is what I use in our Iceitps Utilities for apis that are not included in the OLD Win32.lib and from now on I will use that as a base so anything that was not in the old win32.lib will be loaded dynamically. We also use this method in our Build Automator to load plugin dlls.

Finding the LIB files - what tools can we use?

The problem is finding the offending LIB files. Many search utilities won't search inside binary files. The version of the excellent Clarion Source Search that I have does not do it. I highly reccommend it for searching Clarion source though! The search in Total Commander DOES find it - one more reason to get that fantastic program!

I did find one freeware tool that does search binaries (or at least the Clarion LIB files!) without problems, called GrepWin. Very easy to use, supports both straight text search and regular expressions and it is FREE;

How do we fix the LIB files?

  1. Search for the DLLInstall or DLLGetVersion in your Clarion\3rdParty\LIB folder and any other LIB folders you can find.
  2. When you find the LIB, first MAKE A BACKUP of it in case you make a mistake and need to start over. Do not skip this step!
  3. Load the LIB file into the Clarion LibMaker (located in the Clarion\Bin folder - there should be a link in the Startup menu as well) and carefully locate the function name and select it in the list.
  4. Hit the Delete button to delete the function from the list
  5. Save the file back to the same LIB file.
  6. Repeat for the other function name.

Recompile your app to check if the error is gone. Repeat as necessary.

What about dynamically loading the functions?

While changing the LIB files can be done by the "end-user" developer, the dynamic loading has to be coded into the product or tool that makes use of the tool and is not reasonable for the end-user to deal with. In 2007 I posted an example application and classes that demonstrate how to do this. If you are interested in loading dlls dynamically at runtime, you can download this small, simple example and try it out yourself.

Hopefully this can help some people who are struggling with the "Duplicate symbol" error in Clarion 6.3 builds 9058 or 9059:)

-- Arnor Baldvinsson

July 2010
Sun Mon Tue Wed Thu Fri Sat
 << <   > >>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Search

XML Feeds

free blog tool