草庐IT

DLL_EXPORTS

全部标签

windows - 如何使用 Win32::API 调用 Win32 DLL void** 参数?

我有一个要从Perl调用的WindowsDLL。导出函数的原型(prototype)是:int__stdcallfunc(constchar*,int,int,int,double,double,void**);最后一个参数返回指向函数中分配的对象的指针。perl代码–my$dll_path="../stage/test_dll.dll";my$dll_func=newWin32::API($dll_path,'func','PIIIDDP','I');my$data="testsomethinghere";my$pResult=0;my$rc=$dll_func->Call($dat

windows - 从操作系统的角度来看,C++ 中动态加载 DLL 的内部机制?

我无法获得有关从C++动态加载DLL文件的很多信息。我知道它确实使用了一些函数,例如LoadLibrary和FreeLibrary与GetProcAddress。但是从操作系统的角度来看,它实际上是如何在内部工作的,比如它实际在哪里寻找DLL文件,以及它在哪里加载,比如内存?有人可以用一些图表帮助我吗? 最佳答案 DLL搜索顺序在MSDN中描述。,还有一个articleonDLLloading,和两部分articledescribingPEformat(parttwohere)(它们有点旧,但我不认为它们已经过时)。浏览MSDN杂志

c++ - 并排 : 3rd Party Dll refers to two versions of MSVCR80. DLL

我们包含一个3rdPartylib+DLL,它最近在安装上造成了很多麻烦。使用dependencywalker,我们发现dll本身引用了两个不同的VersionsMSVCR80.DLL:Version8.0.50727.4053andVersion8.0.50727.42alttexthttp://img101.imageshack.us/img101/1734/dependencywalk2.jpg在大多数情况下,即使我们不分发这两个版本,安装也不会出现问题。但在许多情况下,我们的安装并没有启动。然后我们在SideBySide管理器的Windows系统事件日志中找到消息:“DLL版本

windows - DLL 从其父级(加载程序)获取符号

我正在将程序移植到MSWindows。该程序使用动态加载的插件。插件在主程序中引用符号。如果不解析所有符号,我什至无法让DLL通过链接器。有办法解决吗? 最佳答案 (抱歉,我想在评论中要求澄清,但我是新手,不允许。)当您说插件“在主程序中引用符号”时,是指引用函数还是数据?另外,您使用的是什么语言/编译器?假设它只是关于函数,并且在C/C++中:可以从.EXE中导出一个函数,就像它是一个DLL一样。只需在.EXE中的函数定义前指定__declspec(dllexport)即可。编译.EXE时,应生成一个.LIB文件,然后您可以在链接

为 32 位系统编译的 C# 程序和 C++ DLL 在 64 位系统上崩溃

我有一个使用DLL的C#应用程序,因为我需要C++来访问user32API的一些非托管功能(我不能为此使用PInvoke)。我为x86架构编译应用程序和DLL,并且在Windows732位上一切正常。现在的问题是,在Windows764位上,当我尝试使用依赖于DLL的功能时应用程序崩溃(但其余所有工作正常)。我怀疑这是一个32/64位问题,所以我尝试为x64架构重新编译DLL,现在我可以在运行时选择在x86和x64之间加载哪个DLL。但是当我尝试使用依赖于DLL的功能时它仍然崩溃(这在我尝试将64位DLL加载到32位程序中时很有意义)。我还没有尝试为x64编译应用程序和DLL。我怀疑它

windows - winhttp.dll 一个标准的windows文件?

WinHttp.dll是标准的Windows文件吗?我的应用程序依赖于它,但我宁愿不在我的应用程序设置中部署它,除非它是必要的。 最佳答案 根据:http://msdn.microsoft.com/en-us/library/aa384273(v=vs.85).aspxWinHTTP5.1对5.0版进行了改进。它包含在操作系统中 关于windows-winhttp.dll一个标准的windows文件?,我们在StackOverflow上找到一个类似的问题: h

windows - 了解对 dll 文件的注册表数据引用的负偏移量

我几乎有了mylastquestion的答案,但我需要帮助。Windows防火墙规则(Vista及更高版本)存储在注册表HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules示例规则:v2.0|Action=Allow|Active=TRUE|Dir=Out|Protocol=6|Profile=Domain|RPort=5722|App=%SystemRoot%\system32\dfsr.exe|Svc=Dfsr|Name=@FirewallAPI.dll

windows - 各种 Windows 版本附带的 Kernel32.dll 版本列表?

我正在尝试找出真正的Windows版本。出于某种原因,我的Wise安装程序有时会在Windows7上报告XP版本号。一种解决方案是查看此处提到的kernel32.dll版本:HowtodetecttrueWindowsversion?我正在尝试找出各种Kernel32.dll版本对应的Windows版本。 最佳答案 我找不到每个Windows版本的Kernel32.dll版本列表,但从测试(XPSP3、Vista、Windows7)来看,Kernel32.dll版本#(Major.Minor)与Windows版本相同.我具体找到了什

python - 避免将 DLL 放入 CWD

是否可以避免将DLL与使用它们的脚本放在同一目录中?我希望能够将一个DLL放在一个地方,并让任何脚本都可以访问它。ctypes.CDLL()似乎只能找到CWD中的DLL。将它们放在sys.path或System32中的某处是行不通的。具体来说,我试图让UniCurses找到pdcurses.dll,但它不在CWD中。 最佳答案 尝试:pdcurses_path=ctypes.util.find_library('pdcurses.dll')ifpdcurses_path:pdcurses=ctypes.CDLL(pdcurses_p

windows - Windows 的哪一部分加载 mscoree.dll?

我知道.NetFramework运行时包含在mscoree.dll中。任何人都可以帮助我知道Windows操作系统的哪个部分或Windows的哪个进程将此dll加载到内存中。提前致谢。 最佳答案 如果您使用的是windows7,则可以使用ResourceMonitor。在您的任务管理器中的性能标签中。在底部有ResourceMonitor按钮。在CPU选项卡中,您可以选择要监视的进程。全选并根据名称对Handles进行排序。现在您应该看到哪些正在运行的进程正在使用您的dll。 关于win