Tag: C#的

我们真的需要C ++ 11中的“枚举类”吗?

当我们有, struct E { enum E_ { HELLO }; }; // 'E' is inheritable 那为什么我们需要, enum class E { HELLO }; // 'E' is not inheritable 国际海事组织第二版不提供更多的function比第一。 我不认为引入enum class只是为了节省2个大括号{}; ! 我错过了任何重要的方面? 作为一个小问题,是除了语法之外的enum class和enum struct之间有任何区别(因为都有public访问说明符)?

在使用DateTime.ToString()时获取星期后缀

使用DateTime.ToString()格式化date时,是否可以包含date后缀? 例如,我想用以下格式打印date – 2009年7月27日星期一。但是我能够使用DateTime.ToString()find的最接近的例子是2009年7月27日星期一。 我可以用DateTime.ToString()做到这一点,或者我将不得不回到我自己的代码?

使用QtMultimedia播放自定义的AVI数据stream

我需要播放一个自定义的AVI文件,其中包含一个经典的videostream,一个audiostream, 但也是一个自定义的数据stream 。 自定义stream包含一些自定义小部件可视化的数据; 这些小部件只需要在适当的时候将每个自定义帧写入缓冲区。 我们的应用程序基于Qt,已经使用QMediaPlayer / QVideoWidget来播放传统video,但额外的自定义stream使事情变得更加复杂,因为AFAIK QMediaPlayer只播放video/audio而忽略其他所有内容。 我想避免重新创build整个qt-multimedia ,但是我不确定如何从可用的Qt类中获得最好的效果。 我到目前为止的想法是: 编写一个自定义媒体播放器类,使用ffmpeg对video进行解复用和解码,实现定时,使用QAudioOutput播放audio,生成一串QVideoFrame在video上播放,并将自定义数据写入某个缓冲区进行可视化。 问题 :为了避免编写代码来重新缩放/转换video帧,我想重复使用QVideoWidget ,但它似乎只适用于“真正的” QMediaPlayer 。 将input文件解复用并将QMediaPlayer与AVstream一起馈QMediaPlayer 。 将input与ffmpeg解复用(可能将解码保留到Qt后端),有一个QIODevice只从input文件中检索video/audiostream,而另一个则检索数据stream。 用QMediaPlayer播放video/audio。 +——-+ | QFile | +—^—+ | inherits | +——————–+ | MyAviDemuxer | | | | holds a queue of | | demuxed packets | +——————–+ | | readDataPacket readVideoPacket | | +——-v——–+ +——–v———–+ […]

枚举与constexpr实际静态常量内类

首先说明我的意图。 在古代(C ++)的日子里,我们会有这样的代码: class C { public: enum {SOME_VALUE=27}; }; 然后,我们可以在整个代码中使用SOME_VALUE作为编译时间常量,无论编译器在哪里看到C::SOME_VALUE ,它都会插入文字27。 现在,将代码更改为如下所示似乎更可接受: class C { public: static constexpr int SOME_VALUE=27; }; 这看起来更干净,给SOME_VALUE一个明确的types,似乎是C ++ 11的首选方法。 (至less对我而言)问题在于,这也会导致需要将SOME_VALUE设置为外部的场景。 也就是说,在某个cpp文件中,我们需要添加: constexpr int C::SOME_VALUE; // Now C::SOME_VALUE has external linkage 引起这种情况的情况似乎是在使用对SOME_VALUE常量引用时,这在C ++标准库代码中经常发生(参见本问题底部的示例)。 顺便说一句,我使用gcc 4.7.2作为我的编译器。 由于这个困境,我不得不回到定义SOME_VALUE作为一个枚举(即旧学校),以避免必须添加一个定义到一个cpp文件的一些,但不是我所有的静态constexpr成员variables。 是不是有一些方法来告诉编译器: constexpr int SOME_VALUE=27意味着SOME_VALUE 只能被视为编译时间常量而不会被外部连接的对象? 如果您看到使用它的const引用,请创build一个临时的。 如果你看到它的地址,那么就会产生一个编译时错误,如果这是所需要的,因为它是一个编译时间常数,而不是更多。 以下是一些看似良性的示例代码,它使我们需要在cpp文件中添加SOME_VALUE的定义(再次使用gcc 4.7.2进行testing): #include <vector> class C { […]

