aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pymba/vimbadll.py13
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")