Tag: dll

在c#中使用vb.net类

如何在vb.net中创建一个类型并在c#中使用该类型? 我想我需要编译vb项目并添加对dll的引用,但不知道这是否是正确的方法,或者引用是有效的。 这样做并不好玩,我们有一些vb代码,我们正在考虑这个选项。

使用对EnumFontFamiliesEx的DLL调用在C#中枚举活动字体让我知道了

我的最终目标是在Windows计算机上列出所有活动字体。 例如,如果您启动写字板或Word,您将看到它们全部。 其中一些字体来自windows \ fonts文件夹,但不是全部。 有些是使用gdi32.dll调用AddFontResource(…)动态注册的。 现在,你会认为C#支持检索整个列表,如果有,请告诉我! 但是,在花了好几个小时后,常规的C#调用获取安装的系统字体只检索实际上活动的所有字体中的一些。 例如,InstalledFontCollection.Families没有找到AddFontResource添加的任何字体(它找到了wordpad中列出的大约25%的字体!) 虽然我想在C#中执行此操作,但似乎我必须使用更多gdi32.dll调用。 这样就开始了我的EnumFontFamiliesEx问题。 我已经设法让以下代码工作到我正在获得一堆字体回调。 但是,结构ENUMLOGFONTEX似乎已损坏,例如lpelfe.elfFullName通常包含几个方形字符,而不是真实姓名。 也许我在编组或结构定义中犯了一个错误,不太确定。 我尝试了很多迭代和无休止的谷歌搜索,但无济于事。 任何帮助将非常感谢。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Windows.Media; using System.Runtime.InteropServices; using Microsoft.Win32; namespace FontRetriever { public partial class TestForm : Form { [DllImport(“gdi32.dll”)] static extern int EnumFontFamiliesEx(IntPtr hdc, [In] […]

如何在C ++项目中使用C#代码

我在C#中有一些代码,我想在其他项目中使用(用C ++编写)。 根据我的研究,我需要创建一个.lib,但MSVS只创建.dll(我认为..)。 我认为可以通过在C ++上使用LoadLibrary()来使用.dll,但似乎不是很友好。 1 – 我可以在MSVS中创建.lib吗? 如果没有,我该如何创建它。 2 – 集成代码的最佳方法是什么? 通过.lib或使用.dll + LoadLibrary()?

Unity中的Encog dll?

我想实现Encog到Unity。 当我将dll放入资产时,不会发生错误。 我甚至可以创建没有错误的新神经网络。 当我将XOR示例粘贴到脚本时,我得到如下所示的错误。 我用谷歌搜索它与Encog使用Unity单体行为中未涵盖的部分C#有关。 有人说我应该使用net framework 3.5构建的dll,但是当我尝试在visual basic中加载解决方案文件时,我得到了另一个类似于此的错误: Error 1 The type or namespace name ‘Tasks’ does not exist in the namespace ‘System.Threading’ (are you missing an assembly reference?) C:\Programs\Unity\ncog\encog-dotnet-core-3.2.0\encog-core-cs\Util\Concurrency\Job\ConcurrentJob.cs 24 24 encog-core-cs 我尝试修改encog源中包含的build.bat,以便它使用3.5框架的路径:C:\ Windows \ Microsoft.NET \ Framework64 \ v3.5 \ msbuild(这个编译没有错误/警告)但是当我尝试使用这个dll在统一中,我得到的同样的错误与dll normaly分布在encog网站上。 尝试使用XOR安全示例脚本时出现统一错误 Internal compiler error. See the console log for more […]

我可以在没有Visual Studio的情况下编译DLL吗?

我的目的是使用C ++库 ,使用SWIG ( alt。链接 )将其包装为C#,并将C ++和C#组件编译为Unity 5的DLL。(C#DLL为Unity提供了与C ++ DLL的接口。) 据我所知,编译C ++和C#DLL总是需要Visual Studio(或VS之类的msbuild工具)。 但是,我目前正在努力安装VS,这让我质疑这个假设。 是否还有其他选项可以在Windows上编译Unity-ready DLL? (即使我安装了VS,我仍然很想知道。)

制作C#项目DLL和EXE

