aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormorefigs <morefigs@gmail.com>2015-12-03 09:04:55 +1100
committermorefigs <morefigs@gmail.com>2015-12-03 09:04:55 +1100
commitbeace2339e35d8bf4f96a989367cdc9bb43b807b (patch)
tree7f98e2ebba04cdc597866bc98ea29dc3b913a948
parent5a60633e29f2b0571b9f1b4e971672e85ef41b9c (diff)
parent9b29a773a4358ef03d15ebc8a1681747cae97138 (diff)
downloadpymba-beace2339e35d8bf4f96a989367cdc9bb43b807b.tar.gz
pymba-beace2339e35d8bf4f96a989367cdc9bb43b807b.zip
Merge pull request #20 from derricw/master
Search for Windows DLL instead of hard-coding.
-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")