我从PDF规范中获取了PDF规范中的最小PDF示例,将其复制到NotePad,将文件重命名为扩展名.pdf.
我可以用其他PDF查看器打开它(PDF-XChange,SumatraPDF,MuPDF).但是当我用Adobe Reader打开它时,它说文件坏了.
我不确定其他观众是否将此"损坏"的文件视为空白文件.
该文件应该显示一个空白页面,因为它是一个最小的例子.
实际上,我修改了最小的例子.因为当我将它从PDF规范复制到记事本,并通过十六进制编辑器打开.txt文件时,我在.txt文件中看到一个新行给我2个空格.例如,
1 0 obj
<< /Type /Catalog
Run Code Online (Sandbox Code Playgroud)
给我(在十六进制编辑器中)
1 0 obj << /Type /Catalog
Run Code Online (Sandbox Code Playgroud)
是(十六进制值)
31 20 30 20 6F 62 6A 0D 0A 3C 3C 20 2F 54 79 70
65 20 2F 43 61 74 61 6C 6F 67
Run Code Online (Sandbox Code Playgroud)
之间的2个空格j和<是0D 0A.
因此,我不在NotePad中创建新行,并修改部件中的值xref.
以下是完整的代码.
你知道这个例子有什么问题吗?为什么Adobe Reader说它坏了?这是因为我给出了错误的价值xref吗?
%PDF-1.4 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages …Run Code Online (Sandbox Code Playgroud) 我创建了一个窗口,其句柄是handle_parent。然后我创建了一个子窗口,如下所示:
hwnd_child = CreateWindow(child_class_name, _T(""),
WS_CHILDWINDOW, 0, 0, 0, 0, hwnd_parent, (HMENU)0, ghinst, NULL);
ShowWindow(win->hwndSplitterBar, SW_SHOW);
UpdateWindow(win->hwndSplitterBar);
Run Code Online (Sandbox Code Playgroud)
我想设置子窗口“child”的颜色。如果我什么都不做,默认颜色是灰色的。我怎样才能设置它的颜色?我想永久保持黑色,无论如何都要改变。
我刚学到以下事实:
前缀增量(++ var_name)的结果是C中的R值(至少,我确信它不是C中的L值),但它是C++中的L值.
后缀增量(var_name ++)的结果是C中的R值(至少,我确信它不是C中的L值).在C++中也是如此(它说结果是prvalue).
我在VS2010(.cpp和.c)和Ubuntu(gcc和g ++)中检查了这些.
在C++标准的第109页(5.3.2)http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf,它被写入
前缀++的操作数通过添加1来修改,或者如果它是bool则设置为true(不推荐使用此用法).操作数应是可修改的左值.操作数的类型应为算术类型或指向完全定义的对象类型的指针.结果是更新的操作数; 它是一个左值,而且......
在第101页,(5.2.6)
后缀++表达式的值是其操作数的值....... 结果是一个prvalue.结果的类型是操作数类型的cv-nonqualified版本.另见5.7和5.17.
(我不知道R值和prvalue之间的区别).
至于C标准http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf,前缀++在6.5.3.1中描述,后缀在6.5.2.4中,但是来自说明,我无法得到明确,明确的答案.
我想知道使它们成为R值或L值的原因.我只知道的是
We can assign a value to a (modifiable) L-value, for example, a variable name. R-value is a value of an expression.
但我不知道为什么postfix ++不是C和C++中的L值,以及为什么前缀++不在C中.(我看到类似"postfix ++ ... store ... in"的内容一个临时地址,然后...",但我仍然没有得到它.
另一个问题是为什么前缀++在C和C++中有所不同?使前缀++成为L值(用C++)有很多优点吗?如果是这样,为什么C不改变这个?(除了向后兼容性之外的其他原因,或者至少为什么更改它会导致很多问题).
我想将文本颜色更改为亮绿色(#66FF00),但保留gnome-terminal的默认背景颜色(即:"使用系统主题颜色").我可以自定义文本颜色,但在这种情况下,我仍然需要自己指定背景.所以我想知道gnome-terminal默认背景颜色的RGB颜色是什么(在Ubuntu 10.04中),我可以在哪里找到这个值.谢谢.
我知道可以使用SetWindowLongPtr + GWLP_USERDATA来存储指向某些数据的指针.但是可以直接存储数据,例如"一个句柄","一个bool,一个"int"或其他更大的数据.
来自http://msdn.microsoft.com/zh-tw/library/windows/desktop/ms644898%28v=vs.85%29.aspx,它说:
设置应用程序专用的新额外信息,例如句柄或指针.
,所以我猜存储一个句柄就可以了.我也使用这种方法存储RGB值没有问题.但我不知道做这样的事情是不是一个好主意.我们可以存储其他大的数据(例如结构)吗?
ps:这个问题的动机是:当我创建一个对话框窗口时,我想存储每个控件的数据.当然我可以在窗口过程中使用静态变量并将指针(对它们)传递给SetWindowLongPtr函数.但这在理论上并不"完美",因为当对话窗口关闭时,我不再需要这些数据了.当然,在实践中,我需要使用的数据非常小,我不应该关心内存的使用.但我仍然想知道是否有更好的方法.
我尝试将热键定义如下
(global-set-key [(control shift up)] 'other-window)
Run Code Online (Sandbox Code Playgroud)
但它不起作用(没有错误,只是不起作用),也没有
(global-set-key [(control shift down)] 'other-window)
Run Code Online (Sandbox Code Playgroud)
但
(global-set-key [(control shift right)] 'other-window)
Run Code Online (Sandbox Code Playgroud)
和
(global-set-key [(control shift left)] 'other-window)
Run Code Online (Sandbox Code Playgroud)
工作!
但是因为emacs使用了最后两个键组合(默认情况下),所以我不想为其他功能更改它们.
那我怎么能做control-shift-up和control-shift-down工作?
我用谷歌搜索"(控制升档)",它似乎control-shift-up被其他人使用,(但结果不是很少).
....
Simple is better than complex.
....
Run Code Online (Sandbox Code Playgroud)
那么为什么它使用双引号" "和单引号' '来表示某些字符串文字.
输入时我迷路了:
x = "aa"
x
Run Code Online (Sandbox Code Playgroud)
并看到:
'aa'
Run Code Online (Sandbox Code Playgroud)
但不是:
"aa"
Run Code Online (Sandbox Code Playgroud)
当我看到上述哲学时,我怀疑它.它需要一些解释.
我尝试使用Owner-Draw菜单.我无法解决的唯一问题是我不知道如何实现(或启用?)菜单加速键(下划线).我使用的是Win32,我关心的是主菜单,而不是子菜单.当我使用Owner-Draw菜单时,如何实现或启用下划线?
ps菜单加速键是带下划线的字母,当用户按Alt键访问菜单项时使用.它由诸如Save&As之类的&字符创建.
在"C Primer Plus 5/e"一书中,我看到作者写道:
C标准规定浮子必须能够代表至少6个有效数字并且允许至少
10^(-37)为 1的范围10^(+37).
但是为了这样做并同时使用自然大小,它将需要4个字节.所以事实上,人们的范围可以从10 ^( - 63)到10 ^(+ 63),参见
http://en.wikipedia.org/wiki/Floating_point#Internal_representation
所以我在脑海中提出了一个问题:为什么C标准选择范围的要求at least 10^(-37) to 10^(+37).当然,可能需要考虑计算速度.但除此之外,有没有理由不使用完整的32位空间?
虽然我们在互联网上有很多资源,但有时它并不能如我们所愿。有没有关于使用winapi进行GUI设计的好书?事实上,我需要有一个带有几个子窗口的主窗口。
我想创建一个小实用程序'ColorPic',下面是它的图片.
实际上,我可以获得光标所在像素的RGB.
但我想创建一个窗口,将"打印"部分屏幕(靠近光标)放入此窗口.
最重要的是我需要一个放大和缩小的选项,这意味着我可以通过4x4,8x8,16x16或32x32矩形来表示像素......
我知道有一个SetPixel函数,但这不是我想要的.
有没有一个非常有效的功能,像"PrintScreen"(并且可以指定一个矩形作为参数)?非常有效,我的意思是当一个移动鼠标时,该功能可以非常快速地刷新窗口并且不会使用太多的系统资源.
小号
我正在尝试学习PDF文件格式.
为此,我下载了Adobe的PDF规范文件,这个文件非常庞大.
因此,为了帮助我研究PDF的细节,我想通过并行查看一些真实的PDF文件来遵循其抽象解释.
例如,一个想法是创建一个PDF文件(使用LaTeX),该文件只有一个页面,内容甚至只有一个字符a.
但是当我在十六进制编辑器(或其他可以显示内部PDF结构的工具)中打开此PDF文件时,此PDF中有很多二进制或压缩内容.有关我看到的示例,请查看以下屏幕截图:

我根本无法识别此二进制文件的哪个部分代表我a在此PDF中的角色.
到目前为止我尝试过的所有真实PDF文件都是如此.我根本找不到任何包含工作示例代码的PDF文件,以帮助我理解通用PDF语言规范.
我希望其他人向我解释一下:有没有一种实用的方法来研究PDF规范,同时用真实的PDF文件验证它的点点滴滴?
我想知道:PDF程序员常用哪些软件工具可以帮助像我这样的新手开发人员剖析和解压缩现有的二进制PDF文件,以便使用简单的文本编辑器调查他们的源代码?(注意:我不是要求推荐.根据SO FAQ我只想知道这些工具是否存在,以及它们有哪些名称.)
是否有免费提供的PDF文件资源,其中不包含二进制和/或压缩内容?或者我怎么能创建自己的这样的示例文件?
是否有(最好是免费的)PDF编辑器/解析器可以可视化+剖析PDF文件的原始二进制数据并公开其结构?
我只需要第一个钩子.如果你愿意,可以进入真实世界PDF文件的丛林中的狭窄路径,然后我可以跟随...同时使用这个名为"PDF规范"的丛林破坏者的帮助.