Hot Door CORE Forum

Full Version: 32-bit project problems with native SDK suites
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi Garret and Rick.
Just started project using Core. My platform is Windows, VS2010.
Amazing panels, easy to use, congrats!

I linked native SDK suites ( ArtSuite, MDMemory, Match, AIUser etc) to speed up my process (cause I use Core for the first time). The 64bit project is compiled properly, works nice.

BUT! 32-bit plugin works incorrectly. I turned off all optimization, converted all int to uint::32_t, but with no success.
Strange behaviour, sAIMAtch->GetMatchingArt ( &spec, 1, &matches, &numMatches ) firstly works good, then it can't write to matches.

It seems that problem is that I use native SDK suites.
Have you tried to use native SDK suites with Core in 32 bit projects?

I noticed that both HotDoor and Rick make plugins for 64-bit platform only. What is the reason for that?
Guys, should I abandon 32-bit plugins too?
Welcome to the forum!

(05-05-2017, 09:02 AM)subscribe Wrote: [ -> ]I noticed that both HotDoor and Rick make plugins for 64-bit platform only. What is the reason for that?
Guys, should I abandon 32-bit plugins too?

This is incorrect. While I can't speak for Rick since he's not affiliated with Hot Door, but we still support 32-bit plugins on Windows (Illustrator isn't 32-bit on Mac at all anymore). There is no reason to abandon them yet.

(05-05-2017, 09:02 AM)subscribe Wrote: [ -> ]I linked native SDK suites ( ArtSuite, MDMemory, Match, AIUser etc) to speed up my process (cause I use Core for the first time). The 64bit project is compiled properly, works nice.

BUT! 32-bit plugin works incorrectly. I turned off all optimization, converted all int to uint::32_t, but with no success.
Strange behaviour, sAIMAtch->GetMatchingArt ( &spec, 1, &matches, &numMatches ) firstly works good, then it can't write to matches.

It seems that problem is that I use native SDK suites.
Have you tried to use native SDK suites with Core in 32 bit projects?

As I mentioned above, we still support 32-bit plugins. We even have some that use both CORE and the native SDK, including the MatchingArtSuite. I don't know why your call is failing at runtime.

Here is a production-level code snippet from our source, modified only very lightly for public consumption:

Code:
AIMatchingArtSpec specs;
specs.type = kAnyArt;
specs.attr = 0;    // No special search attributes
specs.whichAttr = 0;

AIArtHandle** matchingArt = NULL;
::ai::int32 matchingArtSize = 0;
AIErr error = sAIMatchingArt->GetMatchingArt(&specs, 1 /* spec count */, &matchingArt, &matchingArtSize);
if(error != kNoErr)
    return false;

AIArtHandle* allArt = new AIArtHandle[ matchingArtSize ];
for(::ai::int32 i = 0; i < matchingArtSize; ++i)
{
    allArt[ i ] = (*matchingArt)[ i ];
}
    
sAIMdMemory->MdMemoryDisposeHandle((AIMdMemoryHandle) matchingArt);

// Do something with allArt ...
Garrett, you made my day!

I skipped specs.attr and specs.whichAttr (declared only type kAnyArt). It worked in 64bit, but not in 32bit.
Thanks a lot. I highly appreciate your help and sharing your amazing framework.

Best regards, Tom.
Hi Tom,

Welcome to the forum and to CORE! Garrett and Brendon created it and are very good at giving clear answers to our questions. For me, CORE has made the difference between updating my old plugins along with a wave of new ones, or just giving up. Please don't be discouraged because of the 32-bit issue you encountered. Everything I've released has a 32-bit version for CS6 and they always compile flawlessly with CORE. I could well be mistaken, but it's been my observation that most people moving on to CC have also updated to 64-bit systems. Now that I'm pretty caught up with the updates, perhaps I should fill in the missing 32-bit versions.

I hope we can exchange tips and observations often. All the best -- Rick