无法使用ctypes.open()加载dll

时间:2013-09-10 10:20:22

标签: c firefox dll firefox-addon jsctypes

我有一些dll我无法使用ctypes.open()方法加载。 我不知道为什么。它具有C extern函数,来自同一路径的所有其他dll都可以正确加载。

在FF 8中,dll加载没有问题,我正在尝试FF 22而没有任何成功。 感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

由于它之前有效,我的猜测是ASLR enforcement在Vista及更高版本上。 IIRC,整个LoadLibrary()函数被挂钩以防止在运行时加载非ASLR DLL。

尝试使用/DYNAMICBASE构建您的DLL。

如果不是这样,可能的原因是你的DLL无法找到。尝试使用绝对路径并确保路径实际上是正确的。

答案 1 :(得分:0)

因为我的PATH环境中有“C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin”。不知道为什么它是相关的。但我会进一步探索它。