示例:
1、C++代码
/* 文件名:lib.h */
#ifndef LIB_H
#define LIB_H
extern "C" int __declspec(dllexport)add(int x, int y);
#endif
/* 文件名:lib.cpp */
#include "lib.h"
int add(int x, int y)
{
return x + y;
}
2、C# 调用代码
[DllImport(@".\mydll.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern int add(int a, int b);
VC调VC的DLL时,可以跟踪到程序里,其它的和.NET有关的就只能取得结果,跟踪不进去。
可以把C#项目属性改为启用非托管调试,在C#中调用的地方添加断点,F11进入dll函数调试
参考:http://bbs.youkuaiyun.com/topics/100049220