Professional UI Solutions
Site Map   /  Register
 
 
 

Prof-UIS Build Configurations

This article was published on September 16, 2002 and last updated on December 04, 2006.

Introduction

You can use Prof-UIS in a range of projects that vary by:

  • type of the target binary code (an executable application or DLL/ActiveX)
  • character set (ANSI, MBCS or Unicode)
  • type of linking (your application or DLL/ActiveX can be linked with Prof-UIS dynamically or statically and MFC itself can be linked with your application dynamically or statically)
  • compiling configuration (debug or release)
  • type of target platform (Win32 or x64)

It is not possible to compile the Prof-UIS source code under some ideal settings so that you would use one or two Prof-UIS lib/dll modules universally. Because of that, there are 36 project configurations supported in Prof-UIS at the moment (see Supported Project Configurations).

Naming Convention

The name of each Prof-UIS library file follows this naming convection:

ProfUIS#[s|y][n|m|u][d][-RDE].lib

# specifies a version number, e.g. ProfUIS262n.lib indicates version 2.62.

[s|y] stands for

  • both "y" and "s" are absent - It is a dynamic library that should be used in conjunction with a dynamic MFC library. The library will automatically be linked with your executable application or DLL if _AFXDLL preprocessor symbol is defined and __STATPROFUIS_WITH_DLLMFC__ preprocessor symbol is NOT defined in your project settings.
  • "s" - It is a static library that should be used in conjunction with a static MFC library. The library will automatically be linked with your executable application or DLL if the _AFXDLL preprocessor symbol is NOT defined in your project settings.
  • "y" - It is a static library that should be used in conjunction with a dynamic MFC library. The library will automatically be linked with your executable application or DLL if both _AFXDLL and __STATPROFUIS_WITH_DLLMFC__ preprocessor symbols are defined in your project settings.

[n|m|u] stands for

  • "n" - ANSI character set is used. The library will automatically be linked with your executable application or DLL if neither _MBCS nor _UNICODE preprocessor symbols are defined in your project settings.
  • "m" - MBCS character set is used. The library will automatically be linked with your executable application or DLL if the _MBCS preprocessor symbol is defined and the _UNICODE preprocessor symbol is NOT defined in your project settings.
  • "u" - Unicode character set is used. The library will automatically be linked with your executable application or DLL if _UNICODE preprocessor symbol is defined and the _MBCS preprocessor symbol is NOT defined in your project settings.

[d] stands for

  • "d" - The library was compiled with the debug configuration, with full symbolic debug information and no optimization. The library will automatically be linked with your executable application or DLL if the _DEBUG preprocessor symbol is defined in project settings.
  • "d" is absent - The library was compiled with the Release configuration, is fully optimized and contains no symbolic debug information. The library will automatically be linked with your executable application or DLL if _DEBUG preprocessor symbol is NOT defined in project settings).

[-RDE] stands for

  • "-RDE" - It is a dynamic or static library that should be used in a project that builds a regular DLL. The __PROF_UIS_FOR_REGULAR_DLL preprocessor symbol should be defined in your regular DLL/ActiveX project settings.
  • "-RDE" is absent - It is a dynamic or static library that should be used in a project that builds an executable application. The __PROF_UIS_FOR_REGULAR_DLL preprocessor symbol should be undefined in your executable application/extension DLL project settings.

Supported Project Configurations

The following table lists the supported project configurations and corresponding library files. You can find configurations 1-12 in the ProfUISDLL project. After compiling the library using any of these configurations, you will get two files with .lib and .dll extensions, which you can further use in your project. All the static configurations 13-36 are defined in the ProfUISLIB project.

Please note that the Prof-UIS libraries that are used in executable applications can also be used in extension DLLs and the libraries used in regular DLLs can also be used in ActiveX projects.

