草庐IT

DLL_EXPORT

全部标签

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

C++ 和 Windows - NtCreateThreadEx 函数的 DLL 注入(inject)不起作用

我已经编写了DLL注入(inject)器。我使用CreateRemoteThread注入(inject)我的DLL进行处理,一切都很好。现在我正在尝试注入(inject)DLL以通过未记录的函数-NtCreateThreadEx进行处理。我写了注入(inject)器,但他不工作。当我使用32位注入(inject)器将32位DLL注入(inject)到32位进程时一切正常。问题是当我使用64位注入(inject)器将64位DLL注入(inject)到64位进程时。我的DLL代码:#include///Compilationwithoption-m64extern"C"BOOL__stdc

c++ - WinAPI 在 dll 中创建窗口

我在游戏进程中注入(inject)了一个dll,然后dllcreatehook创建了一个新的线程来处理windows事件。线程函数:voidCFile::winThread(void*pData){CFile*pThis=reinterpret_cast(pData);//CommoncontrolsinitINITCOMMONCONTROLSEXiCC;iCC.dwSize=sizeof(INITCOMMONCONTROLSEX);iCC.dwICC=ICC_BAR_CLASSES;InitCommonControlsEx(&iCC);pThis->m_pConnect=newWin

windows - 使用 mklink 将一个文件夹中的 dll 文件符号链接(symbolic link)到另一个文件夹

如果我没有复制本地那些dll的选项,我如何将所有dll-s从另一个应用程序符号链接(symboliclink)到我的bin文件夹?类似于:mklink/h"C:\myApplication\bin\*.dll""C:\directoryWithTheDlls\bin\*.dll" 最佳答案 这是帮助中的loadlibrary搜索顺序。Thedirectoryfromwhichtheapplicationloaded.Thecurrentdirectory.WindowsXP:IfHKLM\System\CurrentControlS

windows - 将 MASM 程序与链接导致错误加载 mspdbcore.dll(错误代码 : 193)

LinkingMASM-programwithlinkresultsinerrortoloadmspdbcore.dll(errorcode:193)在VisualStudio2015中构建汇编程序时没有问题。但是,手动执行这些步骤会产生如下所示的链接器错误。我已经在系统的VC目录下找到了mspdbcore.dll,并将这个目录添加到Path中,但是并没有解决问题。我似乎找不到问题所在,我希望有人能够指导我朝着正确的方向前进。系统为Windows1064位版本。C:\Users\nlykkei\Desktop>ml/c/coffHello.asmMicrosoft(R)MacroAss

找不到 php dll 模块

我的php_stats.dll总是给出一个"Thespecifiedmodulecouldnotbefound.\r\ninUnknownonline0"在Apache错误日志中。我在Windows1064位机器上设置了XAMPP32位。带有XAMPP的PHP(也是32位,上周下载所以是最新的)。由于windows安全问题不得不安装到D盘PHP_stats.dll-从1.0.5到2.0.3的所有版本,所有32位,非线程安全和线程安全上周再次尝试下载(是的,我也尝试过64位版本)php_stats.dll位于D:/xampp/php/ext/和D:/xampp/apache/bin/(和

c# - 从 Powershell 调用的 DLL 使用相对于 Powershell 安装目录的路径。我怎样才能将它设置为其他东西?

我有一个带有静态方法的DLL,我从Powershell脚本调用它。此静态方法执行一些任务并记录结果,使用与网站共享的log4net配置-log4net配置基于web.config文件,Powershell脚本使用此web.config文件,如下所示:[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE",$webconfigpath)效果很好,log4net成功获取了配置,如下所示:[..]问题在于,当它尝试使用相对路径App_Data/log/process.log时,它使用的是C:\Windows\System32\W