Please be aware if you want to compile plugins for 3dsmax, that you have to use the 8.0 Visual C++ compiler. You can buy it as a stand alone package from Microsoft for a greatly reduced price… compared to the full visual studio.
Not only that, you HAVE to install 1 hofixes for the compiler (from microsoft)… There is more information on the developers portal at autodesk.com.
Chris Johnson
Would it be at all possible to compile the SDK via an open source c++ IDE like Dev C++ or others? I’m a little ignorant on c++, but as far as I understand it just needs to link against all the libraries it uses, which should be a whole bunch of windows api libs. Are these libraries only available if you buy VC++? Is there something very special about the way Microsoft’s c++ compiles? Or is there some hard-coded dependency on VC++ in the SDK source? Could that dependency be removed?
I think the SDK is using some .NET extensions or something that you have to implement, and that would be easier done with VC then a third-party. I’ve never known anyone to be able to create a plugin with something other then VC.
I have only been using C+ Express because the studio is to cheap to buy anything, but not having the dialog editor is enough for me to skip Express.
But mustang, are you able to compile 64 bit plugins? And how about mentalray shaders?
No. You can not compile 64-bit with C++ Express, but it does support warnings if code is not 64-bit compliant. That’s all it does for 64-bit.
Yes. I have compiled MR shaders with Express. The MR requirements are very basic and any C standard compiler for x86 should work. MR does not require C++ but just standard C extern calls.
I have also compiled shaders for Air, and RenderMan with Express and they appear to work.
I’ve never known anyone to be able to create a plugin with something other then VC.
Nor have I. I’m just wondering why the max SDK is so dependent on VC++, and whether or not that dependency could be removed so that smaller developers could have the opportunity to legally innovate with the kit.
VC++ uses a memory model that is different from other C compilers. It places extra debug information in the memory block for threads, and since plug-ins run in the same memory space as the application these have to be the same. That’s why you can’t run plug-ins compiled with older versions of VC.
One of the big design mistakes of 3D Studio Max’s SDK is that there is no protected factory layer for the instancing of objects. Plug-ins are allowed to create their own instances of SDK objects, and then pass references back to 3D Studio Max to manage that instance. So you must create instances with the same memory managers as the application. 3D Studio Max would just crash is it had to manage an object created with some other compiler. Mind you, some will say it’s possible but most likely not worth the risk.
The other big problem is debugging plug-ins while they are running in 3D Studio Max. You can’t do that if your debugger uses a different memory model on threads.
Anyway, hope that helps answer your questions.
You can compile 64 bit with express and standard.
You just have to install a few extensions that are not installed by default.
(search google and you will find it)
-Kees
Thanks Yannick.
That’s the page I used to get Standard to work for max plugins.
So I know it works
Thanks ypuech, never saw that page, I did find a similar one but it didnt have instructions for Express Edition, only Standard. I’ll take a look at it later, thanks alot for the suport and time to explain this stuff on this thread.
Btw kees I did search alot but maybe because I didnt know what to search exactly or just by having no luck I couldnt compile stuff, ypuech has been a great help by explaining and not by saying “google it”
I do read the help files, I do google before I ask any question. Thanks anyway
Kees is a great help but maybe he doesn’t have enough time to search the web…