草庐IT

c++ - 注入(inject) DLL 时,Explorer.exe 在启动时死锁

我使用注册表“运行”键在用户每次登录Windows时自动执行我的程序(使用HKCU\Software\Microsoft\Windows\CurrentVersion\Run注册表路径)。我的应用程序首先使用CommandLineDLL-Injector将DLL注入(inject)到explorer.exe进程中.效果应该是:每次用户登录后(重启Windows后)——我的应用程序被执行,我的DLL被注入(inject)到explorer.exe在某些情况下它可以工作,但在少数情况下(时间问题,很少重现),注入(inject)器和explorer.exe进程都死锁并且没有响应。我不确定,

c++ - Windows 在 WM_WINDOWPOSCHANGED 中挂起

我有一个DirectX9应用程序偶尔会在WM_WINDOWPOSCHANGED中挂起。当alt+tab键进入和退出全屏独占模式时,挂起很少发生。应用程序挂起是因为主窗口消息处理线程卡在DefWindowProc处理程序中的WaitForSingleObject()处。我们创建的其他线程运行正常。卡住的主线程上的调用堆栈:ntdll.dll!_NtWaitForSingleObject@12()+0x15bytesntdll.dll!_NtWaitForSingleObject@12()+0x15byteskernel32.dll!_WaitForSingleObjectExImplem

windows - 构建并覆盖一个简单的 Winelib DLL

我有一个加载库的Windows可执行文件,我想创建一个将覆盖WindowsDLL的WinelibDLL。我已经搜索并尝试了2天,但它不起作用!请帮助我!基本上,我创建mydll.c和mydll.spec以使用以下命令构建WinelibDLL:winegcc-m32-shared-omydll.dllmydll.cmydll.spec现在我有了mydll.dll.so并且我想覆盖mydll.dll(两者都在同一个地方)我应该怎么办?我尝试重命名mydll.dll但在调用该函数时出现页面错误!我还尝试使用winecfg配置覆盖或设置WINEDLLPATH等环境变量。我不明白如何继续。我如何

windows - WinDbg:尝试附加到进程时 dbghelp.dll 的版本不匹配

一年多以前,我已经使用WinDbg和DebugDiag来查找我们在Java中使用的JNInativeDLL中的内存泄漏。现在我正在寻找线程句柄泄漏。我使用ProcessExplorer创建了一个内存转储,并尝试在DebugDiag中对其进行分析,但我得到的只是脚本错误:我也尝试过WinDbg,但它无法再附加到进程。我总是收到错误消息“dbghelp.dll的版本与调试器不匹配”:(“UnbekannterFehler”的意思是“未知错误”)我卸载了DebugDiag和WindowsSDK,然后下载了最新版本并安装了WindowsSDK8和DebugDiag1.2(x86)。问题保持不变

windows - 关于将 dll 部分复制到内存

voidCopySections(constunsignedchar*data,PIMAGE_NT_HEADERSold_headers,PMEMORYMODULEmodule){inti,size;unsignedchar*codeBase=module->codeBase;unsignedchar*dest;PIMAGE_SECTION_HEADERsection=IMAGE_FIRST_SECTION(module->headers);for(i=0;iheaders->FileHeader.NumberOfSections;i++,section++){if(section->

windows - 为什么 64 位进程不能使用 32 位 dll?

在这篇文章中,我将讨论使用C++和Win32API创建的nativeWindows应用程序和DLL。来自帖子CanIloada32bitDLLintoa64bitprocessonWindows?我了解到64位进程不能直接使用32位DLL。解决此问题的一种方法是在32位进程中托管DLL并使用某种形式的IPC。既然如此,这背后的原因是什么?为什么64位进程不能使用32位DLL?难道是x86和x64指令集的区别? 最佳答案 如果传递给32位代码的地址有任何高于第32集的位,它将由于指针大小不匹配而丢失,并且很可能导致AV。

c++ - 哪个 DLL 有 PathCchAppend?

我正在尝试有条件地使用(如果可用)函数PathCchAppend.我从headerpathcch.h中获得了函数签名。但是,当我尝试从SHLWAPI.DLL获取函数地址时,它失败了:autopca=GetProcAddress(GetModuleHandle(L"shlwapi.dll"),"PathCchAppend");使用Depends,我看到这个函数在这个DLL中不存在(我在Windows10上)。不存在任何pathcch.dll,因此也无法加载它。这个函数放在哪个DLL中?编辑:感谢答案。在这里,我找到了以下答案中提到的DLL名称:https://learn.microsof

windows - MinGW - 加载 .dll 后,应用程序以异常方式终止(完成后)

在使用Cygwin的MinGW进行编译时,我在Windows上动态加载共享库时遇到问题。该应用程序由6个部分组成:2个静态库、3个共享库和1个使用静态库并在运行时加载共享库的可执行文件。我在Cygwin中使用i686-pc-mingw32-g++。所有源文件都使用-std=c++11标志进行编译,它们的链接如下:Staticlibraries:i686-pc-mingw32-arrcslibxxx.abin/*.oi686-pc-mingw32-arrcslibyyy.abin/*.oEachsharedlibrary:i686-pc-mingw32-g++-fPIC-shared-o

windows - Mingw FFTW3 找不到库/头文件

我在一台Windows机器上,我试图让Mingw(使用gcc/g++4.9.2)识别我安装了一个库。这里的库是fftw3(快速傅里叶变换)库:http://www.fftw.org/install/windows.html我下载了文件夹,里面有三个重要的dll和一些其他的头文件libfftw3-3.dlllibfftw3l-3.dlllibfftw3f-3.ll但我不知道如何处理它们。我有来自另一位作者的C++代码需要该库,当我运行时waf配置waf构建我收到“-libfftw3”未找到的错误。我已经将dll所在的目录放入我的Windows路径中,这似乎是一个如此简单的问题,但我无法弄

c++ - Qt - 无法找到或加载平台插件 "windows"- 但它就在那里! - 动态构建

错误信息:ThisapplicationfailedtostartbecauseitcouldnotfindorloadtheQtplatformplugin"windows".Reinstallingtheapplicationmayfixtheproblem.我进行了大量搜索,但没有找到有效的解决方案。我关注了这个"DeployanApponWindows-即使是快速而肮脏的方法也失败了。我有/platforms/qwindows.dllinmyapprootdirectory.我使用了我们都熟悉和喜爱的dependancywalker应用程序depend.exeError:Atl