这感觉很像在干草堆中找到一根针,但是就这样。
我正在构建一个 Windows Mobile 6.1 应用程序。具体来说,我正在尝试移植OpenCV 框架。在为 ARM4I 架构成功(怀疑地)编译 OpenCV 之后,我正在一个简单的 hello world 风格的应用程序中尝试它。
在我的 WinCE .EXE 中,我正在调用存储在 OpenCV .DLL (cxcore200.dll) 中的函数。简单的调用如下所示。
IplImage *src = cvCreateImage(cvSize(320,240), 8, 1);
当我进入 cvCreateImage 时会出现主要问题。方法签名是:
IplImage * cvCreateImage( CvSize size, int depth, int channels ){ ... }
所以当我进入这个函数时,深度和大小参数分别等于 320 和 240(不是预期的 8 和 1)。
作为参考,CvSize 声明为:
typedef struct
{
int width;
int height;
}
CvSize;
这显然是某种调用堆栈损坏,这与我跨越边界进入可能错误编译的 DLL 的事实有关。
DLL 和 EXE 编译和链接都没有错误。有没有人见过这样的事情?关于如何调试的任何想法?