Articles of Windows

我正在寻找可以在graphics编辑程序中进行的任何优化

嘿哟,这是我第一次在这里问一个问题,所以如果我把事情搞得一团糟,就原谅我 我正在开发类似于openCanvas的程序,早期的程序允许多人在互联网上实时绘制相同的canvas。 OC的确很麻烦,而且有很多限制,所以我想写这个。 我已经设置了canvas,使canvas在所有方向上“无限”地延伸,并由512×512像素块组成,这些像素在被绘制之前不会变得活跃,这应该很容易制作,而且我正在考虑使用Direct3D使硬件加速,从而达到512平方块。 我的问题来了,当我想要使用图层,我不太确定如何快速构build图层,而不使用大量的内存,因为我的目标是128M内存的DirectX9兼容video卡,以及约3.2 ghz的系统的CPU的功率和2至8演出之间的RAM。 我有几种不同的方法,我正在考虑使用,并想知道哪个可能是最好的,如果有什么我可以研究,使其运行更好。 我的第一个想法是通过让所有块上的所有图层都作为纹理来使gfx硬件尽可能多地工作,并且通过locking更改的区域,在CPU上更新它们并解锁它们来更新它们。 当前未被更改的块被拼合成一个纹理,并且单独的图层本身保存在系统内存中,这将减less使用的gfx内存,但是会显着增加系统和gfx内存之间的带宽使用。 我可以看到不断的locking和解锁,可能会减慢系统的速度。 另一个可能的问题是,我听说有人使用200层,我想不出有什么好的方法来优化给定的上述。 我的另一个想法是将系统内存中的纹理完全合成,将它们写入纹理,然后将纹理复制到gfx内存以在每个块中渲染。 这似乎消除了其他方法中的很多问题,但同时我将所有工作都移到了CPU中,而不是平衡它。 但是,只要它仍然很快运行,这并不是什么大问题。 然而,再次,有几百层的问题。 在这种情况下,我可能只能更新实际上正在改变的最终像素,这是我认为像Sai和Photoshop这样的大型程序所做的。 我主要是在寻找build议,可能改善上述的build议,更好的方法,或链接到可能与这样的项目有关的文章。 当我用C ++编写它时,我从其他语言翻译没有麻烦。 谢谢你的时间〜

如何查看是否对文件或文件夹select“包含可inheritance的权限”?

我在C#编写一个小实用程序,以确保指定的文件夹及其所有内容具有适当的访问权限(我想授予Authenticated Users组完全访问权限)。 下面的代码似乎正常工作更新顶级文件夹的ACL(访问控制列表): SecurityIdentifier allUsers = new SecurityIdentifier(WellKnownSidType.AuthenticatedUserSid, null); InheritanceFlags iFlags = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit; FileSystemAccessRule newRule = new FileSystemAccessRule(allUsers, FileSystemRights.FullControl, iFlags, PropagationFlags.None, AccessControlType.Allow); DirectoryInfo info = new DirectoryInfo(folderPath); DirectorySecurity security = info.GetAccessControl(); security.AddAccessRule(newRule); info.SetAccessControl(security); 但是,我注意到,这个新的访问规则不会传播到在其安全属性中未选中“包含可inheritance权限…”选项的子文件夹。 这只是有道理的。 所以,我想要做的是打开任何这样的子文件夹的安全权限inheritance。 我的挖掘发现了ObjectSecurity.SetAccessRuleProtection方法应该是我需要的一半。 但是,在已经inheritance父类的DACL的对象上盲目地使用上述方法似乎是草率的。 因此,我想确定哪些对象的权限inheritanceclosures,但我似乎无法find相应的方法或返回此信息的属性。 有一个吗? 我在这里错过了什么?

安全地使用临时文件

在我的程序中有一个静态库,它只能把文件名作为input,而不是实际的文件内容。 对于图书馆的源代码,我无能为力。 所以我想:创build一个全新的文件,将数据存储到它中,将其刷新到磁盘(?),将其名称传递给库,然后删除它。 但我也希望这个过程相当安全: 1)文件必须重新创build,没有任何虚假的数据(也许它不是关键,但无论如何); 2)除了我的进程之外,任何人都不能读/写这个文件(我希望库能够处理我的实际数据,而不是一些聪明的插件)。 3)我完成这个文件后,它必须被删除(好的,如果有人TerminateProcess()我,我猜没有什么可以做的,但仍然)。 该库似乎使用非Unicode fopen()来打开给定的文件,所以我不太清楚如何处理所有这些,因为该程序旨在运行在Windows上。 有什么build议么?

