AutoCAD2006以前,包括cad2006都是用VC++开发的,从AutoCAD2007开始,Autodesk公司为cad引入的.Net框架。通过平台调用,也就是P/Invoke技术,让.Net代码调用动态链接库中的非托管的C++函数。
要使用P/Invoke技术,首先就需要知道一个C++函数对应的重整函数。什么是重整函数?重整函数,就是C++编译器,对每个函数,根据它的函数名称、参数类型、返回值等生成唯一的函数名。例如,在CAD中,用来为“实体添加永久反应器”的C++函数 addPersistentReactor,就被重整为:?addPersistentReactor@AcDbImpObject@@QAEXVAcDbObjectId@@@Z
你可以使用Visual Studio2010的dumpbin.exe工具来查看C++函数对应的重整名称。方法如下:
1)首先,在开始菜单里找到”Visual Studio 命令提示”

2)在“Visual Studio 命题提示”的黑框框中,切换到你的CAD安装目录,比如:C:\Program Files (x86)\AutoCAD 2008,运行
即可查看文件XXX里的C++重整函数名称。
这里以查看acad.exe里重整函数为例,由于acad.exe里面的函数非常多,我们用重定向> 把结果输出到acad.txt文本文件中。使用的命令,依次如下:
C:
cd C:\Program Files (x86)\AutoCAD 2008
dumpbin.exe/exports acad.exe > c:\acad.txt
如图(2)所示:

3)效果如下:
