CE系统,VS2005编写的DLL 用C#如何调用不了

CE系统,VS2005编写的DLL 用C#怎么调用不了?
VS2005新建项目 - VC++  - 智能设备 - WIN32智能设备项目 - DLL
DLL code使用默认的:

// CETESTDLL.cpp : 定义 DLL 应用程序的入口点。
//

#include "stdafx.h"
#include "CETESTDLL.h"
#include <windows.h>
#include <commctrl.h>

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
 )
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
    return TRUE;
}

// 这是导出变量的一个示例
CETESTDLL_API int nCETESTDLL=0;

// 这是导出函数的一个示例。
CETESTDLL_API int fnCETESTDLL(void)
{
return 42;
}

// 这是已导出类的构造函数。
// 有关类定义的信息,请参阅 CETESTDLL.h
CCETESTDLL::CCETESTDLL()

return; 
}

-------------------------------------------
C# code:
class CETESTDLL
    {
        [DllImport("CETESTDLL.dll", CharSet = CharSet.Auto)]
        public static extern int fnCETESTDLL();
    }

private void Form1_Load(object sender, EventArgs e)
        {
            MessageBox.Show(CETESTDLL.fnCETESTDLL().ToString());
        }

运行总提示无法找到PInvoke DLL"CETESTDLL.dll"中的入口点"fnCETESTDLL"

谁遇到过这问题??
------解决思路----------------------
C++ 与 C#  相互调用,好像是要用到类似的声明:extern "C" __declspec(dllexport)

建议 LZ 在网上查找一下,这方面的资料很多的