草庐IT

c# - 中止对非托管 DLL 的调用

我有一个非托管DLL,如果输入参数是一个大值,它可以运行很长时间的函数,有时这是可取的,但并非总是如此。我如何在C#中调用此函数以便在需要时可以中止它?到目前为止,我已经尝试将调用放在一个单独的线程中,但中断和中止似乎都无法停止该进程,该进程以100%CPU运行,直到dll完成。是否可以终止正在运行的dll代码? 最佳答案 非托管代码只有在处于“可警告等待状态”时才可中止。当它消耗100%的CPU周期时不会。P/InvokingTerminateThread会起作用,前提是您可以获得线程句柄,而这在.NET中变得非常困难。无论如何它

c# - 查看c#中的dll注释

我写了我的函数的c#注释,然后我把dll文件给了我需要的friend,但是当他使用那些函数时,他看不到注释,如何解决这个问题?ps:我在项目中使用的时候可以看到评论; 最佳答案 评论被剥夺了程序集,你必须generatethexmldocumentation为您的项目并将其交给您的friend。如果两个文件(程序集和xml文档)位于同一目录中,VisualStudio将使用IntelliSense中的文档。(Xml文档can'tbeembeddedinassembly) 关于c#-查看c

c# - 我可以通过 gacutil 安装,但不能卸载相同的 dll

我已经使用gacutil安装了一个DLL。gacutil.exe/iSI.ArchiveService.CommonLogic.Exceptions.dll使用gacutil/l显示确实安装了。SI.ArchiveService.CommonLogic.Exceptions,Version=1.0.0.0,Culture=neutral,PublicKeyToken=925c8734ae397609,processorArchitecture=MSIL然后我想卸载它。gacutil.exe/uSI.ArchiveService.CommonLogic.Exceptions.dllMic

c# - 如何在 C# 中编写 SNMP 代理或 SNMP 扩展代理 DLL

我需要为我的应用程序编写一个SNMP代理。我读了CodeProjectarticle关于如何使用win32编写SNMP扩展代理DLL,但想知道是否可以使用托管代码来完成。此外,是否可以在托管代码中编写我自己的SNMP代理并在WindowsSNMP服务上运行它?需要在我的服务器上运行windowsSNMP服务以提供基本的操作系统管理信息。您会推荐什么C#SNMP库?我找到了一些C#SNMP协议(protocol)实现,但找不到有关如何实现SNMP代理的示例代码-大多数示例仅与查询其他代理或发送陷阱有关。 最佳答案 如果您想使用.Net

c# - 是否可以将 DLL 从进程内存导出/转储到文件?

首先我知道1.IsitpossibletoexportadlldefinitionfrommyAppDomain?2.Isitpossibletosaveadynamicassemblytodisk?3.HowcanIextractDLLfilefrommemorydump?但这些似乎都没有特别回答我的问题。考虑以下场景:C#应用程序从内存流加载DLL(因此DLL不会直接暴露给用户)。是否有一种工具可以明确允许将该特定DLL以其原始形式从内存转储或导出到磁盘?注意:我希望有人向我展示从C#应用程序的内存转储中提取完整DLL的完整分步过程。 最佳答案

c# - 如何找到依赖于特定依赖项的特定版本?

我在运行我的应用程序时遇到此错误(不是在编译时):Couldnotloadfileorassembly'Castle.Windsor,Version=2.1.0.0,Culture=neutral,PublicKeyToken=407dd0808d44fbdc'oroneofitsdependencies.Thelocatedassembly'smanifestdefinitiondoesnotmatchtheassemblyreference.(ExceptionfromHRESULT:0x80131040)我的解决方案有很多项目,尽可能使用项目引用,但其中一些项目具有对外部依赖项的

c# - 在哪里可以找到 Microsoft.IdentityModel.Extensions.dll 库?

我正在搜索Microsoft.IdentityModel.Extensions库。在我正在阅读的文档中,他们建议它应该在我的GAC中可用,但事实并非如此。我正在使用VisualStudio2012。我在哪里可以找到它? 最佳答案 右键单击您的项目并选择“管理NuGet包”并查找以下扩展WindowsIdentityFoundation或者,您可以从here下载它.之后reinstallingtheNuGetpackages可能需要:Update-Package–reinstall 关于c

c# - DLL 版本控制错误

我有一个偶尔会抛出以下错误的网站:ServerErrorin'/'Application.Couldnotloadfileorassembly'ICSharpCode.SharpZipLib,Version=0.85.3.365,Culture=neutral,PublicKeyToken=1b03e6acf1164f73'oroneofitsdependencies.Thelocatedassembly'smanifestdefinitiondoesnotmatchtheassemblyreference.(ExceptionfromHRESULT:0x80131040)现在我知道我

c# - Rx.NET 的 System.CoreEx.dll 在哪里

这似乎是一个愚蠢的问题,但我从这里下载了.NET的ReactiveExtensions:http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx这个简单的例子给我一个构建错误:vartest=new[]{1,2,4,5};test.ToObservable().Subscribe(Console.WriteLine);编译器说:Error2Thetype'System.Concurrency.IScheduler'isdefinedinanassemblythatisnotreferenced.Youmustaddareferencet

c# - 如何在C#中调用C++ DLL

我用devC++编写了一个DLL。DLL的名称是“DllMain.dll”,它包含两个函数:HelloWorld和ShowMe。头文件如下所示:DLLIMPORTvoidHelloWorld();DLLIMPORTvoidShowMe();源文件如下所示:DLLIMPORTvoidHelloWorld(){MessageBox(0,"HelloWorldfromDLL!\n","Hi",MB_ICONINFORMATION);}DLLIMPORTvoidShowMe(){MessageBox(0,"Howareu?","Hi",MB_ICONINFORMATION);}我将代码编译成D