1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 <2023> 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 <2023> 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: areadetector on windows, xml2 done, now Lightfield |
From: | Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> |
To: | Freddie Akeroyd - STFC UKRI <freddie.akeroyd at stfc.ac.uk>, William Kirstaedter <kirstaedter at fhi-berlin.mpg.de>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Wed, 12 Apr 2023 22:29:59 +0000 |
Hi Freddie and William, I just ran “dumpbin /imports” on ARC_Instrument_x64.dll on our system. I have appended the output. It uses the following DLLs:
KERNEL32.dll USER32.dll ADVAPI32.dll SETUPAPI.dll FTD2XX.dll MSVCR100.dll MSVCP100.dll I think all of these are standard Windows DLLs except FTD2XX.dll. That comes with LightField, but it probably also comes with other packages, since it is a third party FTDI library. I suspect the problem is that it
is finding an incompatible version of that library. Mark W:\Program Files\Princeton Instruments\LightField>dumpbin /imports ARC_Instrument_x64.dll Microsoft (R) COFF/PE Dumper Version 14.00.24215.1 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file ARC_Instrument_x64.dll File Type: DLL Section contains the following imports: KERNEL32.dll 18009F060 Import Address Table 1800C0FC0 Import Name Table 0 time date stamp 0 Index of first forwarder reference 433 SetCommState 18B GetCommTimeouts 434 SetCommTimeouts 4C0 Sleep 534 WriteFile 42 CancelIo 29A GetTickCount F2 EnterCriticalSection 33B LeaveCriticalSection 2EA InitializeCriticalSection 9E CreateMutexW 3FD ReleaseMutex 27E GetSystemTime 346 LocalAlloc 34A LocalFree D2 DeleteCriticalSection B4 CreateThread 412 ResetEvent 168 FreeLibrary 18A GetCommState 24C GetProcAddress CB DecodePointer 4CE TerminateProcess EE EncodePointer 4BC SetupComm 85 CreateEventW 3C3 ReadFile 251 GetProcessHeap 2DC HeapSize 508 WaitForSingleObject 8F CreateFileW 52 CloseHandle 2DA HeapReAlloc 2D7 HeapFree 2D3 HeapAlloc 2D6 HeapDestroy 2EB InitializeCriticalSectionAndSpinCount 3B4 RaiseException 280 GetSystemTimeAsFileTime 1C7 GetCurrentProcessId 1CB GetCurrentThreadId 3A9 QueryPerformanceCounter 418 RtlCaptureContext 41F RtlLookupFunctionEntry 426 RtlVirtualUnwind 302 IsDebuggerPresent 4B3 SetUnhandledExceptionFilter 4E2 UnhandledExceptionFilter 1C6 GetCurrentProcess 208 GetLastError 153 FindResourceExW 154 FindResourceW 4BF SizeofResource 356 LockResource 343 LoadResource 33E LoadLibraryA 369 MultiByteToWideChar USER32.dll 18009F4D8 Import Address Table 1800C1438 Import Name Table 0 time date stamp 0 Index of first forwarder reference AF DispatchMessageW 220 MsgWaitForMultipleObjects 2E7 ShowWindow 6E CreateWindowExW 251 RegisterClassExW 9C DefWindowProcW 256 RegisterDeviceNotificationW 304 TranslateMessage 237 PeekMessageW ADVAPI32.dll 18009F000 Import Address Table 1800C0F60 Import Name Table 0 time date stamp 0 Index of first forwarder reference 230 RegCloseKey 26E RegQueryValueExW SETUPAPI.dll 18009F480 Import Address Table 1800C13E0 Import Name Table 0 time date stamp 0 Index of first forwarder reference 143 SetupDiEnumDeviceInterfaces 16B SetupDiGetDeviceInstanceIdW 142 SetupDiEnumDeviceInfo 193 SetupDiOpenDevRegKey 13F SetupDiDestroyDeviceInfoList 57 CM_Get_Device_IDW 62 CM_Get_Device_ID_Size 82 CM_Get_Parent 16E SetupDiGetDeviceInterfaceDetailW 156 SetupDiGetClassDevsW FTD2XX.dll 18009F018 Import Address Table 1800C0F78 Import Name Table 0 time date stamp 0 Index of first forwarder reference Ordinal 2 Ordinal 4 Ordinal 31 Ordinal 27 Ordinal 28 Ordinal 40 Ordinal 39 Ordinal 32 MSVCR100.dll 18009F2B0 Import Address Table 1800C1210 Import Name Table 0 time date stamp 0 Index of first forwarder reference EE ?_type_info_dtor_internal_method@type_info@@QEAAXXZ 146 __crt_debugger_hook 5A8 memcmp 10E _CxxThrowException 11F __CppXcptFilter 19E _amsg_exit 1F2 _encoded_null 287 _initterm_e 286 _initterm 307 _malloc_crt 39D _onexit 2F6 _lock 148 __dllonexit 45B _unlock 11E __C_specific_handler 100 ?terminate@@YAXXZ 5B3 printf 548 exit 600 towupper 621 wcsrchr 5A9 memcpy 62C wcstoul 539 atol 302 _ltoa_s 59E malloc 563 free 57D isdigit 5EB strtod 612 wcschr 10A ?what@exception@std@@UEBAPEBDXZ 538 atoi 5EA strstr 5DB strcpy_s 78 ??_U@YAPEAX_K@Z 63 ??2@YAPEAX_K@Z 24 ??0exception@std@@QEAA@AEBV01@@Z 5AB memmove 5D ??1exception@std@@UEAA@XZ 22 ??0exception@std@@QEAA@AEBQEBD@Z 60B vswprintf_s 47B _vscwprintf 58F iswspace 625 wcsstr 61F wcsnlen 4AC _wcslwr_s 5AC memmove_s 631 wmemcpy_s 5AA memcpy_s 65 ??3@YAXPEAX@Z 128 __CxxFrameHandler3 140 __clean_type_info_names_internal 5AD memset 530 asin 5CA sin 543 cos 4A6 _wcsicmp 53E ceil MSVCP100.dll 18009F230 Import Address Table 1800C1190 Import Name Table 0 time date stamp 0 Index of first forwarder reference 19E ?_Decref@facet@locale@std@@QEAAPEAV123@XZ 9E ??1_Lockit@std@@QEAA@XZ 60 ??0_Lockit@std@@QEAA@H@Z 251 ?_Orphan_all@_Container_base0@std@@QEAAXXZ 36B ?endl@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@AEAV21@@Z 59C ?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z 10F ??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@P6AAEAV01@AEAV01@@Z@Z 391 ?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ 5C5 ?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z 253 ?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ 5C8 ?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA_JPEBD_J@Z 28C ?_Xlength_error@std@@YAXPEBD@Z 60D ?uncaught_exception@std@@YA_NXZ 2A7 ?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A 28E ?_Xout_of_range@std@@YAXPEBD@Z Summary 24000 .data 3000 .pdata 27000 .rdata 1000 .reloc 1000 .rsrc 9E000 .text From: Freddie Akeroyd - STFC UKRI <freddie.akeroyd at stfc.ac.uk>
Hi William, lightfield may load it dynamically at runtime then (like areadetector) and so it will not show up in dependencywalker. Loading ARC_Instrument_x64.dll itself into dependencywalker may be most useful then, one possible
cause of the problem you are seeing is that ARC_Instrument_x64.dll is loading an incompatible dependent library when activated by EPICS and dependencywalker will show the dependent libraries it uses and may give some clues to this.
One difference between running LightfieldApp.exe directly and loading the library via areadetector is that the directory containing the LightfieldApp.exe program will automatically get added as the first place to look
for any DLL dependencies of ARC_Instrument_x64.dll. Is the lightfield directory already in PATH? If not, one thing to try first is to edit your start_epics.bat so after running dllPath.bat it then does set “PATH=%LIGHTFIELD_ROOT%;%PATH%” so the directory that contains lightfield.exe is searched first for any DLL dependencies Regards, Freddie From: William Kirstaedter <kirstaedter at fhi-berlin.mpg.de>
Hey Freddie, I think I might need some guidance on this. I loaded my IOCs LightfieldApp.exe and also the Princeton.Lightfield.exe (this does not load anything ?!) in dependencywalker, but none of them seems to load the ARC_...dll. is there a better way than loading and scrolling through the list to search for my ARC.dll? thanks,
Am 28.03.2023 um 01:02 schrieb Freddie Akeroyd - STFC UKRI:
|