我最近试图更新我的游戏以压缩格式(JPEG和PNG)存储图形.
虽然我最终选择了不同的库,但我最初的尝试是将ijg与JPEG解压缩结合起来.但是,我甚至无法使最简单的控制台应用程序工作,我想知道是否有人可能能够阐明原因.
这是我的代码,它链接到作为ijg包的一部分的jpeg.lib:
#include "stdafx.h"
#include <stdio.h>
#include <assert.h>
#include <jpeglib.h>
int _tmain(int argc, _TCHAR* argv[])
{
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
JSAMPARRAY buffer;
int row_stride;
//initialize error handling
cinfo.err = jpeg_std_error(&jerr);
//initialize the decompression
jpeg_create_decompress(&cinfo);
FILE* infile;
errno_t err = fopen_s(&infile, "..\\Sample.jpg", "rb");
assert(err == 0);
//specify the input
jpeg_stdio_src(&cinfo, infile);
//read headers
(void) jpeg_read_header(&cinfo, TRUE);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
问题是调用jpeg_read_header()失败并出现访问冲突:
JPEGTest.exe中0x7c91b1fa(ntdll.dll)的未处理异常:0xC0000005:访问冲突写入位置0x00000010.
有没有人有任何想法我可能做错了什么?
有没有人知道控制台的任何简单的.NET窗口系统?
我正在寻找管理控制台区域的东西,以便它们可以独立于其他区域自动滚动.例如,我可以在底部创建一个状态条,在其上面创建一个主内容区域.如果它为我处理颜色也会很有用.
谢谢,肯特
当一个SUT依赖多个调度程序时,使测试代码简洁而集中的最佳方法是什么?即,避免虚假调用来推进多个不同的调度程序。
到目前为止,我的技术一直是定义提供调度程序的应用程序级服务:
public interface ISchedulerService
{
IScheduler DefaultScheduler { get; }
IScheduler SynchronizationContextScheduler { get; }
IScheduler TaskPoolScheduler { get; }
// other schedulers
}
Run Code Online (Sandbox Code Playgroud)
然后,应用程序组件具有ISchedulerService注入的实例,对于需要调度程序的任何反应式管道,都可以从服务中获取。然后,测试代码可以使用的实例TestSchedulerService:
public sealed class TestSchedulerService : ISchedulerService
{
private readonly TestScheduler defaultScheduler;
private readonly TestScheduler synchronizationContextScheduler;
private readonly TestScheduler taskPoolScheduler;
// other schedulers
public TestSchedulerService()
{
this.defaultScheduler = new TestScheduler();
this.synchronizationContextScheduler = new TestScheduler();
this.taskPoolScheduler = new TestScheduler();
}
public IScheduler DefaultScheduler
{
get { return this.defaultScheduler; }
}
public IScheduler …Run Code Online (Sandbox Code Playgroud) 我正在尝试过滤DataGrid中显示的ObservableCollection.这在第一次工作得很好,但是当我尝试再次过滤时,它使用sourcecollection而不是过滤结果.短代码示例:
ICollectionView view = CollectionViewSource.GetDefaultView(myCollection);
view.Filter = delegate(object item){
User user = item as User;
if(user != null && user.Name.ToLower().Contains(textbox.Text.ToLower())) return true;
return false;
};
Run Code Online (Sandbox Code Playgroud)
所以我想要做的只是过滤我的DataGrid中显示的项目,而不是整个集合(当然第一次使用过滤器时,它将使用整个集合).
我在C#服务器应用程序中有大量的大对象.许多对象属性通常都有默认值.
是否值得尝试依赖注入来优化或减少应用程序中的内存使用量?
我点击按钮的边框背景是蓝色的,一秒钟后它应该是红色的。它是红色但不是蓝色。为什么?
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Border Width="111" Name="op" Height="111">
<Button Name="opbtn" Click="opbtn_Click" Width="50" Height="23">click</Button>
</Border>
</Window>
Run Code Online (Sandbox Code Playgroud)
代码隐藏:
private void opbtn_Click(object sender, RoutedEventArgs e)
{
op.BorderBrush = System.Windows.Media.Brushes.Blue;
DateTime obj1 = new DateTime();
DateTime obj2 = DateTime.Now.AddMilliseconds(200);
while (obj2 > obj1)
{
obj1 = DateTime.Now;
}
op.BorderBrush = System.Windows.Media.Brushes.Red;
}
Run Code Online (Sandbox Code Playgroud)