Articles of DLL

在.NET中占用固定的地址

FIPS能力OpenSSL有一个限制 – 它必须加载libeay32.dll在固定的地址,如果加载在任何其他地址,它没有初始化检查,所以它不能用于FIPS模式。 所以我们根据微软的build议select地址,并且在一些不时被其他地址库占用的机器上 – 比如MSVCR120_CLR0400.dll或者mscorlib.ni.dll或者clr.dll ,你就明白了。 有没有什么办法来检查是否采取了一些固定的地址+长度,并要求操作系统释放我的这部分内存,如重新启动这些DLL到其他内存部分或类似的东西? 更新: 我从ListDLLs的20个设备收集信息,有什么样的模式加载在哪里,但它远远没有明确的定义。 所以我跑了一些math,find了最大的差距,在那20个日志中没有加载任何东西,把libeay32的基地址改成那个差距的某个地方(差距比dll大6倍,所以我select了〜它的中间),仍然在几次尝试应用程序之前设法加载一些东西在libeay32之前的空白(具体 – clrjit.dll,它有0x10000000,我认为是默认的基地址),虽然在应用程序中,我尝试加载libeay32尽快地。

在Windows 7上安装curl后缺lesslibcurl-4.dll

按照这个家伙的指示安装curl之后: 除了步骤2:安装了Win64 OpenSSL v1.0.1u Light,因为从下载页面缺less版本k: http : //slproweb.com/products/Win32OpenSSL.html 在cmd提示符我只是input: C:\Windows\system32>curl 并得到这个错误: 如何在我的电脑上curl?

Opencv应用程序在运行时崩溃,错误代码为0x0000142

我有openCV和minGW安装codeblock IDE按照这里find的说明http://kevinhughes.ca/tutorials/opencv-install-on-windows-with-codeblocks-and-mingw/我试图在文章中的简单图像加载程序构build过程进展顺利。 但是当我试图运行输出程序,它崩溃的错误消息“应用程序无法正确启动(0xc0000142)。单击确定以closures该应用程序。 我用Dependency Walker来查看程序是否无法加载dll模块,这里是Dependency Walker的输出屏幕http://img.zgserver.com/c%2B%2B/Screenshot 2013-11-05 22.21.45.png我我不习惯DW,但正如我可以看到在其输出屏幕上,一些OpenCV DLL无法加载和加载的Windows DLL是64位而不是32位(因为minGW是32位)。 我不明白为什么,因为我已经configurationpath环境variables的bin目录的openCV和应用程序仍然无法加载DLL模块。 而且我认为在32位应用程序运行时,Windows会自动加载正确的32位DLL,但这种情况下应用程序仍然无法加载。 任何人有想法?

Ruby可以导入一个.NET DLL吗?

我有兴趣在一个项目中使用/学习RoR,我必须使用.NET DLL。 Ruby能够导入.NET DLL吗?

确定DLL的加载path

我希望在以下结构中有我的申请。 Exe | |—– DLL\DLL.dll, DLL\common.dll | |—– DLL2\DLL2.dll, DLL2\common.dll 我的EXE将通过加载DLL LoadLibraryEx(_T("DLL\\DLL.dll"), 0, 0); LoadLibraryEx(_T("DLL2\\DLL2.dll"), 0, 0); DLL.dll和DLL2.dll项目将通过lib文件链接到common.dll 。 虽然会有2个不同版本的common.dll 。 但是,在执行期间, Exe期望我把common.dll与Exe相同的目录下,但不能和DLL和DLL2 。 有什么办法可以解决这个问题,通过能够有上述的目录结构。 不过,还是使用lib与common DLL/DLL2链接。

如何调整dynamic加载的本机DLL的%PATH%?

我dynamic加载一个.NET程序集,这个程序集依赖于位于不同文件夹中的几个本地 .dll文件。 但是,只有在我的应用程序启动时,Windows的文件夹位于PATH环境variables中,Windows才能find这些DLL。 我想从我的程序修改我的PATHvariables,以允许find必要的库。 根据MSDN “search顺序如下:…在PATH环境variables中列出的目录”。 哪个PATH环境variables的实例被使用? 每个进程都有一个实例。 我试过Environment.SetEnvironmentVariable("PATH", …)但没有帮助。 我也尝试了SetDefaultDllDirectories()与AddDllDirectory(),但这些也没有任何区别。 症状是,当启动我的.exe(从CMD提示符 – 它是一个控制台应用程序) %PATH%包含必要的文件夹时,ProcessMonitor显示本机.dll被探测到所有的PATH文件夹,并最终find。 但是当%PATH%在启动的时候没有包含必要的文件夹时,只能在.exe文件夹和SYSTEM32中探测本地的.dll文件(尽pipe%PATH%包含更多的文件),而不pipe上面提到的SetEnvironmentVariable ()/ SetDefaultDllDirectories()/ AddDllDirectory()调用。 这是怎么回事? 我究竟做错了什么? 为什么我无法有效地调整stream程的PATH? 注意:AppDomain.AssemblyResolve事件不能帮助我,因为在本地.dll加载其他本机.dll时它不会被触发。

