草庐IT

DLL_EXPORT

全部标签

c# - 使用 C/C++ 编写 DLL 以实现 .Net 互操作性

在我的C#应用程序中,我想用C编写一部分代码。我计划编写一个DLL女巫,可以与.Net互操作。我该怎么做? 最佳答案 基本上有三种正确的方法:使用C++/CLI。如果此DLL仅供.NET使用,这是最佳方式。使用“extern"C"”兼容的API,例如WindowsAPI本身。这是最便携的,但对于您的调用者来说不如使用类模型来表示您的对象方便。如果您真的打算用ANSIC(而不是C++)编写,这是最佳选择。对于此路径,您将函数编写为extern"C"returntype__stdcall__declspec(dllexport)func

c# - 缺少对 AsyncCtpLibrary.dll 的引用

我已经安装了API以使用C#5的新功能,但发生了一些奇怪的事情。我可以使用async关键字,但VS2010告诉我“找不到与任务相关的类型。您是否缺少对AsynCtpLibrary.dll的引用?”而且我在编译时也看到了一些错误,例如“compilerrequiredmember'System.Runtime.CompilerServices.AsyncMethodBuilder.Create'”AsyncCtpLibrary.dll在哪里?它解决了我的问题,将其添加到引用? 最佳答案 默认情况下,我认为是在“C:\Users\@us

c# - 从 Delphi 调用 C# dll

我用单一方法编写了.Net3.5dll,供Delphi.exe调用。不幸的是,它不起作用。步骤:1.使用代码创建C#3.5dll:publicclassMyDllClass{publicstaticintMyDllMethod(inti){MessageBox.Show("Thenumberis"+i.ToString());}}转到AssemblyProperties-->AssemblyInformation并选中“MakeAssemblyCOM-Visible”使用RegAsm.exe注册我的dll这会抛出Delphi异常,表明它无法连接dll。从非托管代码启用C#托管dll的使

c# - Visual Studio 2012 添加对错误 DLL 的引用

我在让VisualStudio在Release模式下构建我的项目时遇到了问题...它给我错误提示,程序集格式错误。结果是引用了一些x86程序集而不是x64程序集。PresentationCore、System.Data等程序集。我尝试过的事情:Debug模式,任何CPU都可以正常构建。Debug模式,x64构建良好。Release模式,任意CPU失效Release模式,x64失败(这是我想要构建我的项目的组合)当我尝试删除x86引用并将其切换为x64引用时,问题就出现了。VisualStudio只是添加旧的x86引用而不是x64引用。例如:我删除了C:\Windows\Microsof

c# - 通过编写 C dll 来加速 C# 中的数学代码?

我有一个非常大的嵌套for循环,其中对float执行一些乘法和加法。for(inti=0;i这个循环占用了我大部分的处理时间,是一个瓶颈。如果我用C重写这个循环并从C#连接到它,我是否会看到任何速度提升?编辑:我更新了代码以显示s和c是如何生成的。此外,内部循环实际上是从0到i,尽管它可能对问题没有太大影响EDIT2:我在VC++中实现了该算法,并通过dll将其与C#链接,并且在启用所有优化后,速度比C#提高了28%。启用SSE2的论点特别有效。使用MinGW和gcc4.4编译只提供了15%的速度提升。刚刚试用了英特尔编译器,发现这段代码的速度提高了49%。

c# - mscorlib.dll 中发生类型为 'System.StackOverflowException' 的未处理异常

我在asp.net中写了一段代码,从文件中读取数据并绘制图表。它工作了,但是当我运行程序一段时间后,出现了这个异常"Anunhandledexceptionoftype'System.StackOverflowException'occurredinmscorlib.dll"在代码中的这条语句中:if(File.Exists(fName)) 最佳答案 您的函数可能无限次地递归调用自身。有时这会间接发生(您在BCL中调用一个方法,它会回调您的代码,这样会不断重复)。File.Exists可能不是罪魁祸首。发生错误时查看您的调用堆栈。

c# - 无法加载文件或程序集 'Magick.NET-x86.DLL' 或其依赖项之一

我使用了Magick.NET,它是ImageMagick的.NET包装器,它在客户端机器上抛出上述错误。不过它在我的机器上运行良好。我还没有安装ImageMagick,所以我根本无法理解我需要在客户端机器上做什么。我安装了VS2012。此外,Magick.NET在其中包含ImageMagick,我认为它使用C++/CLI并向nativeImageMagick公开一个.NET接口(interface),所有这些都在一个DLL中。那么它需要什么DLL呢?(我刚遇到这个错误,所以发布了我找到的解决方案。) 最佳答案 Magick.NET需

c# - NuGet 包的相关 DLL 未复制到输出文件夹

我创建的自定义Nuget包出现问题。我们称它为MyCompany.Library.nupkg。它托管在企业ArtifactoryNuget存储库中。这个包依赖于Newtonsoft.Json。出于某种原因,如果我引用使用该Nuget包的项目,则相关DLL不会复制到我的项目的输出文件夹中。奇怪的是,当我使用另一个包(例如,Moq,而不是我自己的包)时,相关的DLL被复制。我已经创建了重现问题的测试解决方案:解决方案引用测试:项目:SomeLib.dll;引用:MyCompany.LibraryNupkg(取决于Newtonsoft.Json,所以也添加了)MoqNupkg(取决于CaST

c# - Task.Start .NET CORE 无法加载 DLL combase.dll 错误 Windows 7

我们有一些代码利用了基本的C#Task对象。但是,在Windows7计算机上进行开发时,尝试运行Task.Start();会导致:Exceptionthrown:'System.DllNotFoundException'inSystem.Private.CoreLib.ni.dllAdditionalInformation:UnabletoloadDLL'combase.dll':thespecifiedmodulecouldnotbefound(ExceptionfromHRESULT:0x8007007E)在Windows10开发机器上运行此代码时一切正常。在研究适用于Window

c# - 如何在 dll 级别读取 app.config。?

这个问题在这里已经有了答案:C#DLLconfigfile(17个答案)关闭5年前。我在一个解决方案中有一个控制台应用程序项目和一个库项目(dll)。库项目有app.config文件,我在其中存储了我在库中使用的一些键值对。控制台应用程序引用此dll。我在控制台应用程序中有另一个app.config文件,我在其中设置了控制台应用程序。当我运行程序时,我的library.dll总是从控制台应用程序引用app.config。我想分离每个dll的职责,所以我希望dll始终引用其自己的app.config文件,而不是调用应用程序的文件。在这种情况下,library.dll应该使用其自己的app