日期:2014-05-18  浏览次数:20834 次

C++编译的Dll中需要使用单态类 供C#调用 求解
"TestDllC.h"

public class TestDllC
{
private:
int bb;
static int pid;
static TestDllC *pThis;
private:
TestDllC();
~TestDllC();
!TestDllC();
static TestDllC();

public:
static TestDllC* GetInstance();
int MessageSay();
};

"TestDllC.cpp"
TestDllC::TestDllC()
{
pid++;
}

TestDllC::~TestDllC()
{

}
TestDllC::!TestDllC()
{
// delete pThis; 
}
static TestDllC::TestDllC()
{
pid=0;
}

static TestDllC* TestDllC::GetInstance()
{
if(pThis==NULL)
{
pThis=new TestDllC();//一个创建不复杂的类 所以不考虑线程安全
}
return pThis;
// return gcnew TestDllC();
}

int TestDllC::MessageSay()
{
return pid;
}

类的示例如上,如何来做?

------解决方案--------------------
不行。在C#中不能调用。
1.把动态库改造成Com接口或者全部以方法引出,不要使用类。
2.自己使用C++再次封装,以方法引出。