小编ian*_*ano的帖子

Xcode是否支持区域?

Xcode是否支持任何类似于Visual Studio样式#region指令的任意代码折叠?

xcode objective-c code-folding

35
推荐指数
2
解决办法
2万
查看次数

在循环中使用NUnit Assert时,如何在错误消息中显示更多信息?

请考虑以下代码:

[Test]
public void WidgetTest()
{
    foreach (Widget widget in widgets)
    {
        Assert.AreEqual(0, widget.SomeValue);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果其中一个断言失败,我将得到一个非常无用的错误消息,如下所示:

1) Test Failure : WidgetTest.TestSomeValue
  Expected: 0
  But was:  1

at WidgetTest.TestSomeValue()
Run Code Online (Sandbox Code Playgroud)

所以,问题是,如何让NUnit显示更多有用的信息,例如小部件的名称,或循环的迭代等?即使行号也会更有帮助,因为这是以自动方式运行的,我希望能够在不调试代码的情况下发现失败的断言.

c# nunit unit-testing assert

11
推荐指数
1
解决办法
4754
查看次数

透明位图上的抗锯齿文本

我想在透明位图上绘制抗锯齿文本,并将抗锯齿绘制为alpha混合像素.这样,我可以将位图绘制到任何颜色表面(或图像,就此而言),并且抗锯齿仍然看起来很好.

以下是显示问题的简化示例:

protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);
    Bitmap bitmap = new Bitmap(this.Width, this.Height);
    Graphics g = Graphics.FromImage(bitmap);
    g.Clear(Color.Empty);
    g.DrawString("hello world", new Font(this.Font.FontFamily, 24), Brushes.Blue, new Point(50, 50));
    e.Graphics.DrawImage(bitmap, new Point(0, 0));
}
Run Code Online (Sandbox Code Playgroud)

这是结果:

alt text http://img194.imageshack.us/img194/9065/captureotd.png

最终目标是使用UpdateLayeredWindow绘制透明的alpha混合窗口.我正在创建一个类似Conky的应用程序,我希望能够使用ClearType渲染文本(当然,这很容易,没有抗锯齿).

目前,我抓住表单后面的屏幕,绘制它,然后绘制我的文本.它看起来不错,但必须更新并且绘制缓慢.在桌面上完成绘图文本的任何其他想法也将受到欢迎.

c# gdi+ alphablending winforms

9
推荐指数
1
解决办法
6322
查看次数

BOOST_CHECK_CLOSE_FRACTION出现问题

我正在使用Boost :: Test库,我正在尝试检查实际百分比值是否接近预期值:

BOOST_CHECK_CLOSE_FRACTION(
    items[i].ExpectedPercent,
    items[i].ActualCount / totalCount,
    0.05);
Run Code Online (Sandbox Code Playgroud)

由于某些原因,即使值足够接近,此检查也会失败:

difference between items[i].ExpectedPercent{0.40000000000000002}
   and items[i].ActualCount / totalReturned{0.42999999999999999}
                                    exceeds 0.050000000000000003
Run Code Online (Sandbox Code Playgroud)

这是Boost的问题还是我使用Boost的问题?

c++ boost boost-test

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

为什么Visual C++接口不能包含运算符?

根据__interface上MSDN doc,Visual C++接口"不能包含构造函数,析构函数或运算符".

为什么接口不能包含运算符?返回引用的get方法之间有多大区别:

SomeType& Get(WORD wIndex);
Run Code Online (Sandbox Code Playgroud)

和重载的索引器操作符?

SomeType& operator[](WORD wIndex);
Run Code Online (Sandbox Code Playgroud)

c++ interface operator-overloading visual-c++

4
推荐指数
1
解决办法
747
查看次数

在没有new []的情况下分配Derived数组:指向Base vtable的指针很糟糕

基本上,我有一个纯虚拟类Base,以及一个继承自Base的具体类Derived.然后我分配一块内存并通过简单的转换将其视为Derived数组.然后,我使用=填充数组.最后,我循环遍历数组,尝试调用在Base中声明并在Derived中定义的虚方法GetIndex.

问题是我最终得到一个访问冲突异常试图读取指向vtable for Base的指针(在Visual Studio调试中,这显示为__vfptr,它始终是0xbaadf00d).

以下是我遇到的问题的一个简单示例:

#include "stdafx.h"
#include "windows.h"

struct Base
{
    virtual int GetIndex() const = 0;
};

struct Derived : public Base
{
    int index;

    Derived()
    {
        static int test = 0;
        index = test++;
    }

    int GetIndex() const
    {
        return index;
    }
};

int _tmain(int argc, _TCHAR* argv[])
{
    int count = 4;
    // Also fails with malloc
    Derived* pDerived = (Derived*)HeapAlloc(GetProcessHeap(), 0, sizeof(Derived) * count);

    for (int i = 0; i < count; i++)
    { …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance vtable dynamic-memory-allocation

0
推荐指数
1
解决办法
584
查看次数