【发布时间】:2011-03-24 08:16:39
【问题描述】:
早安,
我面临一个非常奇怪的问题,我还没有找到解决方案。 我希望有人能给我一个clou。
我正在将一个类编译为静态库。 我在一个简单的控制台程序中使用这个类来对该类执行测试。
在我向该类添加一个新的数据成员 (std::string) 之前,该类就像一个魅力一样工作。 即使我不使用该字符串,当调用类的 dtor 时也会出现奇怪的错误(当字符串没有值时访问冲突或当字符串初始化时出现缓冲区溢出)。
调试类显示新的 std::string 不存在,但旧成员存在。
我什至尝试在 ctor (strLPath.str("Appletree")) 中初始化该字符串并在 dtor 之前将其输出。 字符串的输出显示类似于“Ap tre”。
当我删除那个新字符串时,一切又好了。
有人可以帮帮我吗?
感谢您提前提供任何答案。
菲尔
【问题讨论】:
-
您确定您进行了完整、干净的重建吗?你能显示相关代码吗?你能用一个小例子重现错误吗?
-
请发布缩小的源代码示例。比起一堆文字,看源代码能更好地帮助你。
-
我认为源代码在这里不会很有用。正如 Space_C0wb0y 所暗示的,这听起来像是部分构建问题。部分程序仍在使用旧的类定义。从头开始重建一切,然后重试。
-
@Space_C0wb0y 是的,我试过了(在 lib 和调用程序中都是 ctrl+alt+f7)
-
@Phil:我在msdn.microsoft.com/en-us/library/da5kh0wa.aspx 的 Microsoft 键盘快捷键中找不到 ctrl+alt+f7。这是什么意思?你确定它的意思是你认为的吗?
标签: c++ visual-studio class static