| Online Eiffel Documentation

EiffelStudio

# Compiling WEL for Unicode - Windows 95/98/Me

This documentation is provided for those wishing to compile their application for Windows 95/98/Me with full Unicode support. Windows 95/98/Me uses code pages (ANSI) while Windows NT/2000/XP uses Unicode. To provide Unicode support for your Windows 95/98/Me Microsoft have developed a translation layer, the Microsoft Layer for Unicode (MSLU), which provides a complete set of unicode APIs.

The following step-by-step tutorial details how to get Unicode support for WEL application using Windows 95/98/Me.

## 1 Download Microsoft Layer for Unicode

Download the Microsoft Layer for Unicode here This contains the unicows. dll. The other file needed to get MSLU working, unicows. lib, can be found in the Microsoft Platform SDK.

## 2 Compiling Your Application (Without MSLU)

Compile your application as normal.

## 3 Add MSLU Support

Copy the unicows. dll and unicows. lib files into your project directory. Note that the Microsoft Layer for Unicode does not automatically load from the $(WINDOWS) or $(WINSYS) directories so do not put the files there.

## 4 Change the Linker Options

Once MSLU support has been added you must modify the linker file generated by Eiffel:

- Go to your application's 'W_code' directory and open the file called ' SystemName. lnk, where 'SystemName' is the name of your system as specified in the project configuration file, in your favorite text editor.
- Add the following at the of the file:

  /nodefaultlib:kernel32. lib/nodefaultlib:advapi32. lib /nodefaultlib:user32. lib
  /nodefaultlib:gdi32. lib /nodefaultlib:shell32. lib/nodefaultlib:comdlg32. lib
  /nodefaultlib:version. lib /nodefaultlib:mpr. lib/nodefaultlib:winmm. lib
  /nodefaultlib:winspool. lib /nodefaultlib:vfw32. lib/nodefaultlib:secur32. lib
  /nodefaultlib:oleacc. lib /nodefaultlib:oledlg. lib

- Then add:

  unicows. lib

- Now, replace the line that looks like this:

  USER32. lib WSOCK32. lib ADVAPI32. lib GDI32. lib SHELL32. lib
  COMDLG32. lib UUID. lib OLE32. lib OLEAUT32. lib COMCTL32. lib
  MPR. LIB IMM32. LIB

- With this:

  KERNEL32. lib ADVAPI32. lib USER32. lib GDI32. lib SHELL32. lib
  COMDLG32. lib VERSION. lib MPR. LIB WINMM. lib WINSPOOL. lib
  VFW32. lib OLEACC. lib OLEDLG. lib WSOCK32. lib UUID. lib OLE32. lib
  OLEAUT32. lib COMCTL32. lib

A sample linker file can be seen here with each step mark for your convenience.

## 5 Relink (With MSLU Support)

Now you must relink your application so that it knows to use the libraries you just changed in the linker file. To do this run 'link SystemName. lnk', where 'SystemName' is the name of your system as specified in the project configuration file, from your 'EIFGENs\target_name\W_code' directory. Note that if you recompile the application C code a new linker file will be generated and the modified version will be overwritten.