aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJuerg Rast <juergr@gmail.com>2016-05-02 17:49:36 +0200
committerJuerg Rast <juergr@gmail.com>2016-05-02 17:49:36 +0200
commitb9fb36b14fd495741d332480b430fa3bd6c16748 (patch)
tree35c6e341205604d37fff3a396a278f17e22c933c
parent26f9717276b1c924a00ddf7e6b905699c7f60429 (diff)
downloadpymba-b9fb36b14fd495741d332480b430fa3bd6c16748.tar.gz
pymba-b9fb36b14fd495741d332480b430fa3bd6c16748.zip
Better DLL search, including support for Vimba 2.0
-rw-r--r--pymba/vimbadll.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/pymba/vimbadll.py b/pymba/vimbadll.py
index c1d9430..68c8bfd 100644
--- a/pymba/vimbadll.py
+++ b/pymba/vimbadll.py
@@ -10,8 +10,17 @@ 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)) ]
+ bases = [
+ r'C:\Program Files\Allied Vision Technologies\AVTVimba_%i.%i\VimbaC\Bin\Win%i\VimbaC.dll',
+ r'C:\Program Files\Allied Vision\Vimba_%i.%i\VimbaC\Bin\Win%i\VimbaC.dll'
+ ]
+ dlls = []
+ for base in bases:
+ for major in range(3):
+ for minor in range(10):
+ candidate = base % (major, minor, arch)
+ if os.path.isfile(candidate):
+ dlls.append(candidate)
if not dlls:
raise IOError("VimbaC.dll not found.")
return dlls[-1]