【发布时间】:2011-04-19 17:17:34
【问题描述】:
我有一个 C++ 方法,例如:
bool MyClass::Foo(char* charPointer)
{
return CallExternalAPIFunction(charPointer);
}
现在我在其他地方有一些 static 方法,例如:
bool MyOtherClass::DoFoo(char* charPointer)
{
return _myClassObject.Foo(charPointer);
}
我的问题是我的代码在那一点上中断了。它不会退出应用程序或任何东西,它永远不会返回任何值。为了尝试查明问题,我使用 Visual Studio 2010 调试器逐步检查了代码并发现了一些奇怪的地方。
当我进入DoFoo 函数并将鼠标悬停在charPointer 上时,我实际上看到了调用它的值(在本例中为IP 地址字符串)。但是,当我进入Foo 并将鼠标悬停在charPointer 上时,什么都没有显示,并且外部API 函数调用永远不会返回(就像它刚刚跨过一样)并且我的程序在调用DoFoo 后恢复执行。
我还尝试使用 VS 调试器的 Exception... 功能(以获取第一次机会异常),但它从未获取任何东西。
有人遇到过这种情况吗?我做错了吗?
谢谢。
【问题讨论】:
-
您是使用调试还是发布设置进行构建?
-
现在发布设置(刚刚编译了一个发布准备好的项目)我会尝试调试,看看我是否得到任何东西。
-
您是否完全重建了应用程序?也许您正在针对您刚刚编辑的代码调试过时的二进制文件?
-
这个
char*来自哪里?你确定它被正确分配了吗?
标签: c++ function pointers char