讨厌的VC编译项

原创 2006年12月26日 14:45:00
 

在程序中做了个CheckRelation(AcDbObjectId eId1, AcDbObjectId eId2)函数,用于判断两个pline线对象的空间拓扑关系,在多数情况下工作正常,很高兴的编译发布了。

昨天突然发现在判断一个非常显眼的pline线交叉时居然出错了,而且都是直线段,没有圆弧——CheckRelation中关于直线段是否交叉用的是数学方法,包括CheckRelation中调用的PointInCurve也一样,压根没调用AcGeLineSeg之类的方法——这意味着是我的代码出了问题,而不是ObjectARX的库的问题。

打开Debug版本,调试,郁闷的发现,居然在Debug版下没有问题!

因为对外发布的版本有其他的宏定义,又到处检查了一下,没看到什么碍眼的地方。但是Debug版就是木有问题,而SJ、Inner都出错,非常郁闷! 

突然想起编译项里面,优化项(Optimizations)的设置是有区别的,把发布的版本的编译项由Maximize Speed(/O2)修改为Disable(/Od,禁用优化),再编译,问题消失了!

不知道是我的VC没打补丁(其实好像打了,记不清了)还是什么其他问题,反正。。。。反正问题解决了。

相关文章推荐

VC编译时: MT,MTd,MD,MDd的区别

1、VC编译选项  多线程(/MT) 多线程调试(/MTd) 多线程 DLL (/MD) 多线程调试 DLL (/MDd) 2、对应的C运行时库和相应的库文件 C 运行时库        ...

对VC++工程编译过程的梳理

对VC++工程编译过程的梳理VC++的项目和解决方案文件解读,无非就是利用这些信息进行一个软件的编译,这些文件里面是存放的项目的配置和工程的组织,类似于makefile文件. 但是只有VC++6.0的...

VC++编译lua库 无法解析lua符号问题

extern "C" { #include #include }

OPENCV的highgui工程在vc6.0下编译出错的解决

【原文:http://www.cnblogs.com/oskycar/archive/2009/08/30/1556924.html】 最近在论坛里发现有很多人提出如下的问题: 怎么按...

VC编译选项 MT MTd MD MDd 全面分析

VC编译选项 多线程    (/MT) 多线程调试 (/MTd) 多线程 DLL (/MD) 多线程调试 DLL (/MDd) C 运行时库                         ...

VC++6.0工具创建文件、编译、链接、运行以及调试基础-顺序结构

熟悉开发环境,程序开发流程,基本调试 1.实验目的和要求 1.熟悉Visual C++ 6.0的集成开发环境; 2.学习完整的C++程序开发过程,理解简单的C++程序结构; 3.学习C++...

VC6.0下设置Unicode编译环境

VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持UNICODE的应用程序。   使用VC++ 6.0进行Unicode编程主...
  • maweiqi
  • maweiqi
  • 2012年07月30日 11:16
  • 6055

VC2010下编译log4cxx(windows环境下)

    最近一段时间在使用C++写程序,其中需要使用日志功能,便顺手“拿来”了log4cxx。从Apache网站上下载的log4cxx只有源代码,需要自己编译出dll,通过官方文档所说的办法编译,出现...
  • kungbx
  • kungbx
  • 2011年01月11日 17:36
  • 5027

VC预编译头文件问题解析

一般如果有些东西多了很久了,编译出现下列问题可能解决办法是:        用记事本打开.dsp文件,找到关于这样一段:                             SOURCE=.\...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:讨厌的VC编译项
举报原因:
原因补充:

(最多只允许输入30个字)