我为windows创建了一个lua模块,一个DLL,它有很多依赖项。这些依赖关系是模块DLL正常运行所必需的,其中大部分依赖关系是C++运行时库(libstdc+-6.dll和libgcc_s_seh-1.dll等)。我正在尝试使用package.loadlib调用加载模块:init=assert(package.loadlib("C:\\Path\\To\\My\\Module.DLL","luaopen_MyModule"))init()依赖项和模块DLL位于与主要可执行文件的DLL不同的文件夹中。因此,似乎package.loadlib找不到模块的依赖项。当这些依赖项的路径被添加
我从一个目录执行一个exe,比如“C:/test”DLL位于目录“C:/test/dlls”中,因此,在此exe中,我调用:SetDllDirectory("C:/test/dlls");然后我打电话lib1=LoadLibrary("lib1.dll)和ptrTypepr=(ptrType)::GetProcAddress(lib1,"test")lib1.dll需要目录“C:/test/dlls”中的其他DLL,但是当我执行pr(...)时从GetProcAddress,我得到一个错误:"Theprogramcan'tstartbecauselib2.dllismissingfro
当我在运行时加载一些dll(我们称之为Lib1.dll)但Lib1.dll也依赖于Lib2.dll但Lib2.dll不存在时会发生什么? 最佳答案 如果缺少依赖项,程序将不会运行:尝试访问DLL时将抛出异常/错误。 关于windows-加载依赖于其他dll的dll..?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2104260/
我对这个主题一无所知,但我需要有关创建安装程序的最佳工具或方法的建议,该安装程序安装python、一些自定义python模块、一些其他python模块(如PIL)和一些EXE依赖项,所有这些都依赖于网络存储库,在Windows机器上。存储库中有python(msi文件)、PIL(exe文件)、自定义python模块(pyc文件)和两个Windows可执行文件(以及exe文件和一个zip文件)的安装程序。欢迎任何建议。 最佳答案 您可以使用任何安装程序执行此操作。每个依赖安装程序都有一个静默安装选项,因此您的安装程序只需要以正确的顺序
我有一个在VisualStudio2012中构建的应用程序,其中一部分使用C#,一部分使用C++。应用程序的GUI使用第三方GUI控件。因此,我需要检查三个依赖项并将其安装在我的项目中:MicrosoftVisualC++可再发行组件.NET框架4.5GUI控件我的项目安装程序目前是使用WiX构建的。有没有办法让WiX执行以下操作?:在安装时检查是否存在(例如)C++可再发行组件,如果不存在则安装在卸载时删除这些组件(显然,当且仅当它们在安装时安装时)如果不是,我猜答案是创建另一个C#项目,它可以依次运行每个msi,但我希望能够通过WiX完成所有事情-这可能吗?如果是,怎么办?
如果需要编译某些依赖项,将Python包部署到WindowsServer的最佳方法是什么?安装VisualStudio是不可能的,每次需要更新时我都不愿意传递一个250MB的文件。pipinstall-rrequirements.txt是目标。有什么建议吗? 最佳答案 easy_install-允许从exe安装easy_install确实从exe安装程序安装,如果它们可用的话。pip不从exe安装,因此对于C/C++包,easy_install通常是安装方式。制作pip来安装二进制文件pip支持从wheel格式安装。如果您在pypi
我有一个我分发的dll,它不能在某些Windows操作系统上运行。使用dependancywalker我发现这些系统上缺少msvcp90d.dll。我不想要任何需要C++可再发行组件的运行时依赖项,并且由于调用DLL的应用程序不是用C++编写的,因此它对C++可再发行组件没有任何依赖性。我猜我在编译dll时在链接器首选项中留下了DEBUG选项,这就是它需要msvcp90d.dll的原因?添加:抱歉,我在原来的问题中粘贴了错误的dll名称……在显示器前的时间太长了……这个dll是我在VS2008编译的第三方dll,不是我写的。 最佳答案
加载DLL时(使用LoadLibrary/Ex动态加载或静态加载)是否有可能阻止Windows使用PATH环境变量查找DLL/要加载的DLL依赖于其他DLL?我可以找到关于Dynamic-LinkLibrarySearchOrder的文档似乎暗示没有办法阻止搜索PATH,但也许我遗漏了什么?我问这个问题的原因是,当应用程序文件夹中缺少(静态)链接的DLL但可能存在于PATH中(不同版本)时,我们希望有一个快速失败的场景。 最佳答案 对于动态加载的dll:控制加载哪一个的最简单方法是不调用搜索逻辑。只有在提供部分路径时才会调用搜索逻辑
我写了一些C++代码。我把它发给了我的friend,他不是开发人员。在Windows7上,他收到错误消息“程序无法启动,因为缺少msvcr120.dll”如何构建它才能运行?我是否需要使用MSVC2008进行编译?2005?我希望它能在vista+上运行 最佳答案 我认为您可以使用/MT代替/MD静态链接运行时库参见http://msdn.microsoft.com/en-us/library/2kzt1wy3.aspx右键单击您的项目->属性->C/C++->代码生成->将“运行时库”设置为“/MTd”用于调试,“/MT”用于发布
我在windows和mac上构建了相同的库(下面的例子来自rfoo),而mac版本只有系统依赖$otool-Lmarsh.somarsh.so:/usr/lib/libSystem.B.dylib(compatibilityversion1.0.0,currentversion1213.0.0)在windows上它依赖于python的dll>dumpbin/dependentsmarsh.pydMicrosoft(R)COFF/PEDumperVersion12.00.31101.0Copyright(C)MicrosoftCorporation.Allrightsreserved.D