jjzjj

default-copy-constructor

全部标签

c++ - 跨进程 COM 编码(marshal)拆收器 : reduce number of copies for large arrays

作为简化的案例:我需要通过现有的COM接口(interface)将VARIANT传输到另一个进程。我目前使用MIDL生成的编码器。实际传输是针对许多值的,是时间关键过程的一部分,并且可能涉及大字符串或safearray(几MB),因此复制的数量似乎是相关的。由于接收方需要“保留”函数调用之外的数据,因此编码(marshal)拆收器至少需要制作一份拷贝。然而,我能想到的所有签名都包括两份:SetValue([in]VARIANT)GetValue([out]VARIANT*)//calledbyreceiver在这两种情况下,根据我的理解,编码器制作了一个跨进程拷贝,但确实被编码器销毁了

c++ - CMake 构建后步骤 : copy multiple files dependent on visual studio configuration

我正在尝试编写一个CMakeLists.txt,它作为构建后事件所需的dll从外部库复制到构建后可执行文件所在的文件夹.我正在使用的操作系统是Win7和VS2010。有很多外部库,所以我不想在CMakeLists.txt中单独列出它们。我当前的解决方案是使用文件通配并为每个库创建一个构建后事件:FILE(GLOBfiles"${LIBRARY_DIR}/lib/$(ConfigurationName)/*dll")MESSAGE("FILELISTIS:${files}")FOREACH(file${files})ADD_CUSTOM_COMMAND(TARGETmylibPOST_B

c# - 如何绕过 Marshal.Copy(32 位)长度限制?

我正在尝试在托管(C#)和非托管(C++Win32)代码之间来回移动数据。我可以使用Marshal.Copy它工作正常,直到数据集变大>2GB因为Marshal.Copy有一个带符号的32位int(2GB)长度限制。知道如何解决这个问题吗?目前,我在托管端使用AllocHGlobal(IntPtr),在非托管端使用.ToPointer()。如果我不能使用Marshal.Copy来回移动大数据(>2GB)我可以使用什么? 最佳答案 我的第一react是:为什么要复制2GB以上的数据?也许您的应用程序约束不允许这样做,但在我看来,如果您

c# - Visual Studio - 继承控件的新 "default"属性值

我正在寻求有关在VisualStudio中为继承控件设置新的默认属性值的帮助:classNewCombo:System.Windows.Forms.ComboBox{publicNewCombo(){DropDownItems=50;}}问题是基类属性DropDownItems设置了一个不同值(不是50)的“默认”属性。因此,当我将控件拖到窗体上时,设计器文件会得到一个明确的mycontrol.DropDownItems=50;行。起初,这并不重要。但是,如果稍后我在构造函数中将继承的类更改为DropDownItems=45;,这不会影响任何表单上的任何控件,因为所有这些设计器文件仍然

c# - 是否可以在不强制转换的情况下在 C# 中实现 "virtual constructor"模式?

我正在编写一个由C#编写的程序,该程序最终会被编译成一个应用程序。我希望每个生成的类型都提供一个“深度克隆”功能来复制整个数据树。也就是说,我希望有人能够做到:varx=newBase();//BasehaspublicvirtualBaseDeepClone(){...}vary=newDerived();//DerivedoverridesDeepCloneBasea=x.DeepClone();Baseb=y.DeepClone();//Derivedc=x.DeepClone();//ShouldnotcompileDerivedd=y.DeepClone();//Doesno

c# - 使用 JsonConverter 的 Json.NET 自定义序列化 - 如何获得 "default"行为

我的类DataType有一个JsonConverter。当在Json中使用纯字符串作为DataType类型的属性值时,我想做一些特殊处理。在值是“完整”对象的情况下,我想进行“正常”反序列化。这是我的尝试publicoverrideobjectReadJson(JsonReaderreader,TypeobjectType,objectexistingValue,JsonSerializerserializer){if(reader.Value!=null&&reader.ValueType==typeof(string)){returnsomeSpecialDataTypeInsta

c# - Web Api 请求抛出 "Error while copying content to a stream."

我正在尝试实现这个codeexample,但得到一个HttpRequestException-“将内容复制到流时出错。”当调用ReadAsStringAsync()方法时。内部异常是“无法访问已处置的对象”。我正在使用Fiddler来发出请求。我不明白。有人可以解释为什么我会收到此异常并提供解决方案吗?网络API方法:publicasyncTaskPost(HttpRequestMessagerequest){try{varjsonString=awaitrequest.Content.ReadAsStringAsync();}catch(Exceptionex){throw;}ret

c# - Visual C# 2010 速成版 : Specify default access modifier for new classes?

每当我使用VisualStudio2010ExpressC#创建新类时,它都会创建没有访问修饰符的新类。10次中有9次我希望我的新类(class)公开。如何让VisualStudio默认使用“public”修饰符创建空类模板? 最佳答案 诀窍是创建一个名为Class的新项模板。然后,当您执行“添加”>“新建类”时,默认情况下将选择您的模板,而不是内置的类模板。(我不确定这种行为是否得到保证,但它可以在我的机器上运行(TM)。)创建模板:右键单击您的项目并选择“添加”>“类”。您可以接受默认名称(Class1)-这只是一个临时文件。修

c# - 设置 "Always copy to output directory"时,Content 和 None 有什么区别?

在csproj文件中,我们可以使用None或Content元素包含一个文件。来自MSDN,它说:None-Thefileisnotincludedintheprojectoutputgroupandisnotcompiledinthebuildprocess.Anexampleisatextfilethatcontainsdocumentation,suchasaReadmefile.Content-Thefileisnotcompiled,butisincludedintheContentoutputgroup.Forexample,thissettingisthedefaultva

c# - Settings.Default.<property> 始终返回默认值而不是持久存储(XML 文件)中的值

我最近用C#(.Net2.0)编写了一个DLL,其中包含一个需要IP地址的类。我的一位同事更改了类以从“.dll.config”(XML)文件中检索IP——这显然是由他创建的“应用程序设置”文件(Settings1.settings)自动生成的。这样做的好处是允许最终用户随意更改XML/config文件中的IP地址。不幸的是,当我从树中checkout他的代码并尝试编译(或使用)这个新代码时,任何调用这个DLL的应用程序只获得默认值,而不是文件中的值。调用配置文件的构造函数如下所示:publicclassform:System.Windows.Forms.Form{publicform