Page 1 of 2

[RESOLVED] Plugin exportation

Posted: Thu Apr 07, 2022 5:56 pm
by polienn
Hello,

I have developed a plugin that works well with both the source-generated version of Cloud Compare and the standalone version installed from the site. (Windows 11, VS 2019)

However, as soon as I want to test this plugin on another computer or on a virtual machine, CC does not load it and displays an error message like:
MyPlugin.dll does not seem to be a valid plugin (Cannot load library MyPlugin.dll : la procédure spécifiée est introuvable )
Plugin's makefile :

Code: Select all

project(MyPlugin )
 
AddPlugin( NAME ${PROJECT_NAME} )

set(CloudCompare_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../qCC)
include_directories( ${CloudCompare_SOURCE_DIR} )

add_subdirectory( include )
add_subdirectory( src )
I use qCC and CCoreLib methods, so have try adding

Code: Select all

target_link_libraries( ${PROJECT_NAME} CCCoreLib::CCCoreLib )
and

Code: Select all

target_link_libraries( ${PROJECT_NAME} QCC_DB_LIB )
without results...

According to Depency Walker, "QCC_DB_LIB is not found", but adding QCC_DB_LIB.dll in the same folder of the plugin doesn't work either...

Any ideas ?
Thanks

Re: Plugin exportation

Posted: Sat Apr 09, 2022 10:55 am
by daniel
Normally, qCC_db.dll should already be present (next to CloudCompare.exe). So it should not be due to this indeed.

Do you have any other dependency?

And which version of Qt are you using by the way? (the official release uses 5.15.2).

Re: Plugin exportation

Posted: Sat Apr 09, 2022 3:22 pm
by polienn
daniel wrote: Sat Apr 09, 2022 10:55 am Normally, qCC_db.dll should already be present (next to CloudCompare.exe). So it should not be due to this indeed.

Do you have any other dependency?

And which version of Qt are you using by the way? (the official release uses 5.15.2).
It seems to me that there is no external dependency apart from Qt or CCCoreLib or qCC (but maybe these functions have their own dependency ? ) :

Code: Select all

// SYS
#include <sstream>
#include <string>

// QT
#include <QInputDialog>


// Cloud compare
#include "CCCoreLib.h"
#include "CCMath.h"
#include "ccMainAppInterface.h"
#include "ccPointCloud.h"
#include "ccMesh.h"
#include "ccOctree.h"
#include <ccRegistrationTools.h>

#include <CloudSamplingTools.h>
#include <DgmOctreeReferenceCloud.h>
#include <DistanceComputationTools.h>
#include <GenericProgressCallback.h>
#include <ReferenceCloud.h>
#include <ScalarField.h>
#include <ScalarFieldTools.h>
#include "ReferenceCloud.h"
#include <ccRegistrationTools.cpp>
#include <mainwindow.h>
#include <GeometricalAnalysisTools.h>
#include <ManualSegmentationTools.h>
I also use Qt 5.15.2

Re: Plugin exportation

Posted: Wed Apr 13, 2022 7:56 pm
by daniel
As long as it's Qt or CloudCompare's own libraries, I would say that you should be good...

But maybe it's the compiler then? We are using Visual 2017 (v141).

Re: Plugin exportation

Posted: Thu Apr 14, 2022 10:39 pm
by polienn
thank you for your availability

i've tried with VS 2017 (v.141 also) and VS 2019 but no more results...

Re: Plugin exportation

Posted: Mon Apr 18, 2022 6:43 pm
by daniel
Maybe I could try to compile it on my side if you want to test if that works better?

Re: Plugin exportation

Posted: Tue Apr 19, 2022 2:00 pm
by polienn
I would like to, thanks !
myPlugin.rar
plugin sources
(23.24 KiB) Downloaded 1041 times

Re: Plugin exportation

Posted: Sun May 01, 2022 8:10 am
by daniel
Mind that the code was outdated (not compiling with the 2.12 version), so I had to update it here and there. Hopefully it works the same as intended.

Here is the binary:
VirtualReassociationPlugin.7z
(48.15 KiB) Downloaded 1378 times
And it will probably only work with the latest 2.12 version.

Re: Plugin exportation

Posted: Sun May 01, 2022 5:49 pm
by polienn
I'm quite surprised that it doesn't compile with 1.12 when I debugged it on 1.12 alpha...

But I just tested, the plugin loads well and the operation with the dataset is as expected

Thank you very much for getting this version to work !
Could I have the code with the modifications please?

Re: Plugin exportation

Posted: Tue May 03, 2022 6:48 pm
by daniel
Ah sorry I didn't keep it!

The modifications were quite easy (a missing 'nullptr' parameter twice, and the code to determine the best radius for the normals computation which has moved from the NormalVectors class to the octree - and with slightly more complex parameters, but you can copy paste what's done in the command line version of the normals computation).