MBCS Versus Unicode
3ds Max is a multi-byte character set (MBCS) system. Yet, there is a need for certain plug-ins to support Unicode. For this release of the 3ds Max SDK, we have started the process of converting to a selectable MBCS/Unicode product. The approach permits MBCS or Unicode plug-ins to operate with 3ds Max, at the developer's discretion, but 3ds Max itself has yet to be converted to Unicode.
What has actually changed?
Character types in the 3ds Max 9 SDK have been remapped, not comprehensively, according to the following table:
Usual Types | Max Types |
TCHAR | MCHAR |
TSTR | MSTR |
_T() | _M() |
The mapping of M-types is the same as the original T-types.
Impact
There is no impact to 3rd party plug-ins. All changes are binary compatible with existing 3ds Max 9 plug-ins. Developers should keep the following points in mind:
- Some parameter types may appear to be changed on the surface, but these are all macros that map to the same values as 3ds Max 8 SDK and earlier versions
- Experienced plug-in developers will likely not see a difference until they are faced with compile-time warnings or errors, similar to what occurred with the Microsoft Windows Platform SDK, which seemed to arrive unbidden
- Again, 3ds Max has not been converted to a Unicode system; it now only tolerates Unicode plug-ins