ControlExDesktop compilation error

derez

Expert
Licensed User
Longtime User
Hi
I'm using ControlExDesktop and ControlExDevice in a program, with a monthcaledar object.
The program runs on the desktop IDE and the device IDE , compiles for the desktop but does not agree to compile for the device.

I have both dll and cs files in the b4ppc library and the working directory, the desktopp has .net 2.0

Using the toolstrip I see that the desktop dll version is 1.4, but I use the zip file with version 1.6 :confused:

I get the attached error.

Can someone tell me what is missing ?

thanks
 

agraham

Expert
Licensed User
Longtime User
You can't use ControlsExDesktop and ControlsExDevice together in one project as they are not compatible with each other. A ControlsExDeviceDummy library is provided for desktop use with ControlsExDevice although "Dummy" is a bad term as, apart from the Notification object which can't be implemented on the desktop, it is fully functional.

A device project needs ControlsExDevice for the device and ControlsExDeviceDummy for the desktop. This will compile for both device and desktop.

A desktop project needs nothing for the device and ControlsExDesktop for the desktop. This will only compile for the desktop.
 

derez

Expert
Licensed User
Longtime User
Thanks for the clear answer Andrew.

Where can I find the dummies ? they are not included in the dll lists.
 

agraham

Expert
Licensed User
Longtime User
Where can I find the dummies ?
I assume that you mean "dummmy" singular. There is no device dummy for ControlsExDesktop as it isn't necessary. ControlsExDeviceDummy, and it's source code, is in the http://www.b4x.com/forum/additional-libraries/1995-controlsexdevice-library.html#post10811 archive.

There are two reasons a compatible desktop "dummy" library is required for a device targeted library. Firstly it means that code can be developed and run in the IDE on the desktop even if the library is not fully functional. Secondly the optimising compiler assumes that the desktop and device libraries are identical in structure and uses the desktop library during compilation, even when the compiling is targeting the device. In the rare case where there might not be a compatible desktop library for a library that will only work on the device that library can be added as a desktop component. It will not let code run on the desktop but will let the optimising compiler successfully compile for the device.
 
Top