关于作者

笔名:IPLinger
地区: 山东-烟台
作者相册

日历 

快速登录

+ 用户名:
+ 密 码:

在线留言

.

support me

BLOG LIFE

Link

PODCAST

LOVE

.

访问统计:7336


起点徘徊|Initial Point Linger

 

请给我一个初动力,让我不再徘徊。 “1 > 3” “没有去努力查找事实根据少开口,除非Losing Fase” “在自己的认知能力上,不去作恶” “学会按时睡觉” “简单 = 100 * 复杂”

日志

通知

新的blog地址 :www.iplinger.com

请使用gougou订阅的朋友重新订阅:),你们会看到一个不一样的地方。

加过链接的朋友,请更换链接地址。

使用友情blog的朋友,请添加一个静态地址。然后告诉我,我会和你们交换链接:)

- 作者: IPLinger 2006年01月17日, 星期二 12:23  回复(11) |  引用(0)

准备搬家

博客准备迁址,越快越好。究竟去那里,不久就后决定。这里就作为记忆封存下来吧。我不会删除这里的任何文章,也不会把这里的文章转移到我心的blog上去,他们是属于这里的。

新的blog将会是一个新的样子,我现在都不敢想象它会是个什么样子。因为有很多事情到那时并不会是一个人在做决定。事情真的很让人期待。我也期待着。

什么时会正式搬家,应该就是不久后的事了。

- 作者: IPLinger 2006年01月16日, 星期一 20:29  回复(3) |  引用(0)

Black&White -- 精灵的眼睛

- 作者: IPLinger 2006年01月15日, 星期日 17:44  回复(2) |  引用(0)

观察 -- 英语就是强势语言?

2006-1-15

365Key-天天网摘生成

英语是不是强势语言?这好像已经不用回答了。他成为了强势语言已经是客观事实。究其原因我不是做这方面研究的,我并不能系统的告s诉你。如果你有《达芬奇密码》请看284页,那里有一段陈述。当然我能想到的更多的是和英国曾经的殖民扩张有直接的关系。这个曾经的日不落帝国把英语传向了世界。

我想说的并不上面这些东西。他成了强势已经是客观存在的事实。现在的问题是我们来如何应对这个问题。我现在遇到很多问题关于英语。他真的让我十分头疼。从上初中开始,我第一次被老师训哭了,好像就是因为我英语太差。到了高考也是,英语不及格,让我上了海大(中国海洋大学)的计算机科学与技术专业。大学里考英语也是我最差的成绩。工作了,现在英语成了我了解知识的障碍。我热爱互联网,但是英语给我铸造了一道墙。我现在能做到的也只是能伸过去一点点,凿壁借光,费尽力气,看一看那里短小简单的文章,试图去理清思路能清楚我想知道的是什么。这其实很难,比我看一篇中文文章要费力10倍。问题是我必须尝试的去看。现在不过去,未来更不会是过去,我们面临全球化的时代,其实对于很多人,这个时代已经来了。要想清楚看清某些问题,你需要站在语言的高度上看看国内自己人都在说什么,想什么,但更重要的是站在英语的高度上,看看地球人在想什么。

我并不会怪罪上学时自己没有努力。或许是在学校里那种学习语言的方法,我太不适合了。其实现在做什么都还不晚,我知道。

语言确实是工具,学习使用工具并不难,难的是语言背后的文化,没有环境与时间学不来。

因为那不是工具。

Technorati : ,

- 作者: IPLinger 2006年01月15日, 星期日 17:31  回复(3) |  引用(0)

Worth1000 -- photoshop创意比赛网上平台

Worth1000提供一个顶级的photoshop创意比赛网上平台。在这里你可以参加竞赛,也可以评价比赛结果,更可以欣赏比赛中充满创意的图片。网站还提供了图片创作的实例指导,如果是一个PS爱好者可真是不应该错过。

这里有你从来没吃过的巧克力。这里也有你晶莹剔透的玻璃制品

恐怖也在这里,真正恐怖的东西不是大白鲨,其实是人自己。 (请慎重,务必做好心理准备,ps:13岁以下禁入)。

- 作者: IPLinger 2006年01月15日, 星期日 16:08  回复(1) |  引用(0)

Black&White -- 筐里的姑娘

- 作者: IPLinger 2006年01月14日, 星期六 15:56  回复(2) |  引用(1)

从vc6升级到vc7的一些问题及解决方法

最近由于工作需要,把项目从vc6升级到vc7(vc.net2003)。升级过程遇到些问题,记录于此。

1. 编译时出现:WINVER not defined. Defaulting to 0×0501 (Windows XP and Windows .NET Server)

这个问题是因为没有指定工程要使用的平台SDK的版本。

