First for all I would like to start by saying I am relatively new to openCL and kinda rusty in C++. Also this is the first time I'm asking a question so feel free to correct me or point to something I could improve in the post.
I am interested in creating a project that will create mixed mode assembly dll (CLR Library aka DLL) to be loaded and used by CLR Form applications. However I keep falling into the pitfall of fatal error C1001 which really isn't much to go through.
1>C:\Program Files (x86)\AMD APP\include\cl\cl.hpp(3708): fatal error C1001: An internal error has occurred in the compiler.
1> (compiler file 'msc1.cpp', line 1420) which in this case points to cl_int enqueueNativeKernel( void (CL_CALLBACK *userFptr)(void *), line of the hpp.
I am using amd APP SDK v2.6 with Visual Studio 2010 Ultimate and linking the header/lib provided for c++. In theory the crossing from unmanaged to unmanaged code shouldn't be an issue buut since it's compiled with CLR I included the #pragmas to indicate the unmanaged passing anyway
<
#pragma once
#pragma managed(push,off)
#define __NO_STD_STRING
#define __NO_STD_VECTOR
#include <cl\cl.hpp>
#pragma comment(lib,"OpenCL.lib")
#pragma managed(pop)
//rest of code
Always with the dreadful C1001 error,after the Compiler Crashes(CL.exe) and no matter how I play with the switches I am at a loss.
Additionaly, #define __CL_ENABLE_EXCEPTIONS throws a C4290 warning. Removing the __NO_STD didn't really make a difference.
I should note that the project compiles fine with the C API included instead of the hpp and I know I could use that instead.
Has anyone else encountered this issue? I would really appreciate some info on the matter.