关于c#调用c++dll的问题
c++dll假如有一个类
class Math
{
int Add(int p1, int p2){return p1+p2};
}
Math* pMath = NULL;
extern "C" _declpec(dllexport) int Add(int p1, int p2)
{
pMath->Add(p1, p2);
}
上面的代码中,Math并没有实例化,只是一个空指针,为什么在C#里调用的时候,可以使用Add导出函数算出正确的结果??
请高人解释一下。 --------------------编程问答-------------------- --------------------编程问答-------------------- 你觉得可能吗?
你用C#的exe做C++动态库的外挂程序,F5启动C++程序,进入C++的Add函数,看看到底发生了什么。。。。 --------------------编程问答-------------------- 觉得不行吧,这个不同的语言怎么用呢? --------------------编程问答--------------------
试了一下,发现不能打断点,断点变成了一个空心圆,有个感叹号,提示没有加载任何符号。
如果修改为Math* pMath = Math, 可以打断点。
总之两种方法都可以正常计算出结果。。。。。 --------------------编程问答-------------------- 楼主,原来你直接用了托管C++,Math是net的静态类库!
补充:.NET技术 , C#