在使用TortoiseSVN时,排除Eclipse隐藏的“.settings”目录

我使用的是TortoiseSVN客户端和Eclipse。 当我尝试提交一个Eclipse项目时,TortoiseSVN在文件列表中显示一个.settings目录,并说它是未版本化的。 `.settings'目录似乎是Eclipse为项目保留所有设置的地方。 有没有办法排除这个目录,以便TortoiseSVN完全忽略这个和其他任何Eclipse项目?

Subversion:你如何避免忘记检查内容?

在两个不同的地点,在颠覆的项目上工作的三台不同的计算机上,我曾经偶尔忘记在一个位置检查东西,这样我就不能在最新的代码上工作,当我想继续工作的时候在另一个地方。 我相信其他人也有类似的问题。 我可以做些什么来避免这个问题? 有帮助的工具? 通知我可以设置? 我在Windows7电脑上使用Visual Studio 2008和TortoiseSVN。

IPv6在编程级别的Windows

在Windows中编程级别的IPv6和IPv4有什么不同? 我们可以只将IPv4地址更改为IPV6,并保持所有其他程序相同,是否可以正常工作?

.NET Thread.Sleep是否受到DST(或系统时间)更改的影响?

我不确定Windows内核如何处理线程时间… 我正在谈论的DST和任何其他事件,影响一天在Windows上的时间框。 例如, Thread.Sleep将阻塞从零到无限毫秒的线程。 如果内核使用与一天中的时间相同的“时钟”,那么何时使用 (a)某人手动改变一天的时间,或者 (b)一些时间服务器的同步改变了一天的时间,或者 (c)夏时制开始或结束,系统已configuration为响应这两个DST事件, 等等 , 睡觉线程在任何方式受到影响? 即内核是否处理这样的事件,程序员不需要做什么? 注意 :对于非关键应用程序,这可能是一个谁在乎? 情况。 对于关键应用,知道这个问题的答案是重要的,因为有可能必须编程这样的例外条件。 谢谢 编辑:我想到了一个简单的testing,我在LINQPad 4中运行。 testing包括让线程进入睡眠状态,大约在线程进入睡眠的同时启动一个手动定时器,然后(a)将时间提前一个小时,然后进行第二个testing,将时间移回到两个小时…在这两项testing中,睡眠时间都没有受到影响。 底线:使用Thread.Sleep,不需要担心会影响一天的时间的事件。 这里是琐碎的C#代码: Int32 secondsToSleep; String seconds; Boolean inputOkay; Console.WriteLine("How many seconds?"); seconds = Console.ReadLine(); inputOkay = Int32.TryParse(seconds, out secondsToSleep); if (inputOkay) { Console.WriteLine("sleeping for {0} second(s)", secondsToSleep); Thread.Sleep(secondsToSleep * 1000); Console.WriteLine("i am awake!"); } else […]

Qt禁用Windows 10游戏栏

我有一个在Qt中开发的应用程序,使Windows 10认为它是一个游戏,并打开一个popup框,说Press the Win-key + G to open the Game bar. 这是非常无益的,因为我的申请不是游戏; 并干扰用户体验。 如何从我的应用程序代码中closures此function? 我一直无法find任何相关的文件。 提前致谢。

使用PuTTY作为本地terminal模拟器?

目前,在我的Windows机器上工作时,我使用PuTTY将SSH连接到我的Linux服务器,并使用Cygwin进行本地开发。 不幸的是,Cygwin自带的terminal仿真程序并没有达到PuTTY提供的优秀terminal仿真程序的质量。 在我看来,通过SSH将PuTTY连接到远程服务器,并在本地使用PuTTY作为Windowsshell与Cygwin系统进行交互,实际上应该没有任何概念上的区别…但是我一直无法如何做到这一点为我的生活。 这样可以使用PuTTY吗? 如果是这样,怎么样?

在Windows上configurationLogstash

我试图将日志文件提供给Windows机器上的Logstash。 我试着按照http://logstash.net/docs/1.1.13/tutorials/getting-started-simple的教程,现在卡在“继续”部分。 这就是我的logstash-simple.conf文件的样子: input { stdin { type => "stdin-type" } file { type => "syslog" # Wildcards work, here 🙂 path => [ "C:/Results/test.txt" ] } } output { stdout { } elasticsearch { embedded => true } } 我尝试了正斜杠,反斜杠等的各种组合,并得到“文件名,目录名称或卷标语法不正确。” 有小费吗? 另外 – 如果我指定C:/ Results / *(并且该目录有多个子目录),它是否会recursion地查看目录?