Tag: dll

C#没有捕获非托管C ++ DLL的未处理exception

我有一个从C#应用程序调用的非托管C ++ dll,我正在尝试使用C#应用程序捕获所有exception,以便在由于非托管exception导致dll失败的情况下,用户将获得半合适的错误消息(C#app是一个实现它自己的http处理程序的Web服务)。 我遇到的问题是并非所有类型都被捕获。 因此,如果我创建以下内容并执行C#应用程序,则dll会抛出错误并终止整个应用程序。 有任何想法吗? 这是在VS2005中使用.Net framework v2创建的 C ++ – Test.h #ifndef INC_TEST_H #define INC_TEST_H extern “C” __declspec(dllexport) void ProcessBadCall(); #endif C ++ – Test.cpp #include #include using namespace std; void ProcessBadCall() { vector myValues; int a = myValues[1]; cout << a << endl; } C# – Program.cs class Program { [DllImport(“Test.dll”, EntryPoint=”ProcessBadCall”)] […]

使共享库可用于多个应用程序的最佳方法是什么?

像大多数商店一样,我们有一群人在开展各种项目,他们都需要访问与我们业务相关的相同核心信息和function,通常是在C#中。 我们目前只是将普通类从一个项目复制到另一个项目,但每个人都开始有自己的风格,我们想要巩固。 我们使用Tortoise SVN并决定维护一个单独的项目来包含我们的公共类,但不确定将这个公共代码部署到我们的各种应用程序的最佳方法。 我们为一家内部IT商店工作,该商店可以决定用户访问应用程序的方式,我们不必担心将产品发布到现实世界中。 我们的一些想法是: 将类编译为单个DLL并将其加载到全局程序集缓存(GAC)中 将类编译为单个DLL并将其保存到位于中央的共享驱动器,以供所有其他项目引用 将类编译为单个DLL并将其包含在每个项目中 只需在启动项目时获取最新的类,但没有中央共享库(我们对此的解释: http : //www.yosefk.com/blog/redundancy-vs-dependencies-which-is-worse。 HTML ) SVN Externals http://svnbook.red-bean.com/en/1.0/ch07s03.html 我知道这是一个常见问题,如果你花时间研究这些或其他选项,你总会找人解释每种方法的缺陷(版本控制,回归测试,“DLL地狱”,“GAC糟透了”等) 。 我几乎找不到任何人谈论什么工作和原因。 有首选方法吗?

传递依赖导致相同DLL的冲突版本

.NET世界中管理导致版本冲突的传递依赖的最佳实践是什么? 详情:项目A取决于项目B,而项目B又依赖于图书馆C. 也 项目A还依赖于项目X,它取决于库C的不同和(可能)不兼容的版本。 A-> B-> Cv1.0 & A-> X-> Cv2.0 哪里 Cv1.0 Cv2.0 有没有办法让这项工作? 可以在不使用GAC的情况下完成吗? 即使B和X只是二进制格式(来源不可访问),它能否完成? 换句话说,有一种方法可以让Project B和X在项目A中一起使用时使用它们自己的依赖项而不会引起冲突。 注意:我意识到理想情况下我根本不应该有这个问题,但是由于对外部库的依赖扩展,这将是一个不可避免的副作用。 所以我想知道它应该如何最好地处理它。

如何在Unity3D中使用C ++ DLL?

我知道这个类似的问题 ,但它没有回应我的问题。 我使用Visual Studio 2010编写了两个.dll 。一个是用C ++编写的,并且用一个用C ++编写的SDK进行通信。 另一个是C ++库的C#包装器,因此它可以在C#上下文中使用。 我的计划是,这将让我在Unity3D使用我的代码,但显然情况并非如此。 看起来Unity3D不允许我将.dll作为资产导入,如果它们不是.NET程序集的话。 所以我可以添加我的C#包装器,但不能添加C ++ dll。 每当我尝试访问C ++库时,都会导致DllNotFoundException 。 我试过简单地将C ++库复制到Assets/Plugins文件夹中,但这会产生相同的结果。 有没有办法正确地做到这一点? 这是我项目设置中非常重要的一部分。

在Visual Studio 2010 Express中自动从dll生成C#包装类?

我的一位同事告诉我,Visual Studio允许一个指向.dll并自动神奇地生成一个C#包装类。 这真的有可能吗? 如果是这样,那么如何实现这一目标呢? 我浏览过网络,却未能提出任何建议! 谢谢大家! 想我也会分享这些资源, 如何:创建COM Wrappers 并且由@Darin提供 ,使用非托管DLL函数

dotnet dll反编译并更改代码

我需要更改.NET DLL的代码。 我可以通过使用.NETreflection器编译DLL来查看代码,但是我无法更改DLL的代码。 使用.NET Reflector,我将代码反编译并保存到我的硬盘中,但是当我能够重新编译代码时,它会给出错误。 很少有代码以二进制格式反编译,很少有代码用c#反编译。 是否有任何工具可以更改和重新编译DLL? 以下是我用来尝试反编译DLL的工具: ILSpy DisSharp Reflector7.1带有Reflexil插件 Spices.Net.Suite.5.8 部署.NET 1.0.0 devextras.codereflect dotPeek-1.0.0.2545 intellilock JustDecompile_BETA_2011.1.728.1 不幸的是,没有一个工具能够提供完美的源代码来重新编译DLL代码。

扩展的WPF工具包 – 如何添加对项目的引用?

我是WPF的新手。 我想使用日期时间选择器。 我从下面的网站下载了“Extended WPF Toolkit – 1.9.0”。 http://wpftoolkit.codeplex.com/releases/view/96972 我有解压缩文件,发现两个DLL。 一个是“WPFToolkit.dll”和“Xceed.Wpf.Toolkit.dll”。 现在如何在我的项目中添加这两个dll? 以及如何在我的项目中使用datetime控件。

C#DLL的插件架构

我有一个程序,我开发使用基本的插件架构。 实际上,当程序加载时,它使用reflection来搜索目录中适合某个接口的dll,然后加载它们。 现在看来,当前的插件列表将被使用。 因此,我目前检查dll文件的做法仍然是最佳做法,还是有更好的方法来加载每个dll? 谢谢。

在C#.Net中创建.dll文件

我创建了一个项目,它是C#控制台应用程序项目,我需要在另一个Windows应用程序项目中调用此项目dll。 我在visual studio 2010中构建了项目并检查了bin \ debug文件夹中的.dll文件,但是没有创建它。 但是已经创建了清单文件和.exe文件。 在这种情况下,请帮我解释如何创建.dll 。

从Oracle Forms中的DLL(c#)调用函数

我在Oracle Forms 6i中从DLL调用方法时遇到了很大的问题。 DLL已写入 C#,它是代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using OnlineFPCommon; using System.Windows.Forms; namespace TestNamespace { public class TestClass { public static void testMethod() { MessageBox.Show(“testMethod”); } } } 我尝试使用Oracle Forms代码调用它: testlib_lhandle := Ora_Ffi.Load_library(‘C:\libdir\’,’test.dll’); getresult_fhandle := ora_ffi.register_function(testlib_lhandle,’testMethod’); 但第二行,当我尝试注册function失败。 为什么? 我该如何正确调用该function?