I had thought I read somewhere that one can't use OpenCL from a DLL. One place I'm definitely going to need it is in a DLL used in a video NLE, so I clearly have no way around this problem, if it does exist.
I can't find anything in the Docs about it, nor the original reference. It may well have been late at night I read it and misunderstood it.
What say ye all?
CraigL
And, as soon as that's out of my mouth, I read something about the Profiler not being able to profile DLLs, which is what I think got me thinking about that.
CraigL
craigL,
calInit and clGetPlatformIDs are not dllMain safe so this is not possible.
Although I never came across this need, to load app into DLL, but could someone explain what "not dllMain safe" means? What programming constellation could cause app to not be able to run from DLL? The question is not OpenCL related, although in this case it certanly has to do something with the implemenatation.
OpenCL and CAL load additional dll when it loaded. and according to this http://msdn.microsoft.com/en-us/library/ms682583%28v=vs.85%29.aspx you can safetly call only functions from kernel32.dll as only this is loaded at the time of calling dllMain.
I've written both CAL and OpenCL applications that are DLLs. For example I have a CAL and an OpenCL version of a BLAS library. These DLLs work when accessed by a C# application.
The Deathray OpenCL application I recently published is a DLL.
I'm quite bemused by the idea that these applications shouldn't work! Maybe it's because none of my DLLs contains a dllMain...