草庐IT

DLL_EXPORT

全部标签

c# - 卸载使用 DllImport 加载的 DLL

如何卸载已在C#中使用DllImport加载的DLL? 最佳答案 从通过[DllImport]pinvoke声明加载的进程中卸载非托管DLL的最可靠方法是再次通过调用LoadLibrary()自行加载它。这为您提供了一个可靠的DLL句柄,并且即使DLL的模块名称不明确也能正常工作。它在运行时没有任何影响,除了Windows加载程序将DLL上的内部引用计数从1增加到2。然后您可以两次pinvokeFreeLibrary()以将引用计数减少到0,并将您从LoadLibrary()获得的IntPtr传递给它。这将卸载DLL以及已加载的任何

c# - 从 C# .NET 应用程序调用 Delphi DLL

编辑:我在下面发布了一个更好的实现。我把它留在这里,这样回复才有意义。我为在Delphi中编写DLL并能够从C#调用它、传递和返回字符串的正确方法进行了多次搜索。许多信息不完整或不正确。经过反复试验,我找到了解决方案。这是使用Delphi2007和VS2010编译的。我怀疑它在其他版本中也能正常工作。这是德尔福代码。请记住在项目中包含版本信息。libraryDelphiLibrary;usesSysUtils;//CompiledusingDelphi2007.//NOTE:Ifyourprojectdoesn'thaveversioninformationincluded,youma

c# - 如何检查一个DLL文件是否被注册?

如何以编程方式查找用C#编写的DLL文件是否已注册?我已经尝试过这段代码,但它没有成功。如果我注册一个DLL文件并使用它返回的代码进行检查。如果我注销它并运行同一段代码,它会再次返回true。我将DLL文件的完整路径作为参数。我们在VisualC++中开发了一个简单的DLL文件.之后我们注册了它。现在我们要确认是否已经注册。Bob,你会自己替换这段代码吗,我还是很难吧?如果我注册一个DLL文件,注册表中是否存在一个条目?是不是要找到那些入口,判断这个DLL文件是否注册了? 最佳答案 您需要找出DLL中定义的COM对象的GUID。然后

c# - 无法加载 SqlServerSpatial.dll

我正在尝试在C#.Net项目中使用SqlServerSpatialCLR类型。我想使用SqlGeometry从我的数据库中查询空间记录。在VisualStudio2010中运行的单元测试中,我在我的本地计算机上运行了此功能,并命中了远程SqlServer计算机。一切顺利。然后,我将一个WCFRest服务发布到我的本地IIS实例,该实例的服务与单元测试相同的类库以执行一些空间查询,但它失败了。我得到一个错误提示UnabletoloadDLLSqlServerSpatial.dll:Thespecifiedmodulecouldnotbefound.我用谷歌搜索了这个并找到了很多很多答案-

c# - 应用程序使用的 DLL 的热卸载/重新加载

我有一个加载DLL以执行处理的特定部分的应用程序Example:"Application.dll"loading"Process.dll"Process.dll在运行时动态加载,使用反射,并且未在应用程序中引用。处理完成后,需要在服务器端重新编译DLL,稍后再加载回来。为此,我需要释放它,否则我会收到以下消息:“无法将文件“Process.dll”复制到“Process.dll”。进程无法访问文件“Process.dll”,因为它正被另一个进程使用。”所以问题是:如何以编程方式从我的应用程序中释放/释放/卸载Process.dll,然后再重新加载它。当然,重点是在不停止应用程序的情况下

c# - 在运行时动态生成 DLL 程序集

目前我有一些动态生成的代码。换句话说,一个C#.cs文件是由程序动态创建的,目的是将这个C#文件包含在另一个项目中。挑战是我想生成一个.DLL文件而不是生成一个C#.cs文件,这样它就可以被任何类型的.NET应用程序(不仅是C#)引用,因此更有用。 最佳答案 usingSystem.CodeDom.Compiler;usingSystem.Diagnostics;usingMicrosoft.CSharp;CSharpCodeProvidercodeProvider=newCSharpCodeProvider();ICodeComp

c# - 无法加载文件或程序集 crdb_adoplus.dll

对于以下错误:Couldnotloadfileorassembly‘file:///C:\ProgramFiles\SAPBusinessObjects\SAPBusinessObjectsEnterpriseXI4.0\win32_x86\dotnet1\crdb_adoplus.dll’oroneofitsdependencies.除了通过解决方案之外,还有什么方法可以解决此错误:该解决方案在我的应用程序中不起作用 最佳答案 请使用此代码。它可能对您有所帮助。这与您略有不同。有关详细信息,请访问此链接CrystalReportV

c# - ILMerge DLL : Assembly not merged in correctly, 仍列为外部引用

在.NETC#工具的构建过程中,我一直在使用ILMerge将程序集合并到单个exe中。我最近添加了一个新的类库,现在ILMerge失败了。我记得告诉它要合并到新的DLL中!它现在给我这个错误,我不太明白:ILMerge.Merge:Theassembly'DataObjects'wasnotmergedincorrectly.Itisstilllistedasanexternalreferenceinthetargetassembly.我使用“项目”引用完成的所有程序集引用,过去从未失败过。谁能为我解释这个错误,或者建议解决方法? 最佳答案

c# - 警告 “The type X in Y.cs conflicts with the imported type X in Z.dll”

我项目的ma​​in.cs返回以下警告:Warning1Thetype'Extensions.MessageDetails'in'PATH\Extensions.cs'conflictswiththeimportedtype'Extensions.MessageDetails'in'path\lib.dll'.Usingthetypedefinedin'path\Extensions.cs'.path\main.cs我的项目有什么问题?如何摆脱警告?我的项目代码结构如下:Extensions.csnamespaceExtensions{publicclassMessageDetails

c# - Visual Studio 不断用旧版本覆盖 NewtonSoft.Json.DLL

当我构建除包含引用的网站之外的任何其他项目时,VisualStudio正在覆盖我在项目引用和NuGet包文件中配置的正确版本的NewtonSoft.Json.DLL。好的。这是场景:我有一个包含后端服务和网站的解决方案。该网站在.NET4.5上运行,并配置了NuGet以引入Newtonsoft.Json.DLL的6.0.1版。将dependenAssembly绑定(bind)添加到web.config文件。我可以毫无问题地构建和运行这个网站。我最近将所有类库和后端服务从.NET4.0更新到.NET4.5。更新后,每当我构建其中一个类库或运行/调试后端服务时,网站就无法运行。Couldn