569 views
in Embedded Wizard Studio by
Dear all,

we have installed Embedded Wizard studio 8.00 on 3 PC. In our project I use External Bitmap. Now in 2 PC I can use ExternBitmapLoader.ewi without any problem,. In the third PC I had always the message below:

 The platform Package Module 'ExternBitmapLoader.ewi' is incompatible with your current Embedded wizard version. Usually this can occur after you have installed a new newer version of Embedded wizard without updating the Patform Packages

Naturally I have installed the same Embedded wizard studio and the same Platform package in all PC. I already tried to uninstall and reinstall both EW studio and the Platform package witout success.

Could you help me please?

Thanks in advance.

Waiting for your kingd reply.

Best regards

Gianni

1 Answer

+1 vote
by

Dear Gianni,

do you refer to the ExternBitmapLoader.ewi provided originally with Embedded Wizard examples? Or have you created your own version?

The error message can have two reasons:

1. The module ExternBitmapLoader.ewi is corrupted. Technically seen, the modules are ordinary Windows DLL  files with changes file extension EWI. If the file is corrupted, Windows will fail to load the DLL.

2. The version of the modul is incorrect. In the implementation of every EWI module you will find following or similar code section:

/* Description of this Embedded Wizard Module */
EW_MODULE
( 
  INTRINSICS_IFC_VERSION,
  L"IntrinsicsModule", 
  L"This is an intrinsic module to load extern image files into Embedded Wizard"
)

The expression INTRINSICS_IFC_VERSION is a macro expanding to the current intrinsic interface version. Since we haven't modified this interface for years, the version number is frozen at 0x00070000 which means version 7.0. If you create your own intrinsic module, this code section is important to exist.

However, since the intrinsic module works on two PC and fails on a third, I suppose that the file is corrupted. Can you try to compare or copy one of the working modules?

Best regards

Paul

by

Dear Paul,

we create our own ExternBitmapLoader.ewi and we create it using Visual studio 2015 on x64 machine. I checked what you suggested me but everything seem to be ok on the PC with the issue. 

Since that PC has Windows 7 32 bit, is it possible that ewi in not working for that reason?

H​ere a screenshot of visual studio:

As you can see the solution platform is Win32.

Could you help me please?

Waiting for your kind reply

Best regards

Gianni

by

Hi Gianni,

Embedded Wizard itself is a 32-bit application. Mixing of 32 and 64 bit code within one process is as far as I know not possible. So when the intrinsic DLL is working on one PC, then we can disclose the 64/32 bit as the possible reason.

I understood, that the not working system is 32 bit. Thus I deduce that the Windows versions on the three PCs are different. May be the 32 bit Windows is even older? If this is the case, it could be possible, that your intrinsic DLL is linked again other Windows system DLLs which are not available on this 32 bit system. For example, the Visual Studio runtime libraries. In such case the loading of the intrinsic DLL will fail because one of the referenced DLLs fail to load.

How can you proceed in this case? Two ideas:

Idea 1: In your Visual Studio Project, review the C/C++ Compiler setting 'Runtime library'. Select the version without DLL, e.g. in my Visual Studio 2012 I can select Multithreaded (/MT). In this manner, the generated intrinsic DLL will not depend on any extern runtlime library DLLs.

Idea 2: Use the command line tool dumpbin to display dependencies from your intrinsic DLL to other DLLs. The command is used as follows:

dumpbin.exe /dependents ExternBitmapLoader.ewi

The command dumpbin belongs to Microsoft Visual Studio. The command displays a list with DLLs referenced from the Intrinsic DLL. In my case, when I do this, following outputs appear. Please note the both DLL names. These are necessary to exist on the target PC in order to load the intrinsic DLL:

Dump of file ExternBitmapLoader.ewi

File Type: DLL

  Image has the following dependencies:

    MSVCR110.dll
    KERNEL32.dll

Hope it helps you further.

Paul

by
Dear Paul,

we solved the issue after I set Multithreaded (/MT) on Runtime library. Just for sharing before to change that settings the .ewi worked on Windows 10 64 bit based system and not on Windows 7 32 bit.

Following your instruction I checked the ewi with dumpbin.exe and I discovered that before to change the runtime library, the ewi depended from  VCRUNTIME140D.dll that not exist on Windows 7 (since there is not Visual Studio 2015 installed).

Thanks again.

Best regards

Gianni

Embedded Wizard Website | Privacy Policy | Imprint

...