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.
|