Tag: dll

引用同一程序集的多个版本

是否可以在同一进程中加载​​同一个强名称程序集的多个版本? 有很多类似的问题,但没有答案似乎有效。 我问的原因是我们需要使用SomeAssembly.dll newer version (4.0.0.0) ,但是一些引用的dll依赖于这个dll的older version (3.0.0.0) 。 我尝试使用下面的程序集绑定重定向配置,但最终出现了编译错误,因为我的程序集依赖于较新版本的dll,并且此配置完全覆盖链接,并且仅使用version 3.0.0.0 。 我希望这会在运行时失败。 编译器是否在这里使用配置文件? 按照惯例,在项目中引用Version 4.0.0.0 。 Version 3.0.0.0被复制到项目输出。

将位图转换为图像

因此,在我从DLL中取出图像并将其放入图像控件后,它就是一个BitmapImage。 要将其打包回dll,必须将其转换回图像。 如何将其转换回图像,如何将其重新打包回dll? 这都是用c#编写的wpf。 private void compileDLL_Click(object sender, RoutedEventArgs e) { string sourcePath = Directory.GetCurrentDirectory() + “\\PCAngelResources.dll”; //destination path string dllname = textBox1.Text + “_PCAngelResources.dll”; string targetPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); string destFile = System.IO.Path.Combine(targetPath, dllname); System.IO.File.Copy(sourcePath, destFile, true); //lstImages = new Dictionary(); //string filename = “PCAngelResources.dll”; Assembly pcangdll = Assembly.LoadFile(sourcePath); System.Globalization.CultureInfo culture = Thread.CurrentThread.CurrentCulture; ResourceManager rm […]

JNA无法通过java在dll文件中找到指定的过程

我试图通过java访问DLL程序,但我的java方法无法找到该程序。 dll文件已成功加载,但是名为Login I的C#代码中的过程无法调用。 下面是ADHelper.dll中的过程def: public static ADHelper.LoginResult Login(string UserName, string Password) { if (!ADHelper.IsUserValid(UserName, Password)) return ADHelper.LoginResult.LOGIN_USER_DOESNT_EXIST; DirectoryEntry user = ADHelper.GetUser(UserName); if (user == null) return ADHelper.LoginResult.LOGIN_USER_DOESNT_EXIST; int userAccountControl = Convert.ToInt32(RuntimeHelpers.GetObjectValue(user.Properties[“userAccountControl”][0])); user.Close(); return !ADHelper.IsAccountActive(userAccountControl) ? ADHelper.LoginResult.LOGIN_USER_ACCOUNT_INACTIVE : ADHelper.LoginResult.LOGIN_OK; } dll文件名是ADHelper.dll。 LoginResult是枚举类型: public enum LoginResult { LOGIN_OK, LOGIN_USER_DOESNT_EXIST, LOGIN_USER_ACCOUNT_INACTIVE, } 下面是我通常调用程序的java程序: package dllTest; import com.sun.jna.*; public […]

如何将Web服务部署为单个dll? C#

我在VS类型Site中创建了一个项目。 我创建了一堆asmx服务。 为了使它在IIS上工作,我只是将cs和asmx文件复制到site的文件夹中。 一切都很完美。 现在,当我将服务从本地PC部署到开发服务器时,我被告知要提供一个dll。 我不知道如何在这种类型的项目上编译dll。 可能吗? 然后,我创建了一个ASP.Net项目,将我所有的东西放在那里。 它创建了一个单独的dll。 但是,如果我把它放在那个文件夹并告诉我的asmx,后面的代码就在那个dll中,当我尝试在浏览器中检查它时,我得到解析错误。 WebService1.asmx: 也许我需要在Class属性中添加smth?

p /调用从c#调用C dll

这是我的C代码 extern “C” { __declspec(dllexport) void DisplayHelloFromDLL(string a) { printf (“%s\n”,a) } } 这是我的C#代码 class HelloWorld { [DllImport(“TestLib.dll”)] public static extern void DisplayHelloFromDLL(string a); static void Main () { string a = “Hello”; DisplayHelloFromDLL(a); } } 它成功构建但崩溃如下: 调试http://sofzh.miximages.com/c%23/1qr9sj.jpg 那么,如何使用P / invoke从C#调用我自己的C dll? 请提前帮助。

在Windows 7上运行LibVLC.NET示例