我正在开发一个项目,我需要同时拥有一个可执行文件,以便用户可以运行配置界面和可以嵌入其他项目的DLL以使用其他一些function。 有没有办法让Visual Studio生成可执行文件和DLL(而不是每次都手动切换它)?

从特定文件夹动态加载DLL?

目前,我有这个代码: var shellViewLibrary = Assembly.LoadFrom(Path.Combine(_DllsPath, _DllShellView)); IEnumerable types = shellViewLibrary.GetTypes(); foreach (Type type in types) { var typeIShellViewInterface = type.GetInterface(_NamespaceIShellView, false); if (typeIShellViewInterface != null) { //here } } 问题是,我在//here我想使用Activator.CreateInstance来创建一个type 在特定文件夹中的类型的对象(在构建文件夹之外)我尝试了大约20种不同的东西,其中大部分都是这样的: http://msdn.microsoft.com/en-us/library/d133hta4.aspx但没有效果……我尝试过的典型事情是: object MyObj = Activator.CreateInstance(shellViewLibrary.FullName, type.FullName); 要么 object MyObj = Activator.CreateInstance(Path.Combine(_DllsPath, _DllShellView), type.FullName); 我总是有不同的例外,最常见的是: XamlParseException 我觉得我没有以正确的方式使用Activator.CreateInstance和2个参数。 我该怎么办 ?

如何将指针从C#传递到DLL中的本机函数?

这是我在DLL中的函数的签名: int __stdcall myFun( void * const context, const char * const pszFileName, const unsigned int buffSize, void * const pWaveFormatex ); 所有参数均为[in]。 用户应该通过最后一个参数将指针传递给WAVEFORMATEX结构。 返回后,它将被填补。 所有这些在C ++中都很有效。 现在,我正在尝试使用C#中的相同DLL,但它根本不起作用。 问题出在最后一个参数中。 由于我根本不了解C#,我想问一下这是否可行。 如果是,我会很感激一个例子。 我最后一次尝试是这样的: [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct WAVEFORMATEX { public ushort wFormatTag; public ushort nChannels; public uint nSamplesPerSec; public uint nAvgBytesPerSec; public ushort nBlockAlign; […]

嵌入并安装了IronPython – dll版本混乱

我有一个嵌入了IronPython的应用程序,并使用它来执行用户编写的脚本。 只安装我的应用程序时,一切都按预期工作。 我已经嵌入了IronPython 2.7.4 dll(安装后我的exe和IronPython dll在同一个文件夹中)。 但是,在某些客户端计算机上安装了IronPython 2.7.2。 它将其dll安装到GAC中,我的应用程序最终使用它们,而不是我随应用程序和应用程序一起提供的dll。 这导致我的应用程序失败,因为我使用了2.7.2中没有的属性。 问题是.NET出于某种原因认为这些程序集具有相同的版本(2.7.0.40)。 如下图所示,文件版本不同: 正确的一个是我随应用程序发货的那个,左边一个是IronPython 2.7.2附带的一个。 我没有向GAC注册任何内容,但这是在GAC中注册的内容(IronPython安装添加了它): C:\ $ gacutil /l | findstr IronPython IronPython, Version=2.7.0.40, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL IronPython.Modules, Version=2.7.0.40, Culture=neutral, PublicKeyToken=7f709c5b713576e1, processorArchitecture=MSIL 如您所见,它们已注册为2.7.0.40版。 我的问题是 – 如何强制我的应用程序使用2.7.4.1000版本的IronPython程序集而不是在GAC中注册的2.7.2.1001? 为什么.NET忽略版本号的第三个组件并且可以更改? 编辑 : 如果它很重要,安装了IronPython 2.7.2,我的程序失败并出现以下错误: 未处理的exception:System.MissingMethodException:找不到方法:’Boolean IronPython.Hosting.PythonConsoleOptions.get_BasicConsole()’。

用C#.Net播放.WMV

嗨,我想在C#应用程序中播放WMV(或video文件).. 我已经制作了软件,当我点击文件然后打开文件菜单然后我选择媒体文件但是当我点击播放然后应该播放文件.. 所以请指导我…… 如果需要任何dll,请告诉我…… 提前致谢