Questions tagged «dll»

动态链接库(DLL)是一个模块,其中包含可以由另一个模块(应用程序或DLL)使用的功能和数据。这是Microsoft在Microsoft Windows和OS / 2操作系统中对共享库概念的实现。

15
将DLL嵌入已编译的可执行文件中
是否可以将预先存在的DLL嵌入到已编译的C#可执行文件中(以便仅分发一个文件)?如果有可能,人们将如何去做呢? 通常,我很酷,只是把DLL放在外面,让安装程序处理所有事情,但是有几个人在工作,问我这个问题,老实说我不知道​​。
618 c#  .net  dll  merge  linker 


4
共享库(.so),静态库(.a)和DLL(.so)之间的区别?
我参与了有关Linux库的一些辩论,并想确认一些事情。 根据我的理解(如果我做错了,请纠正我,稍后我将编辑我的文章)在构建应用程序时有两种使用库的方法: 静态库(.a文件):在链接时,会将整个库的副本放入最终应用程序中,以便调用方应用程序始终可以使用库中的功能 共享对象(.so文件):在链接时,仅通过相应的标头(.h)文件针对其API对对象进行了验证。该库直到需要运行时才真正使用。 静态库的明显优点是它们允许整个应用程序独立运行,而动态库的优点是可以替换“ .so”文件(即:由于安全原因需要更新)错误),而无需重新编译基本应用程序。 我听说有人对共享库和动态链接库(DLL)进行了区分,即使它们都是“ .so”文件。在Linux或任何其他POSIX兼容操作系统(即MINIX,UNIX,QNX等)上进行C / C ++开发时,共享库和DLL之间是否有区别?有人告诉我(到目前为止)一个关键的区别是共享对象仅在运行时使用,而DLL的共享必须首先在应用程序中使用dlopen()调用来打开。 最后,我还听到一些开发人员提到“共享档案”,据我了解,共享档案本身也是静态库,但从未被应用程序直接使用。相反,其他静态库将链接到“共享档案”,以将某些(但不是全部)功能/资源从共享档案中拉到正在构建的静态库中。 预先感谢大家的帮助。 更新资料 在向我提供这些术语的上下文中,必须学习Linux的一组Windows开发人员实际上使用了错误的术语。我试图纠正它们,但是(不正确的)语言规范卡住了。 共享库:程序启动时自动链接到程序的库,并且作为独立文件存在。该库在编译时包含在链接列表中(即:LDOPTS+=-lmylib对于名为的库文件mylib.so)。该库必须在编译时以及应用程序启动时存在。 静态库:一个在构建时就合并到实际程序本身的库,用于一个(较大)应用程序,其中包含应用程序代码和在构建程序时自动链接到程序中的库代码,而最终的二进制文件则同时包含这两个程序主程序和库本身作为单个独立的二进制文件存在。该库在编译时包含在链接列表中(即:LDOPTS+=-lmylib对于名为mylib.a的库文件)。该库必须在编译时存在。 DLL:本质上与共享库相同,但不是在编译时包含在链接列表中,而是通过dlopen()/ dlsym()命令加载该库,因此该库无需在构建时就存在,即可进行程序编译。同样,该库不需要在应用程序启动或编译时出现(必需),因为仅在进行dlopen/ dlsym调用时才需要。 共享存档:本质上与静态库相同,但是使用“导出共享”和“ -fPIC”标志进行编译。该库在编译时包含在链接列表中(即:LDOPTS+=-lmylibS对于名为的库文件mylibS.a)。两者之间的区别是,如果共享库或DLL希望将共享归档文件静态链接到其自己的代码,并且能够使共享库中的函数可用于其他程序,而不仅仅是使用它们,则需要使用此附加标志。 DLL内部。当有人为您提供静态库并且您希望将其重新打包为SO时,这很有用。该库必须在编译时存在。 附加更新 “ DLL”和“ shared library” 之间的区别只是我当时工作的公司中的一种(懒惰,不准确的)口语(Windows开发人员被迫转移到Linux开发,并且这个术语陷入了僵局),并遵循上述说明。 另外,在S“共享档案”的情况下,库名后的尾随“ ”文字只是该公司的惯例,而不是整个行业。
272 c++  c  linux  dll  linker 