我想为.Net C#试用VLC媒体框架绑定。 我从http://libvlcnet.codeplex.com/SourceControl/latest下载源代码,解压缩,从http://www.videolan.org/vlc/下载最新的VLC,将其安装到C:\ Program Files \。 然后我打开下载的源项目,构建它,毕竟我尝试启动D:\ libvlcnet-20526 \ trunk \ Tests \ Tutorial \ bin \ Debug \ Tutorial.exe,最后输入错误: Unhandled exception: System dll not found exception no valid libvlc.dll could br found VLC is probably not installed! at LibVlc.Net.LibVlcLibrary.getorloadlibrary(String libVLCLibrary) 我转到C:\ Program Files \ VideoLAN \ VLC并复制“libvlccore.dll”,“libvlc.dll”和“plugins”文件夹( http://libvlcnet.codeplex.com/中的 instruciotns),然后将这些文件粘贴到D:\ libvlcnet-20526 \ trunk \ Tests […]

如何使用extern“C”dll函数将char **作为C#应用程序中的参数?

我有function的dll: extern “C” int doJob(char** buffer); 它在C ++中的用法如下所示: char* buf; int status = doJob(&buf); 我应该在C#中为此函数定义什么? 如何在C#中使用此function?

.net dll在c ++ dll中有一个像dll这样的入口点

我真的不确定.net dll是否也有像c ++ dll一样的入口点。 我怎么知道.net dll是否有入口点。 我在某地读到WIN32 dll可以有入口点,dot-net类库也不行。 谢谢,

检查Delphi DLL在C#中使用的安全性

我有一个DLL,负责一些特殊的玻璃效果的自定义绘图。 我把它放在一个DLL中有三个原因: 1)因此它可以很容易地重复使用和分发,当然不会权衡它的主机应用程序, 2)所以我可以将它分发给开发人员,而他们不知道它是如何工作的, 3)因此它可以从C#中使用。 它目前在Delphi中工作,但我知道我需要做很多改动才能使它支持C#。 例如,主DLL函数包含1个参数(一个Record),其中包含许多我知道在C#中不起作用的类型(如String,也许是TColor)。 项目尚未完成100%,但正在运作。 我需要有人指出实现这一目标的最简单方法。 代码太大了,不能在这里发布,所以这里是在Pastebin 。 这是我需要知道的: 我应该像我一样继续使用唱片,还是使用像Packed Record这样的其他东西? 在这些记录中使用除String或PChar之外的其他东西的任何技巧? 我如何在C#中包装此DLL? (顺便说一句,我知道C#很少) 如何定义等效记录传递给DLL函数? 如何在C#中定义等效常量? (JD#ClassCommon.pas的C#版本) 如何获取要发送到DLL的canvas句柄(HDC)和父句柄(HWND)? 什么相当于TColor? 在记录中传递TColor等类型是否安全? 您是否预见到我的代码中的任何其他问题? 文件列表: 库:JDGlassLib.dll * 单位:JDGlassCommon.pas * 包:JDLib.bpl 单位:JDGlassCommon.pas * 单位:JDGlass.pas * 程序:JDLibTestApplicationD7.exe 表格:JDLibTestAppD7.dfm * 单位:JDLibTestAppD7.pas * ( * =代码包含在上面的链接中 ) ( JDGlassCommon.pas在DLL和Component中共享 ) 应该看起来像这样: 注意:我不是要求重写,尽管你非常欢迎。 我只需要一些如何解决这个问题的技巧。 PS:原始玻璃绘图代码记入StackOverflow的“NGLN”,回答我的先前问题: delphi定制绘图 – 发光玻璃

将C#DLL加载到C ++ / CLI – dependencies目录

我写了一个dll c ++ / cli库,它使用我的其他c#dll库。 当我在调用它的应用程序所在的文件夹中有c#dll时,C ++ / cli库工作正常。 该库最终将加载到许多应用程序中,并且不得将C#dll复制到带有应用程序的目录中。 它必须与c ++ / cli库位于同一个文件夹中,但在这种情况下,我有System.IO.FileNotFoundException。 我的建议是手动加载c#库或更改f.ex的路径。 firefox正在寻找依赖项,但我尝试使用LoadLibrary()和Assembly :: LoadFrom()方法来强制从正确的目录加载。 当然,我将带有dll的目录路径添加到系统PATH。 我在VS2010上工作。