Monthly Archives: June 2006
南宅影像图
IMapPtr在vc里编译提示没定义
首先我们要明白IMapPtr是什么东西,在COM里,有一种叫智能指针(smart pointer),通过此类指针,COM可以安全地构造和析构。一般通过_COM_SMARTPTR_TYPEDEF(<interface>, __uuidof(<interface>))宏来定义,对IMap扩展后相当于:
typedef _com_ptr_t<_com_IIID<IMap, __uuidof(IMap)>> IMapPtr;
这部分工作在vc里导入 type library时完成,vc通过 #import来完成,import会自动生成 .tlh和.tli,这些typedef即在 .tlh里定义。
在ArcEngine编程中,一般在vc环境设置中include进 ArcSDK.h,和*.olb所在目录,在stdafx.h里增加 #include <ArcSDK.h>后,就可以在代码中直接用象IMapPtr这类指针了。
包括ArcSDK.h时要求事先定义ESRI_WINDOWS,这样arcsdk.h事实是调用 windows_sdk.h,编译时可能会有一些警告,可以忽略,或者通过#pragma warning(disable : 4192) 来忽略特定的警告。
在PDA上看此space
无线局域网
南师大访问
Dell Axim与Sony SZ笔记本通过蓝牙 ActiveSync
1. 打开Dell Axim v51的蓝牙连接,标记成可被发现;打开sony笔记本的无线设置(wireless on)。
1.1 Dell Axim,打开Bluetooth设置,在端口号新建接收COM,选COM8;
2. 打开sony自带的BlueTooth设置,新建连接,选用“快速模式(推荐)”,一直Next,默认连接是选用com40。注意这是Bluetooth settings的com号,而不是bt server的com号,所以不必在20以下(activesync要求com号必须是20以下)
3. 控制面板,打开Bluetooth本地COM,可以发现 COM7是 localCOM-Server用的端口
4. 打开microsoft activeSync的连接设置,允许连接到 COM7 (host上的server com号),确定
5. Dell Axim,打开activeSync,菜单,使用Bluetooth进行连接,会提示说没有合作关系,新建,选是。这时会进入新建合作向导,经过搜索,会发现sony机器(host),如果提示要密钥,无论在axim上还是laptop上都输入初始pin码,1234。这时在sony laptop的服务列表里应该有activeSync,保存,即可。如果只出现端号服务,手工增加发送端口,并设置为COM7,再试。一般就可以找到laptop的activeSync服务。
6. Dell Axim,activeSync里使用Bluetooth连接,这时如果已有合适的合作关系(partner relationship),就可以进行连接了。
7. 此后就是正常的activeSync流程。
完成了gimms-clip
- Qt实现跨平台,国际化等功能
- 调用GDAL完成多种GIS格式的转换
- 可变线程来处理整个裁剪流程
完成了v1.0,可能暂时到止,以后有兴趣了,可以在此基础上再增加一些小功能,比如引进xml,将用户的配置记住等等(当然可以用QSettings,但锻炼一下学生的xml也是不错的)
放一个截图吧,已经本地化
——
前面有朋友问为什么在windows下不用mfc,我最早应该是mfc出身的,但接触的科研项目大多对操作平台有要求,国外很多学者仍是用linux/unix环境来进行科学研究,于是开始寻找一种可以跨平台的而且对于我来讲比较易学的工具(c/c++/c#背景),Qt当然是个不错的选择,只是Qt/win稍贵了一些