R8.2 SDK and Visual C++.net?



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

    On 13/12/2004 at 08:34, xxxxxxxx wrote:

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

    ---------
    Howdy,

    Has anyone been successful in compiling the R8.2 SDK on the PC using Visual C++.net?

    CodeWarrior 9 on the Mac was a breeze, a couple of minor errors to fix and it was done.

    Visual C++.net has way too many errors (it fills up the maximum space in the error log and then aborts). All of the files have had their line endings fixed, but it's still not working.

    Any suggestions?

    Adios,
    Cactus Dan



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

    On 23/12/2004 at 03:24, xxxxxxxx wrote:

    Maybe the Visual C++.net compiler expects managed C++, which is AFAIK a true subset of C++. Can this compiler even generate native code or just CLR bytecode? The latter will not work as a C4D plugin for obvious reasons.

    The Visual C++ compiler you can get for free from Microsoft compiles the SDK with some minor fixes fine here.

    Michael



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

    On 23/12/2004 at 06:57, xxxxxxxx wrote:

    Howdy,

    Thanks for the reply Michael.

    Visual C++.net seemed to compile the R8.5 SDK with no problems. My plugin is available for Mac/PC in R8.5 but I had a couple of requests for an R8.2 version and I can compile the 8.2 SDK on the Mac but not on the PC.

    What would be the main difference between the 8.2 and 8.5 SDK's that would cause the PC failure of the 8.2 SDK? I'll go back and check the settings and see if I missed something.

    Adios,
    Cactus Dan



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

    On 23/12/2004 at 19:19, xxxxxxxx wrote:

    Howdy,

    OK, I checked the settings and they look the same as the 8.5 project. So, I tried compiling just the api by itself first and I only got these errors:

    c:\Program Files\MAXON\CINEMA_4D_R8\Resource\_api\c4d_string.h(103) : error C2501: 'UFF' : missing storage-class or type specifiers
    c:\Program Files\MAXON\CINEMA_4D_R8\Resource\_api\c4d_string.h(103) : error C2143: syntax error : missing ';' before '--'
    c:\Program Files\MAXON\CINEMA_4D_R8\Resource\_api\c4d_gv\c4d_graphview.h(612) : error C2198: 'GvCalcError (__cdecl * )(void *,GvValueID,const void *const ,const void *const ,void *,LONG,GvValueFlags,Real)' : too few arguments for call through pointer-to-function
    c:\Program Files\MAXON\CINEMA_4D_R8\Resource\_api\c4d_gv\c4d_graphview.h(620) : error C2198: 'GvCalcError (__cdecl * )(void *,GvValueID,const void *const ,const void *const ,void *,LONG,GvValueFlags,Real)' : too few arguments for call through pointer-to-function
    c:\Program Files\MAXON\CINEMA_4D_R8\Resource\_api\c4d_gv\c4d_graphview.h(620) : error C2198: 'GvCalcError (__cdecl * )(void *,GvValueID,const void *const ,const void *const ,void *,LONG,GvValueFlags,Real)' : too few arguments for call through pointer-to-function
    c:\Program Files\MAXON\CINEMA_4D_R8\Resource\_api\c4d_gv\c4d_graphview.h(612) : error C2198: 'GvCalcError (__cdecl * )(void *,GvValueID,const void *const ,const void *const ,void *,LONG,GvValueFlags,Real)' : too few arguments for call through pointer-to-function
    c:\Program Files\MAXON\CINEMA_4D_R8\Resource\_api\c4d_gv\c4d_graphview.h(620) : error C2198: 'GvCalcError (__cdecl * )(void *,GvValueID,const void *const ,const void *const ,void *,LONG,GvValueFlags,Real)' : too few arguments for call through pointer-to-function
    c:\Program Files\MAXON\CINEMA_4D_R8\Resource\_api\c4d_gv\c4d_graphview.h(612) : error C2198: 'GvCalcError (__cdecl * )(void *,GvValueID,const void *const ,const void *const ,void *,LONG,GvValueFlags,Real)' : too few arguments for call through pointer-to-function
    c:\Program Files\MAXON\CINEMA_4D_R8\Resource\_api\c4d_gv\c4d_graphview.h(620) : error C2198: 'GvCalcError (__cdecl * )(void *,GvValueID,const void *const ,const void *const ,void *,LONG,GvValueFlags,Real)' : too few arguments for call through pointer-to-function
    c:\Program Files\MAXON\CINEMA_4D_R8\Resource\_api\c4d_gv\c4d_graphview.h(612) : error C2198: 'GvCalcError (__cdecl * )(void *,GvValueID,const void *const ,const void *const ,void *,LONG,GvValueFlags,Real)' : too few arguments for call through pointer-to-function
    c:\Program Files\MAXON\CINEMA_4D_R8\Resource\_api\c4d_string.h(108) : fatal error C1020: unexpected #endif
    c:\Program Files\MAXON\CINEMA_4D_R8\Resource\_api\c4d_resource.cpp(60) : warning C4291: 'void *Filename::operator new(size_t,int,const CHAR * )' : no matching operator delete found; memory will not be freed if initialization throws an exception

    There seems to only be three problem files: c4d_string.h, c4d_graphview.h & c4d_resource.cpp

    I'm not quite sure how to fix these errors, though.

    It's saying that the errors in c4d_string.h are in lines 103 and 108, but there are only 102 lines in c4d_string.h (that doesn't make any sense)

    Any ideas?

    Adios,
    Cactus Dan



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

    On 27/12/2004 at 12:32, xxxxxxxx wrote:

    Search the forum for C2198 and you'll find instructions how to eliminate those errors. (In http://www.plugincafe.com/forum/display_topic_threads.asp?ForumID=4&TopicID=574.)



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

    On 27/12/2004 at 17:31, xxxxxxxx wrote:

    Howdy,

    Well, I looked at that thread, but I'm a bit confused.

    In tracing the error that's in c4d_graphview.h on line 612, I start here:
    inline void GvClearDynamicData(GvDynamicData &data;, GvRun *r)
    {
         data.info->value_handler->Calculate(data.info->value_handler->userdata,data.info->value_handler->value_id,NULL,NULL,data.data,r->GetCpuID(),GV_CALC_CLR,NULL); // line "612"
    }

    "data" leads me to here:
    struct GvDynamicData
    {
         GvDynamicData(void) : data(NULL), info(NULL), cpu_count(0) { }
         
         void*                    data;
         GvDataInfo*     info;
         LONG                    cpu_count;
    };

    "data.info" leads me to here:
    struct GvDataInfo
    {
         GV_DATA_HANDLER*                    data_handler;
         GV_VALUE_HANDLER*                    value_handler;
         GV_VALGROUP_HANDLER*          group_handler;
    };

    "data.info->value_handler" leads me to here:
    struct GV_VALUE_HANDLER
    {

    GvValueID          value_id;
              GvValueFlags     value_flags;
              void*               userdata;
                                                      
              Bool               (*Alloc     )(void *userdata,void *&data;, LONG nr_of_cpus);
              void               (*Free     )(void *userdata,void *&data;, LONG nr_of_cpus);
              GvCalcError          (*Convert     )(void *userdata,GvValueID source_id, const void* const source, GvValueID dest_id, void *dest, LONG cpu_id);
              GvCalcError          (*Calculate     )(void *userdata,GvValueID id, const void* const source1, const void* const source2, void *dest, LONG cpu_id, GvValueFlags calculation, Real parm1);
              void               (*CopyFrom     )(void *userdata,const void* const source, void *dest, LONG cpu_id);
              void               (*CopyTo     )(void *userdata,const void* const source, void *dest, LONG cpu_id);
              LONG               (*GetConversionsFrom     )(void *userdata,GvValueID *&table;);
              LONG               (*GetConversionsTo     )(void *userdata,GvValueID *&table;);
              const String*          (*GetName     )(void *userdata);
              Bool               (*Read      )(void *userdata,const void* const data, LONG nr_of_cpus, HyperFile &hf;);
              Bool               (*Write      )(void *userdata,const void* const data, LONG nr_of_cpus, HyperFile &hf;);
              BaseBitmap*          (*GetIcon      )(void *userdata);
              const void*          (*GetDataInstance      )(void *userdata,const void* const source, LONG cpu_id);
    };

    ...but I'm not seeing any default parameters in the "Calculate" function call, unless I've traced it to the wrong place?

    Any ideas?

    Adios,
    Cactus Dan


Log in to reply