Compile error about cuda kernel function in MSVC2012 "error C2440: 'type cast' : cannot convert

I defined the cuda kernel function in .h file and implemented it in .cu file as below
In .h file

typedef struct _tagSFeature
{
...
}SFeature;
__global__ void Kernel(SFeature* pProbFeatures, SFeature* pGalleryFeatures, int nProbNum, int nGalleryNum, float* prDistMat);

In .cu file

__global__ void Kernel(SFeature* pProbFeatures, SFeature* pGalleryFeatures, int nProbNum, int nGalleryNum, float* prDistMat)
{
...
}

then, when compile this .cu file, error occured - error C2440: ‘type cast’ : cannot convert from ‘overloaded-function’ to xxx

What is the problem?

The style of the error message suggests it’s an error message from the host compiler, so it pertains to host-side code not device-side code. You are only showing a fragment of the latter. If you would like assistance in pin-pointing the problem, please post self-contained, buildable repro code, the complete nvcc command line used to build that code, and unabridged compiler output.

sorry, It was a my fault relating to the namespace.
Thanks for your caring.