Tag: mono

Debug.Assert似乎不适用于Mono

考虑以下C#程序: using System; using System.Diagnostics; namespace Test { class MainClass { public static void Main (string[] args) { Debug.Assert(false); Debug.Fail(“fail!”); Console.WriteLine (“Hello World!”); } } } 使用以下方法编译时: dmcs -debug -d:DEBUG Main.cs 然后运行它: mono –debug Main.exe 断言和失败似乎被忽略了。 输出只是: Hello World! 我在StackOverflow上检查了其他相关问题,但我找不到解决方案。 特别是解决方案在Mono中给出- Debug.Assert不起作用不起作用。 (更新:更新的解决方案确实有效,请参阅下面的评论。) 我在Ubuntu 11.10上使用Mono 2.10.5-1。

使用Mono的Mac上的mkbundle:找不到“mono / metadata / mono-config.h”文件

我正在尝试用Mono创建一个Mac捆绑包。 当我执行: mkbundle file.exe –deps -o FILE 我在编译期间得到了这个: fatal error: “mono/metadata/mono-config.h” file not found 我错过了什么吗?

是否存在技术原因,C#不发出“尾部。”CIL指令?

可能重复: 为什么.net / C#没有消除尾递归? 请使用以下C#代码: using System; namespace TailTest { class MainClass { public static void Main (string[] args) { Counter(0); } static void Counter(int i) { Console.WriteLine(i); if (i < int.MaxValue) Counter(++i); } } } C#编译器(无论如何)都会将Counter方法编译成以下CIL: .method private static hidebysig default void Counter (int32 i) cil managed { .maxstack 8 IL_0000: ldarg.0 IL_0001: call […]

在Python中压缩并使用解压缩C#解压缩的最简单方法(反之亦然)

我有一个程序,它有一个基于Mono的C#客户端和一个Python服务器,它通过TCP / IP套接字进行通信。 消息使用的主要是二进制格式,但每条消息的最大部分通常是嵌入的UTF-8字符串(英文)。 每条消息通常都很短(小于100字节),但有些消息可能更长(最多64K)。 交换了大量数据,我希望通过在传输数据时压缩数据来减少消息大小和带宽使用。 我最初的研究没有发现任何明显与2个标准库兼容的东西。 Python有一个zlib库,但我不能使用C#的DeflateStream或GZipStream(因为它们需要一个我没有的外部DLL),它似乎不适用于SharpZipLib的ZipOutputStream(给出“错误-3 – 不正确标题“回复”。 (那些不使用Mono的人可能会有更多运气 – 请参阅Duncan的答案。) 我有兴趣听到关于通过此通信链路实现压缩的简单方法,请记住,任何可能易于使用一种语言实现的解决方案都需要在另一种语言中具有等效性。 我接受一个专门针对UTF-8字符串而不是二进制消息的解决方案,尽管优先选择是压缩整个字节流。 理想情况下,我希望将外部依赖性保持在最低限度,但我意识到这可能不实用。 更新: 尝试使用SharpZipLib并在Python解码方面遇到重复错误,我真的可以使用已知可用的代码的具体建议,而不仅仅是针对一种语言或另一种语言的压缩库的建议。

无法将System.Net.Utilities与DNX 4.5.1一起使用

首先发布并完成C#,DNX,ASP.net noob所以请你好。 我在使用DNX 4.5.1构建我的ASP.net 5.0项目时遇到了问题。 我的project.json文件包含以下内容: { “version”: “1.0.0-*”, “compilationOptions”: { “emitEntryPoint”: true }, “tooling”: { “defaultNamespace”: “PingTest1” }, “dependencies”: { “Microsoft.AspNet.Diagnostics”: “1.0.0-rc1-final”, “Microsoft.AspNet.IISPlatformHandler”: “1.0.0-rc1-final”, “Microsoft.AspNet.Mvc”: “6.0.0-rc1-final”, “Microsoft.AspNet.Mvc.TagHelpers”: “6.0.0-rc1-final”, “Microsoft.AspNet.Server.Kestrel”: “1.0.0-rc1-final”, “Microsoft.AspNet.StaticFiles”: “1.0.0-rc1-final”, “Microsoft.AspNet.Tooling.Razor”: “1.0.0-rc1-final”, “Microsoft.Extensions.Configuration.FileProviderExtensions” : “1.0.0-rc1-final”, “Microsoft.Extensions.Configuration.Json”: “1.0.0-rc1-final”, “Microsoft.Extensions.Logging”: “1.0.0-rc1-final”, “Microsoft.Extensions.Logging.Console”: “1.0.0-rc1-final”, “Microsoft.Extensions.Logging.Debug”: “1.0.0-rc1-final”, “System.Net.NetworkInformation”: “4.1.0-beta-23516”, “System.Net.Utilities”: “4.0.0-beta-23516” }, “commands”: { “web”: “Microsoft.AspNet.Server.Kestrel” […]

