繁体   English   中英

Visual Studio 2010和OpenCV上的本机C ++-DLL错误数据

[英]native C++-DLL wrong data on visual studio 2010 and OpenCV

如果有人可以帮助我,我真的很感激。

我将详细解释这种情况。

我有两个项目的解决方案:

  1. 非托管C ++中Win32 DLL的项目
  2. 控制台应用程序项目以测试DLL。

创建dll的项目1使用静态链接的OpenCV库。

它包含以下类:

class  CData_1D: public cv::Mat // (dllexport/dllimport depending on the project)
{
 unsigned m_length;

 CData_1D(unsigned cn)
 {
 m_length = cn;

 Mat(1, cn, DataType<double>::type);
 }
}

在项目2 main()函数中:

main()
{
CData_1D TestUnit(10);  
cout << TestUnit.m_length; // 1124007936

}

它可以毫无例外地编译运行,但是数据完全错误,而m_length应该为10,始终为1124007936

为了清楚起见,我已省略了其余代码,请让我知道需要提供的详细信息。

谢谢您的帮助

“本地c ++”不存在,不同的编译器生成的代码与APB不兼容http://en.wikipedia.org/wiki/Application_binary_interface ,这意味着您无法链接到它。

我认为这是C ++的主要主要问题。 要解决此问题,请使用相同的编译器重新编译OpenCV。

我不确定这不是您的问题,但似乎有可能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM