marshal

Controling Volume Mixer

匿名 (未验证) 提交于 2019-12-03 07:50:05
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I want to control other application volume(firefox). i can do it with Volume Mixer What is the libraries of the Volume Mixer ? 回答1: Here is a sample C# Console Application that does it. It's based on the Windows Core Audio Library . It works only on Windows 7 and higher. using System; using System.Runtime.InteropServices; using System.Collections.Generic; namespace SetAppVolumne { class Program { static void Main(string[] args) { const string app = "Mozilla Firefox"; foreach (string name in EnumerateApplications()) { Console.WriteLine("name:

C# Excel Interop : Excel process remains in memory until parent form closed

匿名 (未验证) 提交于 2019-12-03 03:06:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: In my form I am doing something as simple as private void btnPrintPickList_Click(object sender, EventArgs e) { using (var salesRpt = new SalesOrder(CurrentItem())) { salesRpt.CreateSpreadSheet(); salesRpt.Dispose(); } } I have followed the "no 2 dots rule for excel interop". protected ExcelSheet(bool documentVisible, XlPageOrientation orientation) { ExcelApplication = new Application {Visible = documentVisible}; WorkBooks = ExcelApplication.Workbooks; WorkBook = WorkBooks.Add(XlSheetType.xlWorksheet); SheetList = WorkBook.Worksheets;

JAXB marshalling XMPP stanzas

匿名 (未验证) 提交于 2019-12-03 02:01:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: I am trying to marshall a message using the following snippet: JAXBContext jContext = JAXBContext . newInstance ( Iq . class ); Marshaller m = newJAXBContext . createMarshaller (); m . setProperty ( Marshaller . JAXB_FRAGMENT , Boolean . TRUE ); m . setProperty ( Marshaller . JAXB_FORMATTED_OUTPUT , true ); Bind bind = new Bind (); bind . setResource ( "resource" ); Iq iq = new Iq (); iq . setId ( iqId ); iq . setType ( "set" ); iq . getAnies (). add ( bind ); ByteArrayOutputStream baos = new ByteArrayOutputStream (); m . marshal (

[C#]快速将字符串转换为结构

匿名 (未验证) 提交于 2019-12-02 23:57:01
[C#]快速将字符串转换为结构 看到MSDN上请问将一个字符串copy到一个结构中最快的方式为何?这篇的发问,做些纪录: 要将字符串快速转换为结构,首先我们必须要在结构上加些Attribute,像是设定每个字段所占用的型态、大小...等: 在转换时先透过Marshal.StringToBSTR将字符串转为指针,再透过Marshal.PtrToStructure将指针转换为指定的结构型态,最后再用Marshal.FreeBSTR把刚刚的指针位置给释放掉就可以了: 完整范例如下: 运行后可以发现abcdefgh2223333字符串会依照我们在结构字段所设定的长度自动填入: Link How to copy a String into a struct using C# 请问将一个字符串copy到一个结构中最快的方式为何? 原文: 大专栏 [C#]快速将字符串转换为结构 来源:博客园 作者: wellwill 链接:https://www.cnblogs.com/petewell/p/11457663.html

python中ValueError: bad marshal data (unknown type code) python

匿名 (未验证) 提交于 2019-12-02 22:56:40
我在安装python的matplotlib的第三方库时,出现了 这样的错误: 我是在pycharm软件中的settings里面直接安装的,这时报错了,后来我把matplotlib删除了,又在电脑的黑屏终端 用命令:pip install matplotlib直接安装的。就能成功运行了; 所以以后安装任何的第三方库尽量不要在settings里面安装。 文章来源: python中ValueError: bad marshal data (unknown type code) python

C# 快速释放内存的大数组

匿名 (未验证) 提交于 2019-12-02 22:10:10
本文告诉大家如何使用 Marshal 做出可以快速释放内存的大数组。 最近在做 3D ,需要不断申请一段大内存数组,然后就释放他,但是 C# 对于大内存不是立刻释放,所以就存在一定的性能问题。 在博客园看到了一位大神使用 Marshal 做出快速申请的大数组,于是我就学他的方法来弄一个。本文告诉大家这个类是如何使用 在使用的时候,先来看下原来的 C# 的大数组性能。可以看到在不停gc,性能不好 static void Main(string[] args) { for (int i = 0; i < 10000; i++) { Foo(); } Console.ReadKey(); } private static void Foo() { var foo = new byte[1000000000]; } 在使用 Marshal 之前需要知道这是什么,其实 Marshal 就是一个提供 COM 互操作的方法。 下面使用一个快速申请 int 数组来告诉大家如何使用。 是否还记得 C 的申请数组?其实下面的方法和 C 的相同 int n = 100000;//长度 IntPtr buffer = Marshal.AllocHGlobal(sizeof(int) * n); 这时就可以使用 buffer 作为数组 下面对他的第 k 个元素修改 IntPtr buffer =

C#中USB转串口的拔插捕获

匿名 (未验证) 提交于 2019-12-02 22:06:11
// usb消息定义 public const int WM_DEVICE_CHANGE = 0x219; public const int DBT_DEVICEARRIVAL = 0x8000; public const int DBT_DEVICE_REMOVE_COMPLETE = 0x8004; public const UInt32 DBT_DEVTYP_PORT = 0x00000003; [StructLayout(LayoutKind.Sequential)] struct DEV_BROADCAST_HDR { public UInt32 dbch_size; public UInt32 dbch_devicetype; public UInt32 dbch_reserved; } [StructLayout(LayoutKind.Sequential)] protected struct DEV_BROADCAST_PORT_Fixed { public uint dbcp_size; public uint dbcp_devicetype; public uint dbcp_reserved; // Variable?length field dbcp_name is declared here in the C header file. } ///

Python模块学习 ---- pickle, cPickle 对象序列化/反序列化

那年仲夏 提交于 2019-12-02 16:44:44
上次学习过marshal模块用于序列化和反序列化,但marshal的功能比较薄弱,只支持部分内置数据类型的序列化/反序列化,对于用户自定义的类型就无能为力,同时marshal不支持自引用(递归引用)的对象的序列化。所以直接使用marshal来序列化/反序列化可能不是很方便。还好,python标准库提供了功能更加强大且更加安全的pickle和cPickle模块。   cPickle模块是使用C语言实现的,所以在运行效率上比pickle要高。但是cPickle模块中定义的类型不能被继承(其实大多数时候,我们不需要从这些类型中继承。)。cPickle和pickle的序列化/反序列化规则是一样的,我们可以使用pickle序列化一个对象,然后使用cPickle来反序列化。同时,这两个模块在处理自引用类型时会变得更加“聪明”,它不会无限制的递归序列化自引用对象,对于同一对象的多次引用,它只会序列化一次。例如: 1 import marshal , pickle 2 3 list = [ 1 ] 4 list . append ( list ) 5 byt1 = marshal . dumps ( list ) # 出错, 无限制的递归序列化 6 byt2 = pickle . dumps ( list ) # No problem pickle的序列化规则   Python规范(Python

二进制协议gob和msgpack介绍

ぐ巨炮叔叔 提交于 2019-12-02 10:54:10
二进制协议gob和msgpack介绍 本文主要介绍二进制协议gob及msgpack的基本使用。 最近在写一个gin框架的session服务时遇到了一个问题,Go语言中的json包在序列化空接口存放的数字类型(整型、浮点型等)都序列化成float64类型。 我们构造一个结构体如下: type s struct { data map[string]interface{} } json序列化的问题 func jsonDemo() { var s1 = s{ data: make(map[string]interface{}, 8), } s1.data["count"] = 1 ret, err := json.Marshal(s1.data) if err != nil { fmt.Println("marshal failed", err) } fmt.Printf("%#v\n", string(ret)) var s2 = s{ data: make(map[string]interface{}, 8), } err = json.Unmarshal(ret, &s2.data) if err != nil { fmt.Println("unmarshal failed", err) } fmt.Println(s2) for _, v := range s2.data {

一个Marshal.Copy的问题

白昼怎懂夜的黑 提交于 2019-12-01 12:03:19
首先介绍下这个问题的背景,是来自很久前一个同事问我请教的问题,当时我也没搞清楚,还去88上问了下。现在我有些空余时间,在88上有看到了自己的提问,想想有必要研究清楚这个问题到底是怎么回事。     其次我要对中文MSDN的文档表达以下不满,正是由于MSDN的中文文档对这个函数的介绍的语义比较模糊,不精确,才导致我当时无法理解清楚这个函数的设计用意和用途是什么。     第三,我要顺便鄙视下.net的PInvoke和marshal机制,应该说用.net托管代码去调用非托管DLL,简直比单纯使用C/C++更痛苦。所以所有使用.net的同志,希望你有好运气,你一直不需要调用非托管代码!否则.net在内存上的模糊不清,和托管环境和native code之间的内存数据封送,一定会让你感到十分气恼,你需要控制那些你平时根本无法把握也不必了解的数据的内存布局,这根本就不是.net 想给予程序员的能力!     现在就来看下这是个什么问题:有下面这样一些代码,这些代码是什么意思? IntPtr[] ptArray = new IntPtr[ 1]; ptArray[ 0] = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(TAX_ITEM)) * 6); IntPtr pt = Marshal.AllocHGlobal(Marshal.SizeOf