No Library File Name Configuration Name in Visual Studio for Building Prof-UIS Library* Preprocessor Definitions for Building Your Project (+) include; (–) exclude
Dynamic libraries for projects that build executable applications in which both Prof-UIS and MFC are used as DLLs (DLL-DLL for EXE)
1 ProfUIS260n.lib ANSI Release _MBCS (–), _UNICODE (–), __PROF_UIS_FOR_REGULAR_DLL (–)
2 ProfUIS260nd.lib ANSI Debug
3 ProfUIS260m.lib MBCS Release _MBCS (+), _UNICODE (–), __PROF_UIS_FOR_REGULAR_DLL (–)
4 ProfUIS260md.lib MBCS Debug
5 ProfUIS260u.lib Unicode Release _MBCS (–), _UNICODE (+), __PROF_UIS_FOR_REGULAR_DLL (–)
6 ProfUIS260ud.lib Unicode Debug
Dynamic libraries for projects that build regular DLLs that in which both Prof-UIS and MFC are used as DLLs (DLL-DLL for Regular DLL)
7 ProfUIS262n-RDE.lib ANSI Release RDE _MBCS (–), _UNICODE (–), __PROF_UIS_FOR_REGULAR_DLL (+)
8 ProfUIS260nd-RDE.lib ANSI Debug RDE
9 ProfUIS260m-RDE.lib MBCS Release RDE _MBCS (+), _UNICODE (–), __PROF_UIS_FOR_REGULAR_DLL (+)
10 ProfUIS260md-RDE.lib MBCS Debug RDE
11 ProfUIS260u-RDE.lib Unicode Release RDE _MBCS (–), _UNICODE (+), __PROF_UIS_FOR_REGULAR_DLL (+)
12 ProfUIS260ud-RDE.lib Unicode Debug RDE
Static libraries for projects that build executable applications in which both Prof-UIS and MFC are used statically (Static-Static for EXE)
13 ProfUIS260sn.lib Static ANSI Release _MBCS (-), _UNICODE (-), __PROF_UIS_FOR_REGULAR_DLL (-)
14 ProfUIS260snd.lib Static ANSI Debug
15 ProfUIS260sm.lib Static MBCS Release _MBCS (-), _UNICODE (+), __PROF_UIS_FOR_REGULAR_DLL (-)
16 ProfUIS260smd.lib Static MBCS Debug
17 ProfUIS260su.lib Static Unicode Release _MBCS (+), _UNICODE (-), __PROF_UIS_FOR_REGULAR_DLL (-)
18 ProfUIS260sud.lib Static Unicode Debug
Static libraries for projects that build regular DLLs in which both Prof-UIS and MFC are used statically (Static-Static for Regular DLL)
19 ProfUIS260sn-RDE.lib Static ANSI Release RDE _MBCS (-), _UNICODE (-), __PROF_UIS_FOR_REGULAR_DLL (+)
20 ProfUIS260snd-RDE.lib Static ANSI Debug RDE
21 ProfUIS260sm-RDE.lib Static MBCS Release RDE _MBCS (+), _UNICODE (-), __PROF_UIS_FOR_REGULAR_DLL (+)
22 ProfUIS260smd-RDE.lib Static MBCS Debug RDE
23 ProfUIS260su-RDE.lib Static Unicode Release RDE _MBCS (-), _UNICODE (+), __PROF_UIS_FOR_REGULAR_DLL (+)
24 ProfUIS260sud-RDE.lib Static Unicode Debug RDE
Static libraries for projects that build executable applications in which Prof-UIS is used statically and MFC is used as a DLL (Static-DLL for EXE)
25 ProfUIS260yn.lib Static ANSI Release with MFC DLL _MBCS (-), _UNICODE (-), __PROF_UIS_FOR_REGULAR_DLL (-)
26 ProfUIS260ynd.lib Static ANSI Debug with MFC DLL
27 ProfUIS260ym.lib Static MBCS Release with MFC DLL _MBCS (+), _UNICODE (-), __PROF_UIS_FOR_REGULAR_DLL (-)
28 ProfUIS260ymd.lib Static MBCS Debug with MFC DLL
29 ProfUIS260yu.lib Static Unicode Release with MFC DLL _MBCS (-), _UNICODE (+), __PROF_UIS_FOR_REGULAR_DLL (-)
30 ProfUIS260yud.lib Static Unicode Debug with MFC DLL
Static libraries for projects that build regular DLLs in which Prof-UIS is used statically and MFC is used as a DLL (Static-DLL for Regular DLL)
31 ProfUIS260yn-RDE.lib Static ANSI Release RDE with MFC DLL _MBCS (-), _UNICODE (-), __PROF_UIS_FOR_REGULAR_DLL (+)
32 ProfUIS260ynd-RDE.lib Static ANSI Debug
33 ProfUIS260ym-RDE.lib Static MBCS Release RDE with MFC DLL _MBCS (+), _UNICODE (-), __PROF_UIS_FOR_REGULAR_DLL (+)
34 ProfUIS260ymd-RDE.lib Static MBCS Debug RDE with MFC DLL
35 ProfUIS260yu-RDE.lib Static Unicode Release RDE with MFC DLL _MBCS (-), _UNICODE (+), __PROF_UIS_FOR_REGULAR_DLL (+)
36 ProfUIS260yud-RDE.lib Static Unicode Debug RDE with MFC DLL

* Configuration name can be preceded by Win32 or x64, which specifies the target platform.

How to choose the appropriate configuration

Before compiling Prof-UIS, you should choose which build configurations meet your requirements. In any case, you will have to use not less than two configurations: one for debugging your application (a debug configuration) and one for producing the final version (a release configuration).

For example, let us say you want to create a Prof-UIS-based application like as follows:

  • It should be executable.
  • It should be localized to different languages including Asian and Middle Eastern languages.
  • It should use both Prof-UIS and MFC as DLLs.

There are only two configurations in the table of configurations that meet these requirements: Unicode Release and Unicode Debug. By knowing that configurations 1-12 are defined in the ProfUISDLL project, you should compile the library source code using these two configurations of this project. As a result, you will get the following four files you can use in your project:

  • ProfUIS262u.lib and ProfUIS262u.dll
  • ProfUIS262ud.lib and ProfUIS262ud.dll

If, for instance, you decide your project should use both Prof-UIS and MFC statically, compile the library using the ProfUISLib project under the Static Unicode Release and Static Unicode Debug configurations. As you can see, it is really easy to select and build the needed library configurations.

Back To Top Other Articles...