如果Windows应用程序位于系统PATH变量中的两个不同路径中,那么Windows应用程序是否通常能够区分两个具有相同名称的DLL,一个是32位的,一个是64位的?特别是现在,我有FreeImage的32位和64位DLL,它们位于两个单独的文件夹中,free_image_path\dist32和free_image_path\dist64,它们都已添加到系统PATH中。但是,为使用它们而构建的应用程序也找不到,我想知道这是否是因为有两个同名的DLL,它们无法区分它们。我还尝试将32位和64位DLL分别放在windows\system和windows\SySWoW64文件夹中,这适用于
我在使用VisualStudio构建时遇到了一个问题,它说一个DLL『无法访问因为它当前被另一个进程使用,我的问题是如何确定“另一个进程”? 最佳答案 ProcessExplorer有一个工具允许您在当前运行的进程中搜索特定文件。要执行此搜索,请转到Find->FindHandleorDLL...,然后输入您感兴趣的文件的名称。 关于c++-如何判断当前使用特定DLL的进程,我们在StackOverflow上找到一个类似的问题: https://stackov
我目前正在研究来自MSWindowsSDK6.1的VSHADOW.EXE3.0。我制作了一个可以编译成DLL的版本,该DLL仅导出一个新编写的函数,该函数需要命令行作为字符串,将其标记化,然后调用旧的wmain。DLL不是COM服务器。它在编译为EXE时与旧版本完全一样,但在编译为DLL时却不能正常工作,因为此调用失败:CoInitializeSecurity(NULL,-1,NULL,NULL,RPC_C_AUTHN_LEVEL_PKT_PRIVACY,RPC_C_IMP_LEVEL_IDENTIFY,NULL,EOAC_NONE,NULL);因HRESULT错误0x80010119
当我使用“regsvr32foo.dll”时,我得到一个“指定的模块不能发现”错误。错误是因为regsvr32找不到文件,即使它是当前文件夹。我已经指定了完整路径,还是不行。有什么想法吗???? 最佳答案 如果foo.dll对bar.dll有依赖性并且实际上是bar.dll找不到.尝试使用MSVC中的depends.exe检查foo.dll的依赖项并查看是否缺少任何项。另一种选择是下载并运行FileMon.然后再次运行regsvr32并查看它找不到哪个文件/模块。这绝对应该追踪到它。 关
假设我有一个使用LARGEADDRESSAWARE链接器标志集构建的DLL。现在我有一个动态链接到这个DLL的应用程序。这会使我的应用程序变得LARGEADDRESSAWARE吗?如果不是,那么为任何DLL设置此标志是否有意义? 最佳答案 讨论here似乎表明/LARGEADDRESSAWARE对DLL没有影响,完全取决于托管可执行文件。 关于windows-链接到大地址感知DLL,我们在StackOverflow上找到一个类似的问题: https://sta
我想知道是否可以“编辑”已编译DLL中的代码。即假设Math.dll中有一个名为sum(a,b)的函数,它将两个数字a和b假设我丢失了DLL的源代码。所以我唯一拥有的是二进制DLL文件。有没有一种方法可以打开那个二进制文件,找到我的函数所在的位置,并将sum(a,b)例程替换为例如另一个返回a和b(而不是总和)?总而言之,是否可以编辑二进制代码文件?也许使用像ollydbg这样的逆向工程工具? 最佳答案 是的,这绝对是可能的(只要DLL未经过加密签名),但它具有挑战性。您可以使用简单的十六进制编辑器完成此操作,但根据DLL的大小,您
我下载了PHP5.5。适用于Windows并尝试安装Composer。后来发现Composer需要Zip扩展。但是我从php.net网站下载的PHP5.5zip中缺少php_zip.dll文件。我在哪里可以找到这个丢失的php_zip.dll?提前致谢。 最佳答案 找到答案。在php.ini中删除;extension=php_zip.dll行。重新启动ApacheHTTP服务器。以前版本的PHP在ext文件夹中带有单独的php_zip.dll文件。我们需要手动启用(注释掉php.ini中的;extension=php_zip.dll
我需要在Windows7上的Qt5项目中使用OpenGL版本2功能(Qt是使用桌面OpenGL而不是ANGLE构建的)。为了支持通过远程桌面运行应用程序,我想在必要时回退到通过Mesa进行软件渲染。我的计划是在启动时检查OpenGl版本。如果它太低,我会在应用程序设置中设置一个标志,打印一条消息并终止程序。当程序再次启动时,我可以读取标志并决定是否需要从Mesa加载opengl32.dll而不是Windows的内置版本。为了让它正常工作,我尝试通过设置/DELAYLOAD:opengl32.dll链接器标志然后使用SetDllDierectoryW([Mesa的opengl32.dll
我有两个需要在同一个可执行文件中访问的CDLL。我有两个库的头文件和.LIB文件。不幸的是,我需要访问的一部分函数具有完全相同的名称。到目前为止,我能想到的最佳解决方案是使用LoadLibrary加载其中一个DLL并使用GetProcAddress显式调用其方法。有没有办法让我隐式加载这两个库并以某种方式给编译器一个提示,在一种情况下我想在DLLA中调用OpenApi,在另一种情况下我想在DLLB中调用OpenApi?我正在使用VisualStudio2008和相应的C运行时库(msvcr90.dll)在C++中开发我的可执行文件。[编辑]评论者Ilya在下方询问我不喜欢GetProc
我在visualstudio2010中编写了一个包含大量函数和类的.dll库。当我查看文件的内容时:dumpbin.exe/EXPORTSmyDll.dll我得到带有某种函数位置指针的长函数名,它看起来像这样(.dll中的第二个条目):210001100A?Initialize@codec@codecX@@SANNN@Z=@ILT+5(?Initialize@codec@codecX@@SANNN@Z)这在某种程度上难以阅读,但我从其他.dll-s中看到了“更好”的过程/函数列表,如下所示:1418C00002A08PogoDbWriteValueProbeInfo我怎样才能使那个.d