Minimum system requiredMacros to define
Windows Server 2003 family_WIN32_WINNT>=0×0502
Windows XP_WIN32_WINNT>=0×0501
Windows 2000_WIN32_WINNT>=0×0500
Windows NT 4.0_WIN32_WINNT>=0×0400
Windows Me_WIN32_WINDOWS=0×0490
Windows 98_WIN32_WINDOWS>=0×0410
Internet Explorer 6.0_WIN32_IE>=0×0600
Internet Explorer 5.01, 5.5_WIN32_IE>=0×0501
Internet Explorer 5.0, 5.0a, 5.0b_WIN32_IE>=0×0500
Internet Explorer 4.01_WIN32_IE>=0×0401
Internet Explorer 4.0_WIN32_IE>=0×0400
Internet Explorer 3.0, 3.01, 3.02_WIN32_IE>=0×0300

解决办法:

属性,C/C++,命令行,附加项中添加 /D_WIN32_WINNT=0×0501 (因为我是在xp下工作的所以是0×0501)

 

2. Link是出现:LINK : warning LNK4075: 忽略”/EDITANDCONTINUE”(由于”/INCREMENTAL:NO”规范)

这个问题是因为在vc6中,工程使用的增量编译。

解决办法:

属性,链接器,常规,启动增量链接 选择 是(INCREMENTAL)

 

3. 编译时出现:warning C4129: “U” : 不可识别的字符转义序列
error C3847: 通用字符中的错误符号;必须使用十六进制数字

原因:为开发全球通用的应用程序,.NET Framework 使用 Unicode UTF-16(Unicode 转换格式,16 位编码形式)来表示字符。在某些情况下,.NET Framework 在内部使用 UTF-8。引入通用字符名称的格式是 \u####\U########

解决办法:
//#include MAKEPATH(MAIN_IMAGE_PATH, FunUtil\\Unit_star.txt)
#include “..\\ImageData\\ML128160\\FunUtil\\Unit_star.txt”

 

4. 链接是出现:LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit 已经在 MSVCRTD.lib(MSVCR71D.dll) 中定义 等类似错误

原因:

Run-Time Library

•Run-Time Library是编译器提供的标准库,提供一些基本的库函数和系统调用。
我们一般使用的Run-Time Library是C Run-Time Libraries。当然也有Standard C++ libraries。
C Run-Time Libraries实现ANSI C的标准库。VC安装目录的CRT目录有C Run-Time库的大部分源代码。 C Run-Time Libraries有静态库版本,也有动态链接库版本;有单线程版本,也有多线程版本;还有调试和非调试版本。
•动态链接库版本:
/MD Multithreaded DLL 使用导入库MSVCRT.LIB
/MDd Debug Multithreaded DLL 使用导入库MSVCRTD.LIB
•静态库版本:
/ML Single-Threaded 使用静态库LIBC.LIB
/MLd Debug Single-Threaded 使用静态库LIBCD.LIB
/MT Multithreaded 使用静态库LIBCMT.LIB
/MTd Debug Multithreaded 使用静态库LIBCMTD.LIB
若要使用此运行时库请忽略这些库
单线程 (libc.lib)libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
多线程 (libcmt.lib)libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
使用 DLL 的多线程 (msvcrt.lib)libc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib
调试单线程 (libcd.lib)libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib
调试多线程 (libcmtd.lib)libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib
使用 DLL 的调试多线程 (msvcrtd.lib)libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib

解决方法:

属性,链接器,输入,忽略指定库 libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib (这是我需要忽略的,你可以根据你工程的实际情况选择。)

Technorati : , , ,

- 作者: IPLinger 2006年01月14日, 星期六 15:06  回复(6) |  引用(0)

j2me学习杂记三 -- 刚开始的理解

 

首先我们问个问题,什么是j2me

Java发展到现在,在其平台上出现了4个主要的分支,我们看这幅图。

第一个j2ee 应用于企业级的解决方案。

第二个j2se 用于一般台式计算机的软件开发。

第三个j2me 应用于嵌入式设备的开发

第四个 java for smart card 主要用于智能芯片和IC卡的开发。

我们要记得j2me 是应用于嵌入式设备的开发平台。

 

 

我们来看这幅图。J2me体系结构,从图中看由五部分组成,最下面的是操作系统,然后依次是 java虚拟机 配置 简表profile 可选包。这5部分共同组成了j2me实时运行环境。

如何把这五部分给大家讲清楚,我思考一下,决定与我们的实际联系起来讲或许会好些。

