I am working on a new system that is based in Clarion 6.1.
I am trying to initially work with it in Clarion 11 using the Versions system to still use the Clarion6 environment during the initial conversion.
I have the Apps loading and template corrections for the C6 templates that generated errors.
When I compile the “data DLL” I am getting the error: “Directive must have parameter(s)” in the MAP file for the app.
I do not recall seeing this error before.
I’ve looked over the compile defines in the cwproj and the included .prj and do not see anything without a value/parameter so I don’t think that’s the issue.
Does anyone have any information what this error actually means?
The original Clarion6.1 Apps do compile successfully with the Clarion6.1 IDE in a Windows 32-bit VM.
All parameter values must be surrounded by double quotation marks. If the ParameterValue contains quotation marks, they must be escaped with the \ character.
Directives are usually the first elements in a template file or an included file. You should not place them inside a code block <#…#>, or after a class block <#+…#>.
Maybe you could search for <#@ in your templates because my initial suspicion is this might be linked to a Version control template, if one exists. Its possible a (Version) template has a field thats not been filled in, which would suggest the template field needs a Req attribute. Maybe cycle through the Version template to see if a field needs filling which wont be triggered simply by adding the (Version) template.
A little more interesting info.
Turns out this installation is actually Clarion 6.1 9034.
I created this very simple program in the C11 IDE to compile with the C6 environment.
PROGRAM
!OMIT('***')
! * Created with Clarion 11.0
! * User: rick
! * Date: 9/13/2024
! * Time: 10:39 AM
! *
! * To change this template use Tools | Options | Coding | Edit Standard Headers.
! ***
MAP
END
CODE
Message('hello world')
This generates the same error, so it isn’t an issue with ABC files or templates or any 3rd party source.
I then dug up and installed Clarion 6.0 Gold!
Made this a totally clean new install.
It does NOT have the problem, nor does Clarion 6.1 Gold.
However, patching from 6.1 Gold to 6.1 9034 does have the error.
Again, this 9034 environment is clean with nothing other than Clarion installed.
I’m not sure this is worth pursing any further, even though I’d really like to be able to generate a C11 and C6 version of the program from the same source for testing purposes.
This might be more bleeding edge than you want to go, but when I was trying to use C55 compiler/linker, I was having a different issue. But the solution that Alexey suggested for me on the PTSS system might be something you could get away with for your problem.
He suggested replacing the C55 linker with one from C6.
So if you can do that, maybe it’s feasible between versions of C6, like maybe the 6.3 linker?
Thanks for the info.
I don’t think that is the case here. I created a brand new all source project (just one Hello World .clw) and it has the same issue. It was 32-bit from the get-go.
This error only generates this error in version 9034.
Thanks everyone for the suggestions.
I haven’t had a chance to get back to this project yet.
I do think the problem is that the .LNK file is not getting created at all with version 6.1 9034.
Not sure when I’m going to get back to this. Maybe next week some time.
I’ll report back what I find. I’m thinking some along the lines of what Jeff suggested. Replacing the some of the DLLs from the C 6.1 Gold version might resolve the problem.
Hi Rick,
Pardon me for stating the obvious: Why not just go straight to C11 rather than muck with C6? If that’s where you intend to end up, I don’t see the advantage of dealing with C6 at all. I tried that, although it was in a much earlier version of the new IDE, and decided it wasn’t worth the effort.
In my past conversions from Clarion 6.x to C10/C11, etc. I was able to generate both a C6 and C11 version of the executables from the same source by using the C11vC6 method for creating the C6 version. This was nice for the client because they could run the versions side by side while testing for acceptance.
I was just hoping to do the same, but I agree that it is quickly becoming a pain that I’m not sure it is worth.