草庐IT

dll修复

全部标签

windows - excel/fortran dll 连接中的文件位置问题

平台:WinXPSP2、IntelFortran11、Excel2007我在将dll文件与excel连接时遇到问题。dll文件比较简单:subroutineFortranCall(r1,num)!DEC$ATTRIBUTESDLLEXPORT,STDCALL,REFERENCE,ALIAS:"FortranCall"::FortranCallinteger,intent(in)::r1character(10),intent(out)::num!DEC$ATTRIBUTESREFERENCE::numnum=''write(num,'(i0)')r1*2returnendsubrout

windows - 加载依赖于其他 dll 的 dll ..?

当我在运行时加载一些dll(我们称之为Lib1.dll)但Lib1.dll也依赖于Lib2.dll但Lib2.dll不存在时会发生什么? 最佳答案 如果缺少依赖项,程序将不会运行:尝试访问DLL时将抛出异常/错误。 关于windows-加载依赖于其他dll的dll..?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2104260/

windows - 如何在不知道参数的情况下使用dll?

我有一个需要使用的dll。我还有一个程序可以调用这个dll来使用它。我需要能够在另一个程序中使用这个dll,但是以前的程序员没有留下任何文档或源代码。有什么方法可以监控对此dll进行了哪些调用以及传递了什么? 最佳答案 一般来说,你不能。这是来自DependencyWalker常见问题:Q:HowdoIviewtheparameterandreturntypesofafunction?A:Formostfunctions,thisinformationissimplynotpresentinthemodule.TheWindows'

c++ - Visual C++ 不会创建 dll 文件并在 *.lib 处停止

我继承了一个dll项目(VisualC++2002),我在编译它时遇到了很多麻烦。即使*.def文件在当前目录中,VC也只会创建一个lib文件,而不是dll。有人知道会发生什么吗? 最佳答案 实际上是指向网络驱动器的输出目录有问题。dll已创建,但放在一个奇怪的文件夹中。 关于c++-VisualC++不会创建dll文件并在*.lib处停止,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questi

windows - 如果它的导出没有改变,我是否需要针对 dll 进行重建?

这可能是一个非常愚蠢的问题。但是假设我有一个带有一些导出的DLL(test.dll),在构建时会生成一个导入库(test.lib)。我有一个使用此DLL的应用程序TestApp。现在,如果我想更改DLL中某些函数的实现,并且保持导出不变,我是否需要重建使用此DLL/导入库的应用程序?谢谢。 最佳答案 没有。您不需要针对dll进行重建。假设您的应用程序可以在WindowsXP上运行,而有一天Windows7出现了。即使user32.dll、kernel32.dll等系统dll已更新,相同的应用程序也无需重建即可继续工作!

windows - NT DLL Loader 是否按照可执行文件导入部分的顺序加载 DLL?

如果您在Windows上有一个可执行文件,您可以使用DUMPBIN实用程序(例如包含在VisualStudio中)查看其导入部分。要获取所有导入的DLL的列表,您可以运行如下命令(只是一个任意示例):C:\Programme\GIMP-2.0\bin>dumpbin/IMPORTSgimp-2.4.exe|grep-i\.dlllibgimpcolor-2.0-0.dlllibgimpmath-2.0-0.dlllibgimpmodule-2.0-0.dlllibgimpthumb-2.0-0.dlllibgimpwidgets-2.0-0.dlllibart_lgpl_2-2.dll

windows - 如何修复此 Azure 错误 : web role unable to start after disabling remote desktop connections?

在禁用远程桌面连接后,我遇到了一个奇怪的Azure问题。我开始从AzureSDK1.2升级到1.4,并启用了远程桌面以便于调试。但是,一旦我完成升级并且部署时一切正常,我就在禁用远程桌面连接的情况下进行了最后一次部署。令我惊讶的是,我的Web角色实例卡在了“等待角色开始”阶段。有趣的是,worker角色实例正常启动。大约20次部署后,问题100%可重现:启用远程桌面:一切正常远程桌面已禁用:Web角色实例无法启动启用Intellitrace似乎没有帮助,因为尝试获取日志会导致“没有可用的IntelliTrace日志”错误。正如预期的那样,我的源代码控制工具显示启用和禁用远程桌面之间的唯

windows - 什么可能会阻止从 system32 加载 dll?

我有一个应用程序,它从system32读取一些dll,这些dll在安装应用程序时就放在那里。在某些机器上,应用程序运行良好,但在其他机器上它永远不会启动(因为无法加载dll)。什么可能会阻止应用程序从system32读取dll(例如,弄乱PATH变量等)?可以通过将dll放在exe文件旁边来解决,但最好理解为什么某些机器(仅安装在Windows7机器上)可以启动应用程序而其他机器不能。 最佳答案 例如64位版本的Windows。32位DLL应该放在c:\windows\syswow64中。不建议将操作系统文件夹用于您自己的DLL。

c++ - Shell Extension DLL - 如果用户在文件夹空白区域内单击,如何捕获文件夹路径?

使用shell扩展dll,如果用户在文件夹空白区域内单击,如何捕获文件夹路径? 最佳答案 如果你正在实现一个shell扩展dll,那么你会在你的IShellExtInit::Initialize(中得到路径)方法作为pidlFolder参数。为确保您的扩展也注册了文件夹背景,您还必须在HKCR\Directory\Background\shellex\ContextMenuHandlers下创建适当的条目 关于c++-ShellExtensionDLL-如果用户在文件夹空白区域内单击,如

c - 反编译一个c dll以使用pinvoke

你能反编译一个cdll来使用pinvoke或者使用反射器吗?如何获取方法名称和签名? 最佳答案 简单地说,没有简单的方法可以做你想做的事。您可以使用反汇编程序库,例如distorm不过,要反汇编导出入口点周围的代码。有一些启发式方法可以使用,但其中许多仅适用于32位调用约定(__stdcall和__cdecl),尤其是。我个人觉得它的Python绑定(bind)很有用,但是libdasm可以做同样的事情。任何其他具有反汇编功能的工具都会有很大的值(value),例如OllyDbg或ImmunityDebugger。注意:如果您有一个