Win10下64位Python3.x加载32位VBridge.dll的等效实现与依赖查找问题
Win10下64位Python3.x加载32位VBridge.dll的等效实现与依赖查找问题
之前在Win7 32位Python2.7环境里加载这个32位的VBridge.dll特别简单,就两行代码搞定:
driver = ctypes.cdll.LoadLibrary("VBridge.dll") driver.Connect()

现在我要找Python3.10环境下的功能等效代码,还和msl-loadlib模块的开发者开了讨论线程,一起在排查解决这个问题。
所有需要加载的附加DLL都和主DLL在同一个目录里,厂商提供的测试程序放在这个目录里运行完全正常,用的也是同一套库。现在还有个额外的麻烦:我当前用的Python3.10是64位的,不过就算是用msl-loadlib提供的32位Py3.13交互式服务器控制台——运行以下命令启动的那种:
python -c "from msl.loadlib import Server32; Server32.interactive_console()"
也会找不到依赖项,抛出的错误是:
FileNotFoundError: Could not find module
VBridge.dll(or one of its dependencies). Try using the full path with constructor syntax.

我还查阅了Python3.8及以上版本关于路径搜索机制变化的相关讨论,感觉VLC的DLL绑定问题和我这个驱动的情况非常相似。我也尝试了几种解决方案,比如调用os.add_dll_directory(os.getcwd())、ctypes.windll.AddDllDirectory(dll_directory),还有使用LOAD_WITH_ALTERED_SEARCH_PATH参数,但都没能解决问题。
备注:内容来源于stack exchange,提问作者Ray Schumacher
相关产品推荐
相关产品推荐

