In my thinking it HAS to be "void *" because the params are pointers to different structures depending on the selector.
I think one of the CS3 SDK examples had "long" as well - I seem to remember changing it to "void *".
It matters because sizeof( void * ) will be "long" on 32bit machines and "long long" on 64bit machines. Thus if you try to keep it as "long" it will truncate the size if used on 64bit machines. If the compiler is any good, and it's compiling for a 64bit target it should give you an error. For 32bit it should be a warning (since long is actually "signed long" and thus is only 31bits of the possible 32bit address.
Anyhow, from what Zac's said, all CS5 is 64bit only so the correct type must be "void *" not "long".
I was not correcting the argument of the extern declaration of the header file of my plug-in.
The plug-in did not operate because the declaration and the definition were the disagreements.
I had completely forgotten the extern declaration.
It was my mistake. I am sorry.
I think that you should correct "SDK_Exporter" and "RTPlayback" sample program.
>I think that you should correct "SDK_Exporter" and "RTPlayback" sample program.
Yes, I agree. I lost quite some time until I could work out that I had mixed the void* and the long in my exporter based on the example. In my case it was worse because I had cast "param1" to the structure and thus disabled the compiler from warning me about the type mismatch.
I'm glad we have this forum to help each other!
> I think that you should correct "SDK_Exporter" and "RTPlayback" sample program.
Thanks for the feedback. I'll correct it for the next SDK release. Yes, there still remains some conversions that need be done in the sample projects, to get rid of long type usage.
> I'm glad we have this forum to help each other!
Glad this SDK forum is proving to be of help! Thanks for supporting it!
I found another mistake.
x for (int i = 0; i < sizeof (PARs); i++)
o for (int i = 0; i < sizeof(PARs) / sizeof (PARs); i++)