如何使用GTKSharp打印图像

我正在将一个C#.NET应用程序移植到Mono .NET,以便在OSX中执行。 部分应用程序涉及打印图像。 在.NET中相当容易,主要归结为 e.Graphics.DrawImage(img, new Rectangle(x, y, printSize.Width, printSize.Height)); 在PrintDocument的PrintPage事件中。 Mono没有System.Drawing.Printing的完整实现,所以似乎最好的方法是使用GtkSharp。 我在网上找到了一些关于如何使用Gtk.PrintOperation打印文本的例子。 PrintOperation有一个事件DrawPage应该类似于PrintPage,但是我只能找到如何使用PangoSharp在这个事件中打印文本。 足够解释我所知道的,我认为问题是相当直截了当的。 我希望有人可以提供帮助,因为GtkSharp的打印没有很好的记录。 如果有更好的方法在GtkSharp之外做到这一点,我全都听见了。 非常感谢。 编辑 所以我设法打印了一些东西,然而,它始终是一个空白页面。 这是代码: var print = new PrintOperation(); print.BeginPrint += (obj, args) => { print.NPages = 1; }; print.DrawPage += (obj, args) => { PrintContext context = args.Context; Cairo.Context cr = context.CairoContext; var imageSurface = new Cairo.ImageSurface(printImage.FileName); […]

屏幕保护程序如何在Mac OS X和Linux上运行?

在Windows中,屏幕保护程序只是在system32中转储了.scr扩展名的可执行文件,它由三个交换机控制(我认为是/ p,/ c和/ s)。 屏幕保护程序如何在Mac OS X和Linux上运行? 它们在Mac OS X和Linux(Gnome,KDE,Ubuntu,或者差异在哪里)的工作方式类似,还是完全不同? 此外,它们可以用C#/ Mono开发吗?

将固定大小数组的C ++结构编组到C#中

我有一个C#struct声明如下: public struct AdvertisementData { public byte SomeId; [MarshalAs(UnmanagedType.LPArray , SizeConst = 12)] public byte[] AnArray; } 它是C ++的对应物: struct AdvertisementData { uint8_t SomeId; uint8_t AnArray[12]; }; 当我尝试将上述结构的堆栈分配实例的引用从C ++发送到C#时,我得到:“Byte []类型的结构字段不能作为LPArray编组。” 知道我做错了什么吗?

Mono和C#IOCP:这是个好主意吗?

我正在将c ++应用程序移植到在其服务器上使用IOCP的c#。 单声道处理IOCP以及Windows吗? 我会得到与c ++相当的性能,或者我应该尝试别的吗? 谢谢

C#串口问题 – 太简单失败了,但是

好吧,这应该很简单。 我正在尝试从串行设备读取字符。 这样,如果我发送一个空格字符,它会回显一串数字和EOL。 而已。 我正在使用Unity 3.3(.Net 2.0支持),而’串行端口’是一个Prolific串口转USB适配器。 顺便说一句:使用Hyperterminal,一切都很完美,所以我知道它不是驱动程序,也不是硬件。 我可以打开端口了。 看来我可以用port.Write(“”)发送我的空间; 但是,如果我甚至尝试调用ReadChar,ReadByte或ReadLine(如轮询),它会冻结,直到我拔掉USB,我的控制台输出什么也没显示(exception被捕获)。 所以我设置了一个DataReceviedHandler,但它永远不会被调用。 我读过一些人们用Arduinos等做过这类事情的post(这不是Arduino而是嘿),只使用ReadLine。 他们的代码对我不起作用(到目前为止,这些作者都没有答案)。 那么,有什么提示吗? 我需要使用不同的线程吗? 如果您知道任何Unity(Mono)编码,那么这些行的任何提示都会受到高度赞赏。 此代码来自http://plikker.com/?p=163和http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.datareceived.aspx#Y537的mashup using UnityEngine; using System.Collections; using System.IO.Ports; using System; public class SerialTest : MonoBehaviour { SerialPort stream; void Start () { try { stream = new SerialPort(“COM3”, 9600); stream.Parity = Parity.None; stream.StopBits = StopBits.One; stream.DataBits = 8; stream.Handshake […]