I know that there are "lots" of questions and answers floating around for this error message (and other U2*.dll files), but none of the proposed solutions seem to work for me. In addition a lot of these questions/posts go back many years so the folders they refer to are no longer relevant or exist. The days of copying u2*.dll files from c:\windows\crystal to c:\windows\windows32 or c:\windows\sysWOW64 seem to be gone.
I am running Crystal Reports 2020 (currently in Trial Version, because I want to solve this problem before I buy!) under Windows 10 Pro. When I try to edit a report, I get errors, all of which, I have concluded (right or wrong) link back to missing functions in the missing "u2lcapw.dll" file. To be clear, these reports run perfectly in the End User environment (Sage 2020) so there is no "error" with the report. CR just can't seem to find the missing function.
5) Tried to "register" the dll (RegSvr32 as Administrator), but received the following error message, "The module "u2lcapw.dll was loaded but the entry-point DllRegisterServer was not found"... From what I gathered in my research, this DLL is not a COM dll so there is "no need to register it".
I think that the problem you're running into is because Crystal 2020 is the first version of Crystal to have 64-bit architecture. All earlier versions are 32-bit. I suspect that the .dll is also 32-bit, which won't work with Crystal 2020. I would contact Sage to determine whether there is a 64-bit version of this .dll available. If there isn't, I would look for a trial of Crystal 2016 instead.
I'm glad it worked, Michael! Unfortunately, the only people who can encourage Sage to upgrade are going to be its customers. Hopefully the architecture change for Crystal will encourage them to do so.
The second link showed the problem but no solution was presented. I get it if the error is documented, but I really need a resolution. Any further clicking of links required a login that I don't believe that I have.
Thank you! This is helpful. Sage only "sells" CR 2016 and I suspect that this is the reason! To be totally transparent, I am not interested in paying Sage an annual fee (subscription) for the CR software. I would rather buy it from SAP directly and upgrade it as necessary. I would be very happy to try the 2016 Trial.
I am working through migrating older reports from a very outdated version of Crystal into a newer version and trialing Crystal Server 2013 with Crystal Reports for Enterprise. The only problem I am running into is that I have many reports using the NumberToDate function to pull a number string and form it into a date for the report. I really need this function to work because we rely on it quite heavily. When I pull reports that use it into my new environment I am given the following error:
I have found the u2ltdate.dll on the web and transferred it into the following folders: windows/system32 and program files(x86)/SAP BusinessObjects/SAP BusinessObjects Enterprise XI 4.0/win32_x86 and the win64_x64 as well just to be sure. But to no avail I am still unable to use the NumberToDate function. I have even tried copying the u2ltdate.dll from our older server, and this doesn't work either. I really need to get this working as soon as possible. I don't know if I need a 64 bit dll because it is windows server 2008 or if I don't have it in the right places. Please help!
I get the same error. But I am trying to use a COM DLL in cr4e-all-in-one-win_2.0.18. The DLL is also placed in the folder : C:\Program Files\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86. Still I get the same error. Where should the DLL be placed.
Thanks for the reply! Search does not work for me either. Do I need to rewrite it to Java UFL even if I am using cr4e-all-in-one-win_2.0.18 to generate crystal reports. Also, Do I need to change the Options-> Formula Editor->UFL Support to "Java UFLs Only". Currently C/COM UFLs Only is selected in crystal reports.
Maybe I need the entire UFL, I am pretty new to Crystal Reports and have been tasked with getting this up and running. Where I can find the numbertodate UFL, all of the links that I can find on SAP's site do not work anymore.
I ran the depends 20 and this was my result: Error: Modules with different CPU types were found. It looks like my u2ltdate.dll is possible a 32 bit version and that might be my issue. Is there a way that I could get the dll that you have and try that out? Thanks!
I got the error right when I first opened the u2ltdate.dll into Depends, I got this error: "Errors were detected when processing "c:\windows\system32\u2ltdate.dll". See the log window for details. Then the log window is what said: "Error: Modules with different CPU types were found."
Hmmm... not sure what is going on there. I use WIN 2008 Server and I can see the UFL in my designer and Depends does not complain at all. I've attached the dll I was able to find. It's renamed to txt, so unzip the attached file and then rename the txt ro .dll.
And you will need a 64 bit version because some of the report processing servers may be 64 bit only but I believe the Crystal Report Processing Server is 32 bit only. It will need the UFL copied into it's \win32_x86 folder.
I am running Dynamics SL 2018 CU6. I am getting this error when trying to view the SQL script while editing a Crystal report. Reports run fine within Dynamics SL. I only see the error when editing the reports.
That dll enables the custom functions that are commonly used in SL reports written in Crystal. The error comes up when Crystal Reports Designer can't locate that DLL, usually because registry keys point to a wrong location. The easiest approach is to remove the SL client and Crystal Designer installations on the workstation, reboot the computer, then reinstall Crystal Reports Designer first followed by an SL client installation. This also assumes you are installing the Crystal version distributed with SL2015 and earlier releases, as Crystal XI releases won't work.
I have tried a lot of ways like adding a interface in the .witx file and implementing it, creating a crate which implement the function my_extern_fun and registering it in Store, adding the label extern "C" and #[no_mangle]. But none of them worked.
You shouldn't be making any modifications to Wasmtime for this. Your error message is saying that you didn't provide the import for env::my_extern_fun() when you were instantiating the WebAssembly module.
This can be done via by passing a list of Externs (functions, static variables, etc.) to Instance::new(), but that's fairly low level, and using the wasmtime::Linker can save you from a bunch of hassle.
This is perfectly valid for the guest to do. Note that I've chosen integer types with explicit sizes - this is important because WebAssembly is typically compiled as 32-bit, while your host is typically a 64-bit machine, and we don't want to mess things up because some integer type decided to be a different size on one architecture versus the other.
Now the interesting thing to note is that when the guest passes the host a "pointer", it's really just passing you a u32 index into its linear memory. That means the implementation of our host function looks something like this:
Now, the tricky part is to turn that e "pointer" back into something that looks like an Example struct. We do this by asking the caller to give us the Memory object exported by this WebAssembly module (typically called "memory", I think) that represents the module's linear memory, then asking for mutable/immutable access to the bytes.
You could also parse the byte slice you get from &linear_memory[e as usize..e as usize + 18] to get a [u8; 16] followed by a little-endian u16 like you would when implementing the parser for a binary format, but both pointer arithmetic and parsing intimately rely on the layout of Example so they're pretty much equivalent[1]. I'm okay with taking the unsafe route because I wrote both sides of the code, they both have the same failure mode, and an unsafe cast requires 1 line whereas safely parsing would require 5-15 lines with no real benefit.
Because my goal is to take an inner function out of a C project and want to make it run faster via implementing it in WebAssembly Runtime. As the C runtime can be hard to know and it means maybe I can't get the offsets of the inner pointer or other param pointers.
The buf2 example is a bit trickier because you require &mut access to linear memory and the *mut *mut c_uchar is generally the equivalent of Vec, except we don't know the lengths of anything... So I'm just going to guess some random numbers and assume you know how big the buffers are.
In general, the pattern is that whenever your guest introduces some level of indirection (i.e. a pointer), you'll need to load that as a u32 offset into linear memory and do pointer arithmetic to get the item it points at.
You also need to be pretty careful with what you're doing, because it is easy to have a bad time by missing a level of indirection, having a bad struct definition, or using & when you should have been using &mut. If you are mutating a buffer in the guest's memory, you'll want to write your code in such a way that only one thing has &mut access to linear memory at any one time[1].
These basic options are complemented by many packages on CRAN. In this task view, we focused on the most important ones, which have been published more than one year ago and are regularly updated. The task view is structured into main topics:
In addition to the present task view, this reference website on missing data might also be helpful. Complementary information might also be found in TimeSeries, SpatioTemporal, Survival, and OfficialStatistics. Note that most packages covering temporal, and spatio-temporal interpolation and censored data are not covered by the Missing Data task view.
I just started porting a project over to STM32. It does some complex stuff with timers. First I found out the the HAL doesn't support my usage of one pulse mode in timers. So I went for the LL API which I liked on first sight.
c80f0f1006