14
Windows 7、64位,DLL问题
我的可执行文件有问题。我正在Windows 7 64位开发箱上运行此C ++ 32位可执行文件,该箱还具有所有那些Microsoft应用程序(Visual Studio 2008 + 2010,TFS,SDK,Microsoft Office)...并且它仍然可以正常运行。 现在,我获得了与该程序完全相同的客户端安装,并被要求使用干净的Windows 7安装对其进行测试。因此,我得到了一台Windows 7 64位VMware,并将其更新为Windows 7 SP 1(我的开发人员正在调整的版本)。但是,在我的开发人员包装盒上,一切都很好,该程序无法在VMware(30天试用版)包装盒上使用。 x86 Dependency Walker告诉我缺少以下DLL文件: API-MS-WIN-CORE-COM-L1-1-0.DLL API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL API-MS-WIN-CORE-WINRT-L1-1-0.DLL API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL DCOMP文件 GPSVC.DLL IESHIMS.DLL 我在Google上搜索了这些API-MS-WIN -... DLL文件,发现它们实际上应该已经是Windows 7的一部分(尽管有些网站声称属于Windows 8和Windows Server 2012)。 我已经尝试了建议的修复程序,这些修复程序是: 运行'sfc / scannow' 安装Visual Studio 2008 SP1运行时可执行文件 但这并不能解决任何问题。:-( 旁注:我的开发箱也没有它们,并且似乎也不需要它们。例如,我的机器上的user32.dll没有链接到其中之一,而VMware上的安装却链接了其中的一个。 关于如何解决此问题的任何想法?我试图在Microsoft页面上找到合适的下载/修复程序,但失败了。 解决问题后,我想报告发现的问题,由于问题已经解决,因此我无法将其发布为答案。 实际上,所报告的所有DLL文件都是Dependency Walker工具丢失的,即那些 …
268 windows  dll 

30
System.MissingMethodException:方法未找到?
曾经在我的asp.net Webforms应用程序中工作的东西现在抛出此错误: System.MissingMethodException:找不到方法 该DoThis方法在同一类上,并且应该可以工作。 我有这样一个通用处理程序: public class MyHandler: IHttpHandler { public void Processrequest(HttpContext context) { // throws error now System.MissingMethodException: Method not found? this.DoThis(); } public void DoThis() { // } }
244 c#  asp.net  dll  nuget  httphandler 

5
为什么在64位Windows上,将64位DLL转到System32,将32位DLL转到SysWoW64?
我想知道我们什么时候需要在下面放置文件 在64位Windows系统上为C:\ Windows \ System32或C:\ Windows \ SysWOW64。 我有两个DLL,一个用于32位,一个用于64位。 从逻辑上讲,我想将32位DLL放在C:\ Windows \ System32下,并将64位DLL放在C:\ Windows \ SysWOW64下。 令我惊讶的是,它正好相反!的32位一个进入C:\的Windows \ SYSWOW 64,和64位DLL进入C:\的Windows \系统32。 非常令人困惑的东西。这是什么原因呢?


5
解决LNK4098:defaultlib'MSVCRT'与发生冲突
此警告: LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library 在Visual Studio中是相当普遍的警告。我想了解它的确切原因以及正确的处理方式(如果有的话)。 这出现在使用进行编译的调试版本中/MDd。该项目链接到诸如Windows之类的东西Version.dll,pdh.dll它们本身也与之链接MSVCRT.dll。显然,我没有这些的调试版本,也无法编译它们。 因此,我将其添加/NODEFAULTLIB:MSVCRT到链接器命令行中,并确实删除了警告。但是,这实际上是做什么的呢?为何有必要?

5
DLL和LIB文件-什么以及为什么?
我对DLL和LIB知之甚少,除了它们包含程序正常运行所需的重要代码-库。但是,为什么编译器会生成它们呢?只将所有代码包含在一个可执行文件中会不会更容易?DLL和LIB有什么区别?

28
无法在打开用户映射部分的文件上执行请求的操作
每当我尝试将4个文件复制到我的bin文件夹中时,在停止主要服务后,我都会收到一个文件(TexteDll)错误。错误是: Cannot copy TexteDll: The requested operation cannot be performed on a file with a user-mapped section open 这可能是由于某些系统锁定所致。也许另一个进程正在使用此DLL。当我用Google搜索时,发现重新启动系统可以解决此问题。 有人可以为此提出建议或解决方案吗?我检查了TexteDll的属性(常规,版本,安全性等)。一切似乎正常。
210 windows  dll 

10
如何找到特定dll的PublicKeyToken?
我需要在我的web.config文件中重新创建一个类似于以下内容的提供程序: <membership defaultProvider="AspNetSqlMemProvider"> <providers> <clear/> <add connectionStringName="TRAQDBConnectionString" applicationName="TRAQ" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0" name="AspNetSqlMemProvider" type="System.Web.Security.SqlMembershipProvider, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> </providers> </membership> 但是,我收到一个运行时错误消息,指出无法加载该程序集,我认为这是因为我的PublicKeyToken错误。如何查找我的程序集的PublicKeyToken? 另外,我是否会完全错误地这样做呢?

7
如何使用Python中的DLL文件?
DLL从内部使用文件的最简单方法是什么Python? 具体来说,如何在不编写任何附加包装器C++代码的情况下完成此功能Python? Python与使用第三方库相比,本机功能是首选。
186 python  dll 

18
从属DLL不会复制到Visual Studio中的生成输出文件夹中
我有一个视觉工作室解决方案。我在解决方案中有很多项目。有一个主要项目充当启动项目,并使用其他项目。有一个项目称为“ ProjectX”。其参考已添加到主项目中。ProjectX引用了另一个不属于解决方案的.NET dll(例如abc.dll)。 现在,应将此abc.dll复制到主项目的bin / debug文件夹中,但不会在此处复制它。任何已知原因为何未复制它?

7
找不到如何使用HttpContent
我正在尝试使用HttpContent: HttpContent myContent = HttpContent.Create(SOME_JSON); ...但是我找不到在定义该DLL的地方碰运气。 首先,我尝试添加对Microsoft.Http以及的引用System.Net,但两者均不在列表中。我也尝试添加对的引用,System.Net.Http但HttpContent该类不可用。 那么,谁能告诉我在哪里可以找到HttpContent课程?
184 c#  asp.net  .net  dll 

8
PHP 7:缺少VCRUNTIME140.dll
在Windows上启动PHP 7时出现错误。当我php在命令行上运行时,它返回一个带有系统错误的消息框: 该程序无法启动,因为您的计算机缺少VCRUNTIME140.dll。尝试重新安装该程序以解决此问题。 在那之后,CLI是崩溃了。 由于我不想从外部网站安装DLL文件,因此我不知道该如何解决! PHP版本: 7.0.0alpha1 VC14 x64线程安全
168 php  windows  dll  php-7 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.