使用什么? Tao,SharpGL,Op​​enTK,DirectX P / Invoke,XNA,MDX,SlimDX,Windows API编解码器包

回到当天很容易, 你做了你自己的3D的东西,然后来了DirectX,然后来了OpenGL。 对于.Net开发人员来说,MDX很不错。 然后XNA接pipe了MDX,但它不一样。 XNA似乎非常以游戏为中心,所有的内容stream水线和固定模型和东西的预加载。 那么我们现在的立场呢? 经过几天的研究/试验和错误,我感到无处不在,我看到我发现一半开发的库,开销过大的库,严重的限制或过于复杂的库。 我想做“自由”3D的东西。 例如,在3D中在屏幕上显示200k点,并以30fps(Kinect深度图像)移动它们。 我想制作3D屏幕保护程序,audio分析插件等。所有这些都不是预制的内容pipe道,并且需要高性能。 (ehm)我想从.Net开始。 任何人都有图书馆的经验,很容易理解,还能给予相当的自由和速度?

我怎么能从一个.map文件graphics显示内存布局?

我的gcc构build工具链生成一个.map文件。 如何以graphics方式显示内存映射?

从C#中的接口inheritanceXML注释

我想知道是否有人知道如何将一个接口的XML注释链接到一个实现。 问题是我希望基本评论来自我的界面。 例: interface myinterface { /// <summary> /// Does something. /// </summary> void method1(string foo); } 然后执行是: public class myclass : myinterface { public void method1(string foo) { //do something… } } 所以现在如果我在实例化对象后将鼠标hover在方法上: myclass foo = new myclass(); foo.method1("do something"); 我怎样才能使评论出现在hoverpopup? 有什么方法可以将接口注释链接到实现? 我知道在Java中有一种方法,但找不到C#的解决scheme。 谢谢

在运行时更改属性的参数

我不确定是否可以在运行时更改属性的参数? 例如,在一个程序集中,我有以下类 public class UserInfo { [Category("change me!")] public int Age { get; set; } [Category("change me!")] public string Name { get; set; } } 这是由第三方供应商提供的类, 我不能更改代码 。 但是现在我发现上面的描述是不准确的,当我将上面的类的实例绑定到属性网格时,我想将“改变我”类别名称更改为别的东西。 我可以知道如何做到这一点?

有C#的CSSparsing器吗?

我的程序需要将css文件parsing为内存中的对象格式。 任何build议如何做到这一点?

如何在Android NDK和STLport中使用boost库(包括shared_ptr)

这不仅仅是一个答案,而是一个问题,因为我已经弄明白了,至less就整个库的编译而言。 主要的问题是让shared_ptr工作。 配料: Boost v。1.45.0 STLport的版本在http://www.anddev.org/viewtopic.php?p=29939 。 NDK的版本r4b。 路线: 在你的Android.mk文件中添加: LOCAL_CFLAGS += -DBOOST_EXCEPTION_DISABLE -D_STLP_NO_EXCEPTIONS -DOS_ANDROID -D_STLP_USE_SIMPLE_NODE_ALLOC 在stlport / stl / _string.h的第613行删除对__stl_throw_length_error的调用。 如果你喜欢,你可以使用_STLP_NO_EXCEPTIONS。 在第261行后面编辑boost / boost / smart_ptr / shared_ptr.hpp,以免在shared_ptr构造函数中调用boost :: throw_exception。 我在方法的整个主体周围使用了#ifndef BOOST_EXCEPTION_DISABLE。 (但请参阅下面的答案。) 接下来,你需要提供一些缺失的部分。 使用以下命令创build一个头文件: #ifdef OS_ANDROID #include <exception> namespace std { struct bad_alloc : public exception { bad_alloc operator()(){}}; } #endif 和一个带有精简exception类的源文件来支持bad_alloc: #ifdef […]