Scenario 4: The application will not be built as Unicode. Rather, it will be built as multi-byte using the ObjectARX 2007 SDK, but some or all of it will also be built on earlier versions of AutoCAD.
Suggestion: This is the most complicated scenario. Strings internal to the application are multi-byte, but strings passed to ObjectARX APIs may or may not be converted to Unicode, depending on the targeted AutoCAD version.
To accommodate these requirements, you must provide your own means of converting strings at compile time based on the AD_UNICODE definition. For instance, the following macros define symbols that use the AdAchar.h file when AD_UNICODE is defined (in ObjectARX 2007 builds only), but resolve to multi-byte alternatives for earlier versions of the ObjectARX SDK:
#ifdef AD_UNICODE
#include "AdAchar.h"
typedef ACHAR MYCHAR;
#define _MY_T _ACRX_T
#else
typedef char MYCHAR;
#define _MY_T(x) x
#endif
Another solution would be to define your own version of AdAchar.h, to use with pre-2007 builds, that defines ACHAR as char and _ACRX_T() as _T().
Note Any ObjectARX 2007 application that uses MFC should be ported to Unicode. Linking to MFC libraries in an ObjectARX project that does not define Unicode presents difficult and complex challenges.
Вот и весь ответ