小编App*_*ker的帖子

为什么C#中的大多数类型都是从System.Object继承的?

我正在检查C#中的int和float类型,甚至他们有"ToString"等方法,这意味着它们是从System.Object继承的.但这不会导致性能下降吗?据我所知,由于性能的原因,他们没有像java中的int对象那样创建基类型.这个规则也不适用于.NET吗?如果确实如此,那么这意味着.NET比Java慢吗?但实际上并非如此,因为我在C#中创建的程序比我在Java中编写的程序要好.那么我有什么不明白的地方吗?

.net c# java performance object

7
推荐指数
2
解决办法
490
查看次数

使C++类继承自C Structs,推荐?

我最近做了一些Windows Api编码(仍在做).我试图找到将WNDCLASSEX包装成C++类的最佳方法,当我有这个疯狂的想法时,WNDCLASSEX是一个结构对吗?(尽管它是用c编写的)并且在C++中结构被视为类,所以为什么我不将我的WinCLass声明为WNDCLASSEX的衍生物,所以我试过:

 class WinClass : protected WNDCLASSEX
Run Code Online (Sandbox Code Playgroud)

它奏效了!然后我尝试使用它与SDL结构,但那些也有效.但是当我从它们派生类时,某些结构(特别是SDL结构)要么不编译或导致无法解释的运行时错误.所以我的问题是:推荐使用这种C结构吗?它实际上是专业人士使用的,还是只是一个蹩脚的黑客?我应该使用我的包装器还是应用程序,还是只会引入无法解释的错误?

c++ struct class

7
推荐指数
1
解决办法
1967
查看次数

内联函数导致的大小增加多少?

我最近开始制作一个GTK +的C++包装器(没什么特别的,只是将所有内容都包装到C++类中以便于开发,在内部使用)并且对于已经很慢的 Gtk +我几乎到处都使用内联函数会导致最小的性能膨胀.看看几个类函数......

class Widget : public Object
{
public: // A few sample functions. gwidget is the internal GTK+ widget.
    void Show(void) { gtk_widget_show(GTK_WIDGET(gwidget)); }
    void ShowNow(void) { gtk_widget_show_now(GTK_WIDGET(gwidget)); }
    void Hide(void) { gtk_widget_hide(GTK_WIDGET(gwidget)); }
    void ShowAll(void) { gtk_widget_show_all(GTK_WIDGET(gwidget)); }
public: // the internal Gtk+ widget.
    GtkWidget* gwidget;
};
Run Code Online (Sandbox Code Playgroud)

虽然几乎不存在性能膨胀,启动时间和内存使用情况完全相同,但文件大小却急剧增加.一个C Gtk +样本窗口生成6.5 kb,而使用我的包装器的样本窗口生成22.5 kb.所以我需要一些建议.我应该继续使用内联函数吗?我希望我的应用程序高效,我可以在文件大小上稍微妥协,就像我可以接受它,即使使用我的包装器但不是更多的6.5 kb C GTK +程序生成像400-500 kb.我不希望我的包装器生成像wxWidgets或MFC那样的巨大EXES.那么使用内联函数还是值得使用普通函数呢?

注意:我的所有函数只占用 …

c++ gtk

6
推荐指数
2
解决办法
1115
查看次数

如何用pygame播放视频?

我正在尝试让 Pygame 运行一些 mpg 视频作为我的角色扮演游戏的介绍。但它不起作用。我已阅读 pygame 文档,它说视频支持当前不稳定,我应该使用 pymedia 代替。我个人对 pymedia 搞不清楚。那么有什么方法可以用 pygame 播放视频吗?

python video pygame

5
推荐指数
1
解决办法
2946
查看次数

如何使用您的应用程序打包MONO Runtime?

我讨厌.NET程序如何让你下载.NET Framework来运行它们,所以我想用我的程序嵌入MONO Runtime.是否有任何第三方软件可以轻松完成,或者我需要手动或通过C/C++进行操作?此外,它需要多少额外的硬盘空间,这样做有什么缺点吗?

PS如果我需要用C/C++来做,你能给我一些示例代码吗?

.net c# mono portability runtime

5
推荐指数
1
解决办法
2315
查看次数

将 C++ 库移植到 C# 的最佳方法是什么?

我有一个(仅标头)C++ 库,我希望将其移植到 C#。它是我为特定目的制作的 win api 的包装器。我想将它移植到 C#,因为我想使用 C# 进一步开发它。什么是最有效(也是最简单?)的移植方式。请注意,我不想要忙碌的事情,因为我不想花更多的时间移植库而不是首先制作该库。那么有没有办法呢?

c# c++ compatibility porting

5
推荐指数
1
解决办法
479
查看次数

是否有针对SDL的C++包装器/绑定?

我对C语言中的SDL没有任何问题,但它有点累人.使用结构做没有类的东西,或者更糟糕的是,不得不自己将这些函数包装在一个类中等等.我想知道是否有一个好的,成熟的,设计良好的(即没有宏,使用模板和STL)包装器(绑定) ?)SDL?

c++ binding sdl wrapper

5
推荐指数
2
解决办法
4538
查看次数

如何用同一种语言实现一种语言比语言更快?

例如,如果我用Java创建JVM,是否有可能使我实现的实现比我用于构建此实现的原始实现更快,即使我的实现是基于原始实现构建的,甚至可能依赖于在那个实现?

(令人困惑......)

看看PyPy.它是用Python制作的Python的JIT编译器.这没关系,但是它如何声称比它正在使用并依赖于Python的原始实现更快

python performance jvm pypy language-implementation

5
推荐指数
2
解决办法
352
查看次数

什么是Windows DIB?

我只是在论坛中讨论是否有一个替代的Windows图形库到GDI和Direct X. 有人提到WinDIB.可悲的是,他没有解释更多.

现在我搜索了谷歌.

  • Windows DIB似乎没有维基百科的文章.

  • 似乎某些图形库(如SDL)使用WinDIB后端.

那究竟什么是WinDIB?它有任何文件吗?我在哪里可以了解更多信息?

c windows directx gdi dib

5
推荐指数
2
解决办法
4821
查看次数

在LINQ中只选择第一个对象?

基本上我想为LINQ调整这段代码:

private Tile CheckCollision(Tile[] tiles)
{
    foreach (var tile in tiles)
    {
        if (tile.Rectangle.IntersectsWith(Rectangle))
        {
            return tile;
        }
    }

    return null;
}
Run Code Online (Sandbox Code Playgroud)

代码检查每个图块并返回与对象发生碰撞的第一个图块.我只想要第一个瓷砖,而不是像我使用的那样我会得到的瓷砖数组:

private Tile CheckCollision(Tile[] tiles)
{
    var rtn = 
        from tile in tiles
        where tile.Rectangle.IntersectsWith(Rectangle)
        select tile;

}
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

c# linq c#-4.0

5
推荐指数
1
解决办法
3304
查看次数