diff options
| author | morefigs <morefigs@gmail.com> | 2015-12-03 09:04:55 +1100 |
|---|---|---|
| committer | morefigs <morefigs@gmail.com> | 2015-12-03 09:04:55 +1100 |
| commit | beace2339e35d8bf4f96a989367cdc9bb43b807b (patch) | |
| tree | 7f98e2ebba04cdc597866bc98ea29dc3b913a948 | |
| parent | 5a60633e29f2b0571b9f1b4e971672e85ef41b9c (diff) | |
| parent | 9b29a773a4358ef03d15ebc8a1681747cae97138 (diff) | |
| download | pymba-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.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") |
