Setting up a 3DSMax plugin project in VS for both win32/x64 platforms

Pre-requisites

!! Visual Studio doesn't install x64 compilers by default, make sure they are available

3ds Max VersionTarget Operating SystemBinary compatible 3ds Max SDK versions Microsoft Visual C++ Compiler Version
2011- Windows 7 (32 and 64 bit)
- Windows Vista (32 and 64 bit)
- Windows XP Pro SP2 (32 and 64 bit)
2011, 2010 Visual C++ 9.0 (Visual Studio 2008) Service Pack 1 with the July 28, 2009 security patch installed.

Environment Variables

User Environment variables to set up under Windows 7 x64:

3DSMAX_2011_PATH      C:\Program Files (x86)\Autodesk\3ds Max 2011
3DSMAX_2011x64_PATH   C:\Program Files\Autodesk\3ds Max 2011
3DSMAX_2011_SDK_PATH  C:\Program Files (x86)\Autodesk\Autodesk 3ds Max 2011 SDK

3DSMax wizard for VS

To make the wizard available in VS IDE:

  1. Give the absolute path of the wizard directory in the 3dsmaxPluginWizard.vsz file located in C:\Program Files (x86)\Autodesk\3ds Max 2011 SDK\maxsdk\howto\3dsmaxPluginWizard
    Param="ABSOLUTE_PATH = C:\Program Files (x86)\Autodesk\3ds Max 2011 SDK\maxsdk\
                           howto\3dsmaxPluginWizard"
    (on only one line)

    !!!! Rights are a bit weird under Windows 7. Even if you belong to the administrators group, you don't have right to modify this file.
    Solution is to open this file properties and in Secutrity tab:
    • Groups and Users names => Modify
    • Groups and Users names => Add
    • Enter your name (your account on the machine), then Check name, then OK
    • Select your name and check total Control in your authorizations, then OK
    • OK to close file properties window
  2. Copy the following files from the 3dsmaxPluginWizard root to the 'VC\VCProjects' directory (C:\Program Files\Microsoft Visual Studio 9.0\VC\VCProjects)
    3dsmaxPluginWizard.ico
    3dsmaxPluginWizard.vsdir
    3dsmaxPluginWizard.vsz
    
    !!!! Once again you may experience rights problems and will have to grant yourself rights on the VS directories (dirty but ...)

Project Creation

Project Settings

Right click on project name |> Properties

Highlighted cells show the values you have to set, the others are automatically set the right way by the wizard

ConfigurationDebug
PlatformWin32x64
Configuration Properties
C/C++
  General

Additional Include:
$(3DSMAX_2011_SDK_PATH)
\maxsdk\include

Additional Include:
$(3DSMAX_2011_SDK_PATH)
\maxsdk\include
  Output Files Program Database Filename:
.\Debug\name.pdb
Program Database Filename:
.\x64\Debug\name.pdb
  Command Line Additional Options:
/LD "@$(3DSMAX_2011_SDK_PATH)
\maxsdk\ProjectSettings
\AdditionalCompilerOptions.txt"
Additional Options:
/LD "@$(3DSMAX_2011_SDK_PATH)
\maxsdk\ProjectSettings
\AdditionalCompilerOptions64.txt"
Linker
  General

Output File:
$(3DSMAX_2011_PATH)
\plugins\name

Output File:
$(3DSMAX_2011x64_PATH)
\plugins\name
Additional Library:
$(3DSMAX_2011_SDK_PATH)
\maxsdk\lib
Additional Library:
$(3DSMAX_2011_SDK_PATH)
\maxsdk\x64\lib
  Debugging Generate Program Database File:
.\Debug\name.pdb
Generate Program Database File:
.\x64\Debug\name.pdb
ConfigurationRelease
PlatformWin32x64
Configuration Properties
C/C++
  General

Additional Include:
$(3DSMAX_2011_SDK_PATH)
\maxsdk\include

Additional Include:
$(3DSMAX_2011_SDK_PATH)
\maxsdk\include
  Output Files Program Database Filename:
.\Release\name.pdb
Program Database Filename:
.\x64\Release\name.pdb
  Command Line Additional Options:
/LD "@$(3DSMAX_2011_SDK_PATH)
\maxsdk\ProjectSettings
\AdditionalCompilerOptions.txt"
Additional Options:
/LD "@$(3DSMAX_2011_SDK_PATH)
\maxsdk\ProjectSettings
\AdditionalCompilerOptions64.txt"
Linker
  General

Output File:
$(3DSMAX_2011_PATH)
\plugins\name

Output File:
$(3DSMAX_2011x64_PATH)
\plugins\name
Additional Library:
$(3DSMAX_2011_SDK_PATH)
\maxsdk\lib
Additional Library:
$(3DSMAX_2011_SDK_PATH)
\maxsdk\x64\lib
  Releaseging Generate Program Database File:
.\Release\name.pdb
Generate Program Database File:
.\x64\Release\name.pdb