2009-10-07 6 views
1

Je rencontre des problèmes avec l'utilisation de ctypes. J'essaye de faire fonctionner le projet suivant sur Vista.L'accès est refusé chargement d'une DLL avec ctypes sur Vista

http://sourceforge.net/projects/fractalfrost/

Je l'ai utilisé le projet avant sur Vista et n'a eu aucun problème. Je ne vois pas de changement dans svn qui cause cela, je pense que c'est quelque chose de local à cette machine. En fait, je ne suis pas capable de charger des DLL avec des ctypes du tout.

[email protected] ~/fr0st-exe/fr0st/pyflam3/win32_dlls 
$ ls 
Flam4CUDA_LIB.dll cudart.dll glew32.dll libflam3.dll pthreadVC2.dll 

[email protected] ~/fr0st-exe/fr0st/pyflam3/win32_dlls 
$ python 
Python 2.6.3 (r263rc1:75186, Oct 2 2009, 20:40:30) [MSC v.1500 32 bit (Intel)] 
on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from ctypes import * 
>>> flam3_dll = CDLL('libflam3.dll') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "c:\Python26\lib\ctypes\__init__.py", line 353, in __init__ 
    self._handle = _dlopen(self._name, mode) 
WindowsError: [Error 5] Access is denied 
>>> flam3_dll = CDLL('.\\libflam3.dll') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "c:\Python26\lib\ctypes\__init__.py", line 353, in __init__ 
    self._handle = _dlopen(self._name, mode) 
WindowsError: [Error 5] Access is denied 
>>> import os 
>>> flam3_dll = CDLL(os.path.abspath('libflam3.dll')) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "c:\Python26\lib\ctypes\__init__.py", line 353, in __init__ 
    self._handle = _dlopen(self._name, mode) 
WindowsError: [Error 5] Access is denied 
>>> 

Des idées sur ce qui serait à l'origine de cette situation et, mieux encore, dans les environs?

Répondre

2

Je sais que ça sonne comme une chose stupide, mais puisque vous n'avez pas mentionné explicitement:

Avez-vous vérifié les autorisations sur le fichier que vous tentez d'accéder? Peut-être que vous n'avez pas lu ou exécuté l'accès au fichier.

+0

Et c'était exactement ça. – null

Questions connexes