1、修改designer接口,引入到lpmain中使用(加载成功)

master
bob.pan 5 years ago
parent 3ff4f60aa5
commit 5922b42a1e

@ -18,6 +18,7 @@ public:
class IDetectorUI
{
public:
virtual bool Initialize(IDetectorEngine* lpDE) = 0;
virtual bool ShowDeviceMgrDlg() = 0;
virtual bool ShowSolutionMgrDlg() = 0;
virtual bool ShowMainFrame() = 0;
@ -31,10 +32,9 @@ public:
# define LPDESIGNER_EXPORT extern "C" __declspec(dllimport)
#endif
typedef void(*FnLpDesignerNewInstance)(IDetectorUI **lppDetectorUI, IDetectorEngine *lpDE, IDetectorUISink* lpSink);
LPDESIGNER_EXPORT void LpDesignerNewInstance(IDetectorUI **lppDetectorUI, IDetectorEngine *lpDE, IDetectorUISink* lpSink);
LPDESIGNER_EXPORT IDetectorUI * Lib_Designer_Init(void);
LPDESIGNER_EXPORT bool LpDesignerDeleteInstance();
LPDESIGNER_EXPORT void Lib_Designer_Free(IDetectorUI *ptr);
#endif // LPDESIGNER_H

@ -1,4 +1,4 @@
#include "LPDsg.h"
#include "CDetectorUI.h"
CDetectorUI::CDetectorUI()
{

@ -3,7 +3,7 @@
#include "lpdesigner.h"
#include "MainFrame.h"
#include "QSharedPointer"
class CDetectorUI : IDetectorUI
class CDetectorUI :public IDetectorUI
{
public:
CDetectorUI();

@ -1,19 +1,18 @@
#include "lpdesigner.h"
#include "LPDsg.h"
#include "CDetectorUI.h"
void LpDesignerNewInstance(IDetectorUI **lppDetectorUI, IDetectorEngine *lpDE, IDetectorUISink* lpSink)
{
CDetectorUI *g_pDetectUI = new CDetectorUI;
if (g_pDetectUI)
{
if(!g_pDetectUI->Initialize(lpDE))
return;
}
*lppDetectorUI = (IDetectorUI *)g_pDetectUI;
LPDESIGNER_EXPORT IDetectorUI* Lib_Designer_Init(void)
{
CDetectorUI *g_pDetectUI = new CDetectorUI();
return g_pDetectUI;
}
bool LpDesignerDeleteInstance()
LPDESIGNER_EXPORT void Lib_Designer_Free(IDetectorUI *ptr)
{
return true;
if (ptr)
{
delete ptr;
ptr = nullptr;
}
}

@ -163,7 +163,7 @@
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\..\..\src\lpbdesigner\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DLPDESIGNER_LIB -D%(PreprocessorDefinitions) "-I." "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWebKit" "-I$(QTDIR)\include\QtPrintSupport" "-I$(QTDIR)\include\QtWebkitWidgets" "-I.\GeneratedFiles\$(ConfigurationName)" "-I.\..\..\include\lpdesigner\algela" "-I.\..\..\include\lpdesigner" "-I.\..\..\src\lpbdesigner\GeneratedFiles" "-I.\..\..\src\ColossusBase" "-I.\..\..\3part\opencv3.4.1\include" "-I.\..\..\3part\opencv3.4.1\include\opencv" "-I.\..\..\3part\opencv3.4.1\include\opencv2" "-I.\..\..\src\lpbdesigner" "-I.\..\..\3part\tadpole\include\tpBase"</Command>
</CustomBuild>
<ClInclude Include="..\..\src\lpbdesigner\LPDsg.h" />
<ClInclude Include="..\..\src\lpbdesigner\CDetectorUI.h" />
<ClInclude Include="..\..\src\lpbdesigner\RoiItem.h" />
<CustomBuild Include="..\..\src\lpbdesigner\RoiScene.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
@ -240,7 +240,7 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\lpbdesigner\lpdesigner.cpp" />
<ClCompile Include="..\..\src\lpbdesigner\LPDsg.cpp" />
<ClCompile Include="..\..\src\lpbdesigner\CDetectorUI.cpp" />
<ClCompile Include="..\..\src\lpbdesigner\lpTreeWidget.cpp" />
<ClCompile Include="..\..\src\lpbdesigner\MainFrame.cpp" />
<ClCompile Include="..\..\src\lpbdesigner\RoiItem.cpp" />

@ -52,9 +52,6 @@
<ClInclude Include="..\..\src\lpbdesigner\DrawTool.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lpbdesigner\LPDsg.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lpbdesigner\RoiItem.h">
<Filter>Header Files</Filter>
</ClInclude>
@ -94,6 +91,9 @@
<ClInclude Include="..\..\src\lpbdesigner\colossusbase.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lpbdesigner\CDetectorUI.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\src\lpbdesigner\MainFrame.h">
@ -167,9 +167,6 @@
<ClCompile Include="..\..\src\lpbdesigner\lpdesigner.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lpbdesigner\LPDsg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lpbdesigner\RoiItem.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@ -251,6 +248,9 @@
<ClCompile Include="..\..\src\lpbdesigner\colossusbase.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\lpbdesigner\CDetectorUI.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Image Include="..\..\src\lpbdesigner\resource\app.png">

@ -0,0 +1,45 @@
#include "CDllDesigner.h"
#include "DllLoader.h"
CDllDesigner::CDllDesigner()
{
m_pLibDesigner = new CDllLoaderM("lpdesigner", "Lib_Designer_Init", "Lib_Designer_Free", QStringList());
if (nullptr != m_pLibDesigner)
{
m_pDesigner = (IDetectorUI *)m_pLibDesigner->ModuleInit(nullptr);
if (m_pDesigner) {
}
else {
tpDebugOut("failed to get instance from tpCoreCtrl.dll");
}
}
}
CDllDesigner::~CDllDesigner()
{
}
bool CDllDesigner::Initialize(IDetectorEngine* lpDE)
{
if (!lpDE)
return false;
if (m_pDesigner)
{
m_pDesigner->Initialize(lpDE);
}
return true;
}
IDetectorUI* CDllDesigner::GetDesignerInterface() const
{
return m_pDesigner;
}
void CDllDesigner::OnManualTrigger()
{
emit sgCloseWindow();
}

@ -0,0 +1,26 @@
#ifndef QDETECTORDESIGNERMGR_H
#define QDETECTORDESIGNERMGR_H
#include ".\lpbengine.h"
#include ".\lpdesigner.h"
#include <QObject>
class CDllDesigner : public QObject
{
Q_OBJECT
public:
CDllDesigner();
virtual ~CDllDesigner();
bool Initialize(IDetectorEngine* lpDE);
IDetectorUI * GetDesignerInterface() const;
virtual void OnManualTrigger();
signals:
void sgCloseWindow();
private:
class CDllLoaderM* m_pLibDesigner{ nullptr };
IDetectorUI *m_pDesigner{ nullptr };
};
#endif // QDETECTORDESIGNERMGR_H

@ -1,65 +0,0 @@
#include "QDetectorDesignerMgr.h"
QDetectorDesignerMgr::QDetectorDesignerMgr()
{
m_pDesigner = NULL;
m_pDE = NULL;
}
QDetectorDesignerMgr::~QDetectorDesignerMgr()
{
Quit();
}
bool QDetectorDesignerMgr::Initialize(IDetectorEngine* lpDE)
{
if (!lpDE)
return false;
m_pDE = lpDE;
#ifdef _DEBUG
m_lib.setFileName("lpdesignerd.dll");
#else
m_lib.setFileName("lpdesigner.dll");
#endif
if (!m_lib.load()) {
qDebug() << "lpdesigner lib load failed";
return false;
}
qDebug() << "lib load ok";
FnLpDesignerNewInstance pfnLpNewInstance = (FnLpDesignerNewInstance)m_lib.resolve("LpDesignerNewInstance");
if (pfnLpNewInstance)
pfnLpNewInstance(&m_pDesigner, m_pDE, nullptr);
if (!m_pDesigner)
return false;
return true;
}
IDetectorUI* QDetectorDesignerMgr::GetDesignerInterface() const
{
return m_pDesigner;
}
void QDetectorDesignerMgr::Quit()
{
if (m_pDesigner)
{
delete m_pDesigner;
m_pDesigner = NULL;
}
if (m_lib.isLoaded())
m_lib.unload();
}
void QDetectorDesignerMgr::OnManualTrigger()
{
emit sgCloseWindow();
}
void QDetectorDesignerMgr::OnSetParam(IDetectorTask* pTask)
{
//return m_pApp->SetParam(pTask);
}

@ -1,31 +0,0 @@
#ifndef QDETECTORDESIGNERMGR_H
#define QDETECTORDESIGNERMGR_H
#include ".\lpbengine.h"
#include ".\lpdesigner.h"
#include "qobject.h"
class QDetectorDesignerMgr : public QObject
{
Q_OBJECT
public:
QDetectorDesignerMgr();
virtual ~QDetectorDesignerMgr();
bool Initialize(IDetectorEngine* lpDE);
void Quit();
IDetectorUI * GetDesignerInterface() const;
virtual void OnManualTrigger();
virtual void ResetItem(QPoint pos, QRect size){}
virtual void OnSetParam(IDetectorTask* pTask);
signals:
void sgCloseWindow();
private:
private:
QLibrary m_lib;
IDetectorUI *m_pDesigner;
IDetectorEngine *m_pDE;
};
#endif // QDETECTORDESIGNERMGR_H

@ -420,11 +420,24 @@ bool lpMainWin::onInitEngineCtrl()
if (m_pDllEngineCtrl != nullptr)
{
m_pEngineCtrl = m_pDllEngineCtrl->m_pDE;
return true;
}
return false;
}
if (m_pDllDesigner == nullptr)
{
m_pDllDesigner = new CDllDesigner();
if (m_pDllDesigner != nullptr)
{
m_pDesigner = m_pDllDesigner->GetDesignerInterface();
if (m_pDesigner && m_pEngineCtrl)
{
m_pDesigner->Initialize(m_pEngineCtrl);
//m_pDesigner->ShowMainFrame();
}
}
}
return false;
}

@ -23,6 +23,8 @@
#include "QCamSettingDlg.h"
#include "lpbengine.h"
#include "CoreCtrl/CDllDetectorEngine.h"
#include "CoreCtrl/CDllDesigner.h"
#include "lpdesigner.h"
class lpMainWin : public QMainWindow
{
@ -207,6 +209,8 @@ private:
private:
CDllDetectorEngine* m_pDllEngineCtrl{ nullptr };
IDetectorEngine* m_pEngineCtrl{nullptr};
CDllDesigner* m_pDllDesigner{ nullptr };
IDetectorUI* m_pDesigner{ nullptr };
};
#endif

@ -62,7 +62,10 @@
<ClCompile Include="..\..\src\tpMain\WheelNet.cpp" />
<ClCompile Include="CoreCtrl\CDllCoreCtrl.cpp" />
<ClCompile Include="CoreCtrl\CDllDetectorEngine.cpp" />
<ClCompile Include="CoreCtrl\QDetectorDesignerMgr.cpp" />
<ClCompile Include="CoreCtrl\CDllDesigner.cpp" />
<ClCompile Include="GeneratedFiles\Debug\moc_CDllDesigner.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_ChannelInfo.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
@ -123,9 +126,6 @@
<ClCompile Include="GeneratedFiles\Debug\moc_QDebugDlg.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_QDetectorDesignerMgr.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_qdia2thsetting.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</ClCompile>
@ -201,6 +201,9 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</PrecompiledHeader>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_CDllDesigner.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_ChannelInfo.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
@ -261,9 +264,6 @@
<ClCompile Include="GeneratedFiles\Release\moc_QDebugDlg.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_QDetectorDesignerMgr.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_qdia2thsetting.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
</ClCompile>
@ -485,12 +485,12 @@
</CustomBuild>
<ClInclude Include="CoreCtrl\CDllCoreCtrl.h" />
<ClInclude Include="CoreCtrl\CDllDetectorEngine.h" />
<CustomBuild Include="CoreCtrl\QDetectorDesignerMgr.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<CustomBuild Include="CoreCtrl\CDllDesigner.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath);$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_CORE_LIB -DTPMAIN_LIB -DTPMAIN_EXPORTS -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_SQL_LIB -DQT_PRINTSUPPORT_LIB -DQT_NETWORK_LIB -DQT_SERIALPORT_LIB -D_WINDOWS -D%(PreprocessorDefinitions) "-I." "-I.\GeneratedFiles" "-I.\GeneratedFiles\$(ConfigurationName)" "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\ActiveQt" "-I$(QTDIR)\include\QtSerialPort" "-I$(QTDIR)\include\QtANGLE" "-I$(QTDIR)\include\QtPrintSupport" "-I$(QTDIR)\include\QtSql" "-I$(QTDIR)\include\QtNetwork" "-I.\..\..\src\algorithm" "-I.\..\..\src\tpMain" "-I.\..\..\src\tpMain\thread" "-I.\..\..\src\tpMain\splashScreen" "-I.\..\..\src\tpMain\LightBoxwidget" "-I.\..\..\src\tpMain\QDiskCleanThread" "-I.\..\..\src\tpMain\QPixmapListBar" "-I.\..\..\src\userCtrl" "-I.\..\..\src\NetWheel" "-I.\..\..\src\RasterSDG20" "-I.\..\..\src\ReportModel" "-I.\..\..\3part\libzkq\include" "-I.\..\..\3part\tadpole\include\tpBase" "-I.\..\..\3part\opencv3.4.1\include" "-I.\..\..\3part\opencv3.4.1\include\opencv" "-I.\..\..\3part\opencv3.4.1\include\opencv2" "-I.\..\..\3part\edcircle\include" "-I.\..\..\3part\lpCoreCtrl\include" "-I.\..\..\src\tpMain\algela" "-I.\..\..\src\ImageCompare" "-I.\..\..\src\interface"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath);$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe" "%(FullPath)" -o ".\GeneratedFiles\$(ConfigurationName)\moc_%(Filename).cpp" -DUNICODE -DWIN32 -DWIN64 -DQT_NO_DEBUG -DNDEBUG -DQT_CORE_LIB -DTPMAIN_LIB -DTPMAIN_EXPORTS -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_SQL_LIB -DQT_PRINTSUPPORT_LIB -DQT_NETWORK_LIB -DQT_SERIALPORT_LIB -D%(PreprocessorDefinitions) "-I." "-I.\GeneratedFiles" "-I.\GeneratedFiles\$(ConfigurationName)" "-I$(QTDIR)\include" "-I$(QTDIR)\include\QtCore" "-I$(QTDIR)\include\QtGui" "-I$(QTDIR)\include\QtWidgets" "-I$(QTDIR)\include\ActiveQt" "-I$(QTDIR)\include\QtSerialPort" "-I$(QTDIR)\include\QtANGLE" "-I$(QTDIR)\include\QtPrintSupport" "-I$(QTDIR)\include\QtSql" "-I$(QTDIR)\include\QtNetwork" "-I.\..\..\src\algorithm" "-I.\..\..\src\tpMain" "-I.\..\..\src\tpMain\thread" "-I.\..\..\src\tpMain\splashScreen" "-I.\..\..\src\tpMain\LightBoxwidget" "-I.\..\..\src\tpMain\QDiskCleanThread" "-I.\..\..\src\tpMain\QPixmapListBar" "-I.\..\..\src\userCtrl" "-I.\..\..\src\NetWheel" "-I.\..\..\src\RasterSDG20" "-I.\..\..\src\ReportModel" "-I.\..\..\3part\libzkq\include" "-I.\..\..\3part\tadpole\include\tpBase" "-I.\..\..\3part\opencv3.4.1\include" "-I.\..\..\3part\opencv3.4.1\include\opencv" "-I.\..\..\3part\opencv3.4.1\include\opencv2" "-I.\..\..\3part\lpCoreCtrl\include" "-I.\..\..\src\tpMain\algela" "-I.\..\..\src\ImageCompare" "-I.\..\..\src\interface" "-I.\..\..\3part\edcircle\include"</Command>

