簡體   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