diff options
| -rw-r--r-- | pymba/vimbadll.py | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/pymba/vimbadll.py b/pymba/vimbadll.py index 09984f0..c1d9430 100644 --- a/pymba/vimbadll.py +++ b/pymba/vimbadll.py @@ -7,12 +7,21 @@ import os from ctypes import * if sys_plat == "win32": + + def find_win_dll(arch): + """ Finds the highest versioned windows dll for the specified architecture. """ + base = r'C:\Program Files\Allied Vision Technologies\AVTVimba_1.%i\VimbaC\Bin\Win%i\VimbaC.dll' + dlls = [base % (i, arch) for i in range(10) if os.path.isfile(base % (i, arch)) ] + if not dlls: + raise IOError("VimbaC.dll not found.") + return dlls[-1] + from ctypes.util import find_msvcrt _cruntime = cdll.LoadLibrary(find_msvcrt()) if '64' in platform.architecture()[0]: - vimbaC_path = r'C:\Program Files\Allied Vision Technologies\AVTVimba_1.3\VimbaC\Bin\Win64\VimbaC.dll' + vimbaC_path = find_win_dll(64) else: - vimbaC_path = r'C:\Program Files\Allied Vision Technologies\AVTVimba_1.3\VimbaC\Bin\Win32\VimbaC.dll' + vimbaC_path = find_win_dll(32) dll_loader = windll else: _cruntime = CDLL("libc.so.6") |
