代码之家  ›  专栏  ›  技术社区  ›  null

拒绝在Vista上加载带有ctypes的dll

  •  1
  • null  · 技术社区  · 16 年前

    我使用ctypes有问题。我正在试图让以下项目在Vista上运行。

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

    我以前在Vista上使用过这个项目,没有问题。我看不到SVN中有任何导致这种情况的思想改变,我认为这是这台机器的本地特性。事实上,我根本无法用ctypes加载dll。

    Bobby@Teresa-PC ~/fr0st-exe/fr0st/pyflam3/win32_dlls
    $ ls
    Flam4CUDA_LIB.dll cudart.dll glew32.dll libflam3.dll pthreadVC2.dll
    
    Bobby@Teresa-PC ~/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
    >>>
    

    有什么想法是什么导致了这一切,并且在某种程度上更好?

    1 回复  |  直到 16 年前
        1
  •  2
  •   Randolpho    16 年前

    我知道这听起来很愚蠢,但既然你没有明确地提到它:

    您是否检查了您试图访问的文件的权限?也许你,你知道,没有读取或执行文件的权限。

    推荐文章