Welcome to the forum!
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.
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:
(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 ...