技术文档
一、起因

iPhone 的键盘,特别是数字键盘,往往不能满足程序的输入需要。最典型的例子就是在数字键盘上添加一个“.”,用来输入小数点。安装 iPhone SDK 官方的观点,如果要使用小数点键盘,那只好使用数字和符号键盘,但那样没个按键很小,且不需要的按键太多。
Core Foundation 是 Apple 的开源基础组件,提供了各种基础设施,如 PLIST 处理、XML parser、String、Array、Dictionary 等等

在处理 Apple 平台的某些东西(比如处理 Mac OSX、iPhone、iPad 的 plist 文件)的时候可能需要用到 Apple 的 Core Foundation。当然在 Xcode 中可以很轻易使用这些东西(内置的),但在 Win32 中却有些麻烦(有时候可能会在 Windows 下处理点什么)。

网上搜索 CFLite (http://www.kjams.com/wiki/Code/CFLite) 可以找到一个网站,精简了 CoreFoundation 并提供了些 DLL l以便在 Win32 中使用它——但,这个东西太老了(2008年的更新),以至于都不支持 binary plist 这些 iPhone 中最常用的 plist 格式的读写。

正好想弄个 iPhone/iPad  PLIST 的命令行编辑工具,所以自己移植了一下 Core Foundation。

[转载]OpenMP 编程指南

[不指定 2009/07/29 16:25 | by Yonsm ]
进入多核时代后,必须使用多线程编写程序才能让各个CPU核得到利用。在单核时代,通常使用操作系统提供的API来创建线程,然而,在多核系统中,情况发生了很大的变化, 如果仍然使用操作系统API来创建线程会遇到一些问题。
朋友弄了张430多块钱的电信CDMA上网账号,想在黑莓 9530 中上网,并用作电脑的Modem上网,几经折腾,终于搞定了。
如果安装或运行一个第三方软件(如飞信之类的,系统默认会自动刷新桌面图标),这时我们新建的开始菜单和任务栏快捷方式的图标很容易变成错误的了。Windows 7 Build 7000 到 7100 似乎一直存在这样的问题。

解决办法是用一些系统维护软件重建图标缓存,或者手动操作:
发现 Opera 在网页浏览方面还是很有优势的,一直以来都因为这个鸟软件不能绿色安装(特指放在任意目录那种)一直没用。趁着前两天改 Google Maps 的精神,今天又操刀了一下:
在SP/PPC写过MenuBar代码的人可能都知道,AygShell 中 Menu Bar 的设计真是无话说,各种系统(SP、PPC、2003、5.0)功能差异不一致,导致编程特别不方便。比如 SP2003 中不能使用 SHCMBF_HMENU 标记,PPC 5.0/6.0 终不能使用 SHCMBM_GETMENU,SP/PPC 2003中不能使用 TBIF_BYINDEX 来操作按钮,等等。

在别扭与愤懑中,用着MenuBar都过了4年了。终于整理出了一套相对比较完美的方案。先做一些假定:

PPC 中打开通话记录

[不指定 2009/04/02 21:41 | by Yonsm ]
SP 中有一个exe用来打开通话记录,万恶的WM竟然弄得PPC上不一样。经分析找到一个简洁的方法,可以在PPC中打开通话记录界面,代码如下:


if (HWND hWnd = FindWindow(TEXT("MSCProg"), NULL))
{
  PostMessage(hWnd, 0x801A, 0, 0);
}


大家都知道 PC 中写破解补丁的其中一个方法是 Loader,通常的做法是CreateProcess后用CreateRemoteThread来Load我们的DLL。但这个方法在WM中显然不可行(压根没这个API)。

WM中要在指定的进程中执行我们的代码,可以用一个未公开的 PerformCallBack4 API。利用这个API,可以在目标进程中执行我们的代码。
MSVC 中的有些非标准的关键字,有些时候特别有用。

1. __if_exist() 和 __if_not_exist()

用途:判断一个变量是否存在,(在编译期)以便选择相应的代码。
举例:以下代码,无论 g_hInst 是否声明,都不会编译出错。

__if_exist (g_hInst)
{
    LoadString(g_hInst, ...)
}
__if_not_exist (g_hInst)
{
   LoadString(NULL ...)
}


2.__declspec(selectany)

用途:指明变量或函数实体在连接是只选择其中一个实体拷贝。
Windows XP/Vista 提供的“远程协助”是通过共享桌面提供远程协助的好方法。但是“远程桌面”必须在目标机器的用户配合的情况下才能做到。实际上,Microsoft Windows 语焉不详的帮助说可以输入目标计算机名称或IP地址来主动访问目标机器。但实际上这是空话——根本就不可以(据说在同一个Domain中才行,但我测试好像也不行)。

[转帖]CeleDial:小软件大智慧

[不指定 2008/09/08 19:42 | by Yonsm ]
介绍如何使用 CeleDial 的文章,介绍挺详细的。
分页: 1/6 第一页 1 2 3 4 5 6 下页 最后页 [ 显示模式: 摘要 | 列表 ]