On 05/03/2015 at 03:13, xxxxxxxx wrote:
User Information:
Cinema 4D Version: R16
Platform:
Language(s) : C++ ;
---------
Hi Everyone,
I'm looking through this article at the moment:
https://developers.maxon.net/?p=641
- and I'm trying to figure out how to convert some of the code so I can get some steps closer to implementing my own licensing system. I see that there are some deprecated methods/classes in the code below and would like to know what would be the current alternative.
The thing i'm looking at is:
GeAllocNC
It looks like I need to allocate some memory so I can pass a "Char
\*" to the GetCString, thats the bit I can't quite figure out.
`#include "c4d_md5.h"`
`CHAR` `*ConvString(``const` `String& s, STRINGENCODING encoding=(STRINGENCODING)STRINGENCODING_7BIT)`
`{`
` ``// Use STRINGENCODING_UTF8 as same default encoding as Python`
` ``LONG` `len = s.GetCStringLen(encoding);`
` ``CHAR` `*code = (``CHAR``* ) GeAllocNC(len+1);`
` ``if` `(!code) ``return` `NULL;`
` ``s.GetCString(code, len+1, encoding);`
` ``return` `code;`
`}`
`String GetMD5(``const` `String& p)`
`{`
` ``DigestMD5 md5;`
` ``String key;`
` ``CHAR` `*c_str = NULL;`
` ``CHAR` `*c_tmp = NULL;`
` ``c_str = ConvString(p, STRINGENCODING_7BIT);`
` ``if` `(!c_str)`
` ``return` `String();`
` ``c_tmp = md5.get_md5hash(c_str, (unsigned ``long``)``strlen``(str));`
` ``if` `(!c_tmp)`
` ``{`
` ``GeFree(str);`
` ``return` `String();`
` ``}`
` ``key = c_tmp;`
` ``GeFree(c_str);`
` ``GeFree(c_tmp);`
` ``return` `key;`
`}`
Any help greatly appreciated.
Thanks,
Adam