我怎样才能使用NSLevelIndicator?我对此非常陌生,所以我对如何在我的应用程序中使用进度条知之甚少.
cocoa appkit nsprogressindicator nslevelindicator progress-bar
实体关系是否有标准(非图形)表示法?
现在我正在使用我自己的janky表示法:
通过Stack Overflow上的现有单元测试相关线程读取,我找不到一个有关如何单元测试文件I/O操作的明确答案.我最近才开始研究单元测试,之前已经意识到了这些优点,但是很难习惯先编写测试.我已经设置了我的项目来使用NUnit和Rhino Mocks,虽然我理解它们背后的概念,但我在理解如何使用模拟对象方面遇到了一些麻烦.
具体来说,我有两个问题需要回答.首先,单元测试文件I/O操作的正确方法是什么?其次,在我尝试学习单元测试时,我遇到了依赖注入.在Ninject设置和工作之后,我想知道我是否应该在单元测试中使用DI,或者直接实例化对象.
我有一个网站,我需要制作一些彩色图像,不透明度为45%,这样你就可以看到背景.我的问题是,由于显而易见的原因,我不能使用.png.我用过gif.当我在网站上获得它时,不透明度已经读取了颜色,但你无法看透它.我该如何实现这一目标
编辑
如果我不需要,我不想使用IE6黑客.据我所知,没有可扩展的黑客攻击.
在线提供的大多数资源都已过时.具体来说,它们都是关于与DirectX 9匹配的OpenGL 2.
当前规范是3.2,它与DirectX 10(11)等效(或者,非常接近).但规范本身很难阅读.相比之下,DirectX SDK是一个很棒的文档,示例和工具.
我可以在哪里获得OpenGL的编程指南,那是不是已经过时了?我在哪里可以获得样品?等等.
SWIG 文档解释了 C 中的各种输入类型,如下所示:
void spam1(Foo *x); // Pass by pointer
void spam2(Foo &x); // Pass by reference
void spam3(Foo x); // Pass by value
void spam4(Foo x[]); // Array of objects
Run Code Online (Sandbox Code Playgroud)
...在 Java 中都将采用单一类型的参数,如下所示:
Foo f = new Foo(); // Create a Foo
example.spam1(f); // Ok. Pointer
example.spam2(f); // Ok. Reference
example.spam3(f); // Ok. Value.
example.spam4(f); // Ok. Array (1 element)
Run Code Online (Sandbox Code Playgroud)
类似地,对于 C 中的返回类型:
Foo *spam5();
Foo &spam6();
Foo spam7();
Run Code Online (Sandbox Code Playgroud)
...所有三个函数都将返回一个指向某个 Foo 对象的指针,该对象将分配给一个 Java 对象变量,最后一个需要分配一个值类型,Java 垃圾收集将在释放时处理该值类型。
但是假设 spam5() 返回一个指向数组的指针。在 …
相关:
我应该在我的应用程序中包含命令行模式吗?
如何获取父进程标准输出?
控制台应用程序可以检测它是否已从资源管理器运行?
我想构建一个控制台应用程序,通常从命令行运行.
但是,当它从资源管理器中双击(而不是从cmd.exe提示符运行)时,我希望该程序不显示控制台窗口.
我想避免这个:
替代文字http://i36.tinypic.com/1088p5s.jpg
可能吗?
编辑我想另一种问题是,程序是否有可能知道它是如何被调用的 - 无论是通过双击还是通过命令行?
我在Windows上使用.NET.
编辑2:从这篇Old New Thing博客文章中我学到了一些好东西.这就是我现在所知道的......
在Windows中,EXE文件标记为GUI或非GUI.使用csc.exe,可以使用/target:winexe或选择它/target:exe.在执行流程中的第一条指令之前,Windows内核会设置执行环境.此时,如果EXE标记为GUI,则内核将进程的stdin/stdout设置为NULL,如果非GUI(命令行),则内核创建控制台并将进程的stdin/stdout设置为安慰.
启动进程时,如果没有stdin/stdout(== /target:winexe),则立即返回调用.因此,从cmd.exe启动gui应用程序,您将立即返回cmd提示符.如果存在stdin/stdout,并且从cmd.exe运行,则父cmd.exe将等待进程退出.
"立即返回"很重要,因为如果您编写GUI应用程序以附加到其父控制台,您将能够执行console.writeline等.但cmd.exe提示是活动的.用户可以键入新命令,启动新进程等.换句话说,从winexe,只需附加到父控制台,AttachConsole(-1)不会"变成"控制台应用程序.
此时我认为允许应用程序使用控制台的唯一方法是从cmd.exe调用它,而不是在双击时使用它,就是将exe定义为常规控制台exe(/target:exe),并且如果合适,在启动时隐藏窗口.您仍然会暂时显示控制台窗口.
我仍然没有想过如何知道它是从explorer或cmd.exe启动的,但我越来越近了..
解答
无法构建不显示控制台窗口的控制台应用程序.
这是可能的构建非常迅速隐藏其窗口控制台应用程序,但不能如此之快,这是因为如果从来没有出现的窗口.
现在,为了确定是否从资源管理器启动了一个控制台应用程序,有些人建议查看它正在运行的控制台
(来自mgb的答案和知识库文章99115):
int left = Console.CursorLeft;
int top = Console.CursorTop;
bool ProcessWasRunFromExplorer = (left==0 && top==0);
Run Code Online (Sandbox Code Playgroud)
这告诉您该进程是否在其自己的控制台中启动,而不是它是否是资源管理器.在资源管理器中双击可以执行此操作,但是应用程序内的Start.Process()也会执行相同的操作.
如果要以不同方式处理这些情况,请使用此方法来了解父进程的名称:
System.Console.WriteLine("Process id: {0}", Process.GetCurrentProcess().Id);
string name = Process.GetCurrentProcess().ProcessName ;
System.Console.WriteLine("Process name: {0}", …Run Code Online (Sandbox Code Playgroud) 假设我有一个带有视图助手方法的东西资源,例如:
module ThingsHelper
def foo
ret = ""
3.times { ret += content_tag(:li, "foo") }
content_tag(:ul, ret)
end
end
Run Code Online (Sandbox Code Playgroud)
然后,在模板中使用它:
%p
= foo
Run Code Online (Sandbox Code Playgroud)
生成的HTML源代码如下所示:
<!DOCTYPE html>
<html>
<head>
<title>Foo</title>
</head>
</html>
<body>
<p>
<ul><li>foo</li><li>foo</li><li>foo</li></ul>
</p>
</body>
Run Code Online (Sandbox Code Playgroud)
如您所见,辅助输出不会缩进为其余代码.有什么方法可以解决这个问题?
如果我有两个类型字符串列表(或任何其他类型),加入这两个列表的快速方法是什么?
订单应该保持不变.应删除重复项(尽管两个链接中的每个项都是唯一的).我在google搜索时并没有发现太多,并且不想实现任何.NET接口以提高传输速度.