cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Crystal Reports 2025 UFL naming conventions?

AndersG
Active Participant
0 Likes
692

We have a few UFLs that we have built over the years and we are in the process of converting them to 64-bits, using this sample, but one thing is unclear: Does the actual DLL name have any significance? Ie the sampe is called "u212samp" or old UFLs were all called U25* but it appears that if I create an ufl from the sample and name it something bginning with u25, then CR 2025 will not load it, but u212 loads fine. For example the old 32-bit UFL was U25C128.dll and if I create a DLL by that name it will not load, but U212128.dll works fine.

I use the same project and just change:

The DEF file, project target name and linker output file.

Any ideas? 

Accepted Solutions (1)

Accepted Solutions (1)

DonWilliams
Active Contributor
0 Likes

Hi Anders,

If you look in the x86 or x64 folder you'll find this dll:

uf12manager.dll and u2lcom.dll which are CR's C++ and COM UFL interface dll's.

uf12manager.dll is for C++/C# UFL's and it specifically looks for custom UFL and the dll must begin with u212 so the interface will load them.

Same for COM UFL dll's, they must begin with u25.

So not sure why your U25C128.dll doesn't load, possibly because it is a COM dll and you did not register using regsvr32.exe it? if you try registering it you'll get an error that it's not a COM dll if it fails to register it.

I believe also the older COM UFL's had to begin with CRUFL.... and for C++ they were u2l.... for those to be loaded by CR.

I any case it's CR's UFL Managers that are specifically looking for any dll beginning with u212 and for COM they should start with U25... will attempt to load it. Also note in the sample you do need to set CR Designers Framework in the ini file so CR knows what flavour of .NET your UFL is using.

Hope that's clear as mud... lol

Don

AndersG
Active Participant
0 Likes
I do not think they are COM DLLs. They are created, using this template: https://userapps.support.sap.com/sap/support/knowledge/en/1603381 and follow the approximately same paradigm as C UFLs have been following since the dawn of time (or so it feels). The odd thing was that the actual name of the DLL mattered. Ie, built from the same code, then renamed.
AndersG
Active Participant
0 Likes
Ah.. Missed wat you wrote "must begin with u212". Well, that explains things, but does not explain how the old 32-bit UFLs that I wrote many moons ago, called U25Cal.dll and U25C128.dll loads on 32 bit?? They were created from an U25Samp sample back then. But no worries. I can call them whatever they must be named as this is for the upcoming 64-bit version of our app.
DonWilliams
Active Contributor
0 Likes
Hi Anders, yes the naming is confusing and I never asked R&D the actual naming conventions after CR 2010 or so, just guessing, when they created the new u212 interface and COM interface, they may have used the same dll for both platforms, not sure now. There's a bunch of dll's starting with "u" and then 2, 3, l, etc. that I never looked into when I was working there.... In any case as noted, use the u212 and all is good...

Answers (0)