当前位置:编程学习 > C#/ASP.NET >>

关于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函数,看看到底发生了什么。。。。 --------------------编程问答-------------------- 觉得不行吧,这个不同的语言怎么用呢? --------------------编程问答--------------------
引用 2 楼 sdl2005lyx 的回复:
你觉得可能吗?

你用C#的exe做C++动态库的外挂程序,F5启动C++程序,进入C++的Add函数,看看到底发生了什么。。。。


试了一下,发现不能打断点,断点变成了一个空心圆,有个感叹号,提示没有加载任何符号。
如果修改为Math* pMath = Math, 可以打断点。

总之两种方法都可以正常计算出结果。。。。。 --------------------编程问答-------------------- 楼主,原来你直接用了托管C++,Math是net的静态类库!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,