例如这就是我们所指的操作系统,比如说是高通的DMSS。然后我们需要来支持java虚拟机。在实际中我们可以考虑这个虚拟机是被封装好的,只留出的必须实现的API接口。例如像这个样子,这有利于他的通用性。然后我们需要做的就是利用c语言来实现这些接口,像这样把他支撑起来。等所有的接口都被支撑起来的时候,我们的java虚拟机就搭建好了。

其实在java程序运行的过程中,java虚拟机本身的用处并不是特别大,要做任何有意义的事,必须要有运行时库的支持,这就是配置(Configuration)。配置为我们能运行java提供了最基本的库函数。

配置为应用程序提供了运行基础,概要则提供了应用程序的框架。什么是应用程序框架?这里我们可以结合我们正在使用的base框架来理解。在base里每个process都要有create函数,destroy函数和run函数,等等,并且给我们提供了像PDK这样丰富的函数库。这就是框架,它规定了我们该怎么写一个程序,这个程序的基本结构是什么样子的,并提供了丰富的API 。如果你还不明白什么是框架,我们还可以这样阐述什么是框架。比如我们修建一座建筑物,需要先通过钢筋、水泥搭建起一个坚固的轮廓,此谓之架构,然后就可以在不影响主体结构的情况下往里面添砖加瓦,最后建成我们雄伟的宫殿。这里面钢筋水泥的架构和我们砖瓦共同给我们组成了框架。我们可以看到框架不只是架构,还需要提供向架构中填充各种原料。而我们所要做的就是像搭积木一样建造出我们的产品,当然这个积木要足够灵活,以允许我们充分发挥我们的想象,建造出我们想要的产品。

同样,这里简表就是给我们打好了一个框架。并且提供了例如图形化界面,持久层管理,网络等函数库,然我们可以轻松的建立起各种应用。

 关于可选包就是对profile的补充了。

 

 

CDC 的硬件参数:
􀁺 2M 以上内存。
􀁺 具有网络连接能力,通常为无线网络。

􀁺 需要实现java 虚拟机规范的全部功能。
􀁺 32 位或者64 位的处理器。

 

CLDC 的硬件参数:
􀁺 512 KB 以下内存
􀁺 有限能源供应(通常使用电池)
􀁺 有限或非持续网络连接
􀁺 简单的用户界面
􀁺 16 位或者32 位的处理器

 

说配置之前,我们先来看看嵌入式设备。我们所知道的嵌入式设备有什么?手机,PDA,这些是,机顶盒,智能冰箱,智能空调,这些也是。总之我们说嵌入式设备是种类繁多的。那么针对种类繁多的嵌入式设备j2me平台是如何搭建的呢?

j2ME 遵循着针对种类繁多而各不相同的装置,制造一个单一的开发系统是不可能的也没有意义的基本原则,先将所有嵌入式装置大体分为两种:一种是运算能力有限、电力供应能力也有限的嵌入式装置(比如PDA、手机等);另外一种是运算能力相对较好、电力供应相对比较充足的嵌入式装置(比如智能化空调、冰箱和电视机顶盒等)。由于这两种区分的存在,java引入了Configuration(配置)的概念,并把那些运算能力有限的嵌入式装置定义在CLDC规格中;而另外一种装置则定义在CDC规格中。

上面罗列出了两种规格的硬件参数。由于这个标准是在2001 年的时候指定的,而现在移动终端的处理能力和内存容量发展很快,如果还按照这个标准来评判可能就不准确了。 因此我们只是列出标准,供大家参考。

值得指出的是,虽然这里的标准有些落后了,但是配置规范确实与时俱进的,最新的规范是CLDC1.1,并增加了很多新的特性。

 

 

 

 

MIDP框架下的应用程序,我们称为MIDlet

MIDlet 有三个状态,分别是pauseactive destroyed。在启动一个MIDlet 的时候,应用管理软件会首先创建一个MIDlet 实例并使得他处于pause 状态,当startApp()方法被调用的时候MIDlet 进入active 状态,也就是所说的运行状态。在active 状态调用destroyApp(boolean unconditional)或者pauseApp()方法可以使得MIDlet 进入destroyed 或者pause 状态。值得一提的是destroyApp(boolean unconditional)方法,事实上,当destroyApp()方法被调用的时候,AMS 通知MIDlet 进入destroyed 状态。在destroyed 状态的MIDlet 必须释放了所有的资源,并且保存了数据。

- 作者: IPLinger 2006年01月14日, 星期六 09:00  回复(1) |  引用(0)

Black&White -- :)

图片来源 Flickr 小组。图片拥有者: minkminkmink

图片描述:

Camera: Nikomat ELW, Lens: 50mm Nikkor, Fuji Neopan 100

Technorati : , ,

- 作者: IPLinger 2006年01月13日, 星期五 20:58  回复(0) |  引用(0)