0
如果有人能帮助我,我真的很感激它。native C++ - Visual Studio 2010和OpenCV上的DLL错误数据
我会详细解释情况。
我有两个项目的解决方案:
- 项目在非托管C的Win32 DLL ++
- 控制台应用程序项目来测试该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
为了清晰的目的,我已经忽略了其余的代码,让我知道我必须给你的细节。
谢谢您的帮助
opencv库链接到“multithreaded-dll”运行时库。你的项目将不得不使用相同的。 – berak
你的意思是我必须在两个项目中使用/ MD?可能是 – Khaled
。是。另外,从cv :: Mat继承是一个糟糕的设计理念。代替它。 (你称之为Mat构造函数的方式不会做正确的事情) – berak