Visual C++

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 25/05/2003 at 04:35, xxxxxxxx wrote:

User Information:
Cinema 4D Version:   8.100 
Platform:   Windows  ;   
Language(s) :     C++  ;

---------
Incoming noob question. I've got MS Visual C++ .NET 2003, and I can't compile the SDK example code, which I'm trying just to make sure everything works before wading in. It doesn't - it generates loads of errors like this one:

..._api\OperatingSystem.h error C2383 'C4D_Coffee::GeCoffeeExecute: Default-arguments are not allowed on this symbol'

I assume there's a compiler setting somewhere, but I ca't find it. Sorry if this is a 'Jonny Stupid' question, but I'm a Delphi programmer, I'm not used to all these {'s and ++'s and stuff... 🙂

J

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 25/05/2003 at 08:00, xxxxxxxx wrote:

No, this is a change in MSVC++ .NET that was recently discovered. It doesn't allow default arguments in places where the previous version did. This is a good thing, since those default arguments aren't really allowed by the C++ standard, but causes some inconvenience. (One would wish that MS allowed the old behavior with a switch, instead of breaking code.)
It will be fixed in the next version of the API, but until then you can fix these errors by doing:

  • For every C2198, find the corresponding C2383 for the function called and insert the default parameter as a normal parameter. (I.e. copy the part after the = sign in the declaration as a parameter in the call.)
  • For every C23883, remove the default parameter. (I.e. remove the = and the value after it.)

I don't have .NET 2003, so I cannot reproduce this bug myself. Please tell me if you have any questions.

THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

On 27/05/2003 at 03:01, xxxxxxxx wrote:

Thanks for that. I'll give it a go.

J