最近遇到个莫名奇妙的错误:就是一个ObjectARX程序,在ACAD2004中编译运行良好,改到ACAD2008下后,Debug版本运行正常,Release版本会出现非法错误。调试发现是两个子函数单独运行都是好的,同时先后运行就会出现此错误。费了好大劲也没解决,最后终于找到了原因,见下面两句:
ACHAR *name;
m_dataTable.getColumnNameAt(i, name);
m_dataTable为AcDbDataTable类型,两个子函数中都用到了这两句。错误应该就是在定义name时没有赋初值,改为ACHAR *name = NULL后问题解决。