06-12-2018 04:07 AM
Does FeatureServiceInput.dll reference some supporting .dlls? Are those .dlls in the PATH? If not, their location may not be able to be resolved (even if they are sitting next to FeatureServiceInput.dll). Also, the EventViewer may have more information.
06-12-2018 04:21 AM
If this is an SM extension, check section 6 of the reference guide:
Another way to define the location of a plugin DLL is through an XML file located in Spatial Modeler’s path. This is useful when you don’t want Spatial Modeler to load every DLL in a directory while searching for a plugin DLL. Using the XML file lets you directly define the path of the DLL to use, and any additional search paths to find support DLLs. An example of the contents of the XML file is shown below.
<?xml version="1.0" encoding="utf-8"?>
06-12-2018 04:26 AM
My linker statement is:
C:\USERS\HAAYMAN\DROPBOX (IMAGEM)\ARJEN\VISUALSTUDIOPROJECTS\FEATURECONVERTER\FEATURECONVERTER\DEBUG\FEATURESERVICEINPUT.OBJ|C:\USERS\HAAYMAN\DROPBOX (IMAGEM)\ARJEN\VISUALSTUDIOPROJECTS\FEATURECONVERTER\FEATURECONVERTER\DEBUG\PLUGINS.OBJ
/OUT:"C:\USERS\HAAYMAN\DROPBOX (IMAGEM)\ARJEN\VISUALSTUDIOPROJECTS\FEATURECONVERTER\FEATURECONVERTER\DEBUG\FEATURESERVICEINPUT.DLL" /INCREMENTAL /NOLOGO /LIBPATH:"C:\libcurl\builds\libcurl-vc-x86-debug-dll-ipv6-sspi-winssl\lib" /LIBPATH:"C:\Program Files\Hexagon\Spatial Modeler SDK 2018\usr\lib\Win32Debug" libcurl_debug.lib ws2_32.lib winmm.lib sblib.lib eCommonU.lib pluginManager.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"C:\USERS\HAAYMAN\DROPBOX (IMAGEM)\ARJEN\VISUALSTUDIOPROJECTS\FEATURECONVERTER\FEATURECONVERTER\DEBUG\FEATURESERVICEINPUT.PDB" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:\USERS\HAAYMAN\DROPBOX (IMAGEM)\ARJEN\VISUALSTUDIOPROJECTS\FEATURECONVERTER\FEATURECONVERTER\DEBUG\FEATURESERVICEINPUT.LIB" /MACHINE:X86 /DLL DEBUG\FEATURESERVICEINPUT.OBJDEBUG\PLUGINS.OBJ
All LIBPATHs exist and the requested library is present
06-12-2018 04:32 AM
You are having a runtime issue, not a link issue. You would need to use dependency walker or similar to diagnose the problem, but judging from your link line I'd guess that it's the reference to libcurl that can't be resolved at runtime.
06-12-2018 05:40 AM
yes, I've added the libcurl library path to an xml in \Program Files\Hexagon\Spatial Modeler SDK 2018\usr\lib\Win32Debug\operators
Still get the same message. Should I also add a path to the Spatial SDK?
How can I find out what is searched and what isn't found?
Another question: is there someone willing to help me setup my environment using Teamviewer? I've been trying to get it all working for so long now
06-12-2018 07:14 AM
Check the path in smeditor (session log) after the failed load. That will show you how SM modified the environment upon the direction in the loaded XML files in order to try to ensure that dependency references could be resolved.
06-13-2018 01:57 AM
Maybe something's wrong with my install. I've had to reinstall Windows and the SDK and now I even get the same error message even though I don't include any curl calls anymore. So it appears it cannot find its own DLLs.
Do you know any way to determine what it is that's not found?
Just built all the examples and they don't appear in the plugins either. Is there some clear documentation how to set it all up? All documentation is gruesomely fragmented
06-13-2018 09:20 AM
As mentioned previously, "You would need to use dependency walker or similar to diagnose the problem". i belive you can obtain dependency walker from here.
You can use the command line operator from within smeditor:
and configure it something similar to the following:
This configuration illustrates outputting the full path dependencies of sb_raster.dll to a .csv file. If you do something similar with your .dll after the failed load, you can then look through the .csv file for support .dlls that could not be found. This article explains what errors can be safely ignored.