@ -385,9 +385,6 @@
<ClCompile Include="CoreCtrl\CDllDetectorEngine.cpp">
<Filter>lpMain\CoreCtrl</Filter>
</ClCompile>
<ClCompile Include="CoreCtrl\QDetectorDesignerMgr.cpp">
<Filter>lpMain\CoreCtrl</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_QDetectorDesignerMgr.cpp">
<Filter>Generated Files\Debug</Filter>
</ClCompile>
@ -547,6 +544,15 @@
<ClCompile Include="QCamSettingDlg.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="CoreCtrl\CDllDesigner.cpp">
<Filter>lpMain\CoreCtrl</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Debug\moc_CDllDesigner.cpp">
<Filter>Generated Files\Debug</Filter>
</ClCompile>
<ClCompile Include="GeneratedFiles\Release\moc_CDllDesigner.cpp">
<Filter>Generated Files\Release</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\algorithm\ImageProcess.h">
@ -761,9 +767,6 @@
<CustomBuild Include="lpMainWin.h">
<Filter>lpMain</Filter>
</CustomBuild>
<CustomBuild Include="CoreCtrl\QDetectorDesignerMgr.h">
<Filter>lpMain\CoreCtrl</Filter>
</CustomBuild>
<CustomBuild Include="..\..\src\tpMain\qworkmgrui.ui">
<Filter>UIFile</Filter>
</CustomBuild>
@ -887,6 +890,9 @@
<CustomBuild Include="QCamSettingDlg.ui">
<Filter>Form Files</Filter>
</CustomBuild>
<CustomBuild Include="CoreCtrl\CDllDesigner.h">
<Filter>lpMain\CoreCtrl</Filter>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<Image Include="..\..\src\tpMain\none.jpg">

Loading…
Cancel
Save