更改Windows DLL加载顺序? (加载顺序,不是search顺序)

说我有一个可执行文件: app.exe 我在这个可执行文件中使用2个不同的第三方DLL: foo.dll bar.dll和应用程序必须隐式链接到这些DLL,也就是我不能使用::LoadLibrary来加载它们。 (注意:并不是我无法调用LoadLibrary ,但是这些DLL需要静态链接(C ++ DLL与__declspec(dllexport) ),所以我调用LoadLibrary没有任何意义,因为可改变的加载器已经调用它了。 这两个DLL 没有任何依赖关系,也就是说,他们的加载顺序是不确定的,据我所知( 应该是不相关的)。 (两者的依赖关系基本上只在标准的windows dll(kernel32,msvcrt等) 我现在有问题,我希望控制这些DLL的加载顺序,那就是我希望foo.dll 总是在bar.dll之前加载( DLL_PROCESS_ATTACH )。 是不是有可能告诉Windows DLL加载器加载一个DLL之前? 编辑:要检查可执行文件的DLL加载顺序 ,可以使用DUMPBIN.exe实用程序:(只需启动Visual Studio命令提示符) 编辑:根据这个答案 / 这个博客条目 ,NT加载程序确实按顺序走入导入部分。 (这将导致独立的 DLL以它们出现在导入部分的顺序加载。) C:\path\to\program> dumpbin /IMPORTS app.exe | grep -i \.dll MSVCR80D.dll KERNEL32.dll OLEAUT32.dll MSVCP80D.dll foo.dll bar.DLL 这个输出意味着MSVCR80D.dll(及其依赖[a] )将首先被加载,并且bar.DLL将被最后加载。 卸载将以相反的顺序发生。 我还没有发现的是如何影响这个加载顺序 … (笔记) [a]:当然,这意味着kernel32.dll将被加载,因为msvcr80d.dll将依赖于kernel32.dll。 根据一些要求,我为此添加了一个基本原理:( 但是请 ,我仍然对此感兴趣, 我知道如何解决MFC问题。 […]

在64位Windows Server 2008 Standard SP2 IIS 7上注册一个dll

项目:VS2010 C#类库。 本地机器:Win 7 64bit 项目中更改的项目如下: Properties / AssemblyInfo.cs [assembly:ComVisible(true)] 项目/属性/生成选项卡:注册Com for Interop:选中生成Seralization程序集:自动 我已经为接下来的post设置了testing类,comvisible = true和guids等: 使用4.0框架和Visual Studio 2010为ASP Classic构buildCOM互操作库 我能够通过regasm在本地机器上注册这个dll。 C:\ windows \ Microsoft.Net \ Framework \ v4.0.30319> regasm NrccuaComFileSystem.dll types注册成功。 在服务器regsvr,regasm,reglm与tlb都失败,并显示以下消息: RegAsm:错误RA0000:无法加载文件或程序集'file:/// c:\ Windows \ Micr osoft.NET \ Framework \ v4.0.30319 \ NrccuaComFileSystem.dll'或其依赖项之一。 操作不受支持。 (从HRESULTexception:0x80131515) 我在这里做错了什么? 它是否正在寻找一个入口点,如果是的话,完全失去了如何提供。 看了下面的post也… 经典的ASP使用COM + .net互操作64位Windows Server 2008 […]

Qwindows.dll从来没有find

当我在其他机器上运行我的应用程序时,如果我重命名Qt目录,我得到“此应用程序无法启动,因为它无法find或加载Qt平台插件”窗口“重新安装应用程序可能会解决此问题。 这是包含应用程序的文件夹的布局: app.exe icudt53.dll icuin53.dll icuuc53.dll Qt5Core.dll Qt5Gui.dll Qt5Widgets.dll msvcp110.dll platforms/qwindows.dll 有没有可能强制searchqwindows.dll目录而不是QT目录我的应用程序的目录?