VENDOR ARCGIS PORT=1234
(in my computer, it is 1025 by default)
3. open your firewall configuration window, add ports for manager (as item 1),
as well as for arcgis.exe (as item 2) respectively
done!
VENDOR ARCGIS PORT=1234
(in my computer, it is 1025 by default)
3. open your firewall configuration window, add ports for manager (as item 1),
as well as for arcgis.exe (as item 2) respectively
done!
可能的原因:catalog在输入ip地址时,使用了getHostByAddr()方法,得到域名后,再
执行正常的连接(从host->ip->连接)。由于210.77.68.241这个ip没能反解得到域
名,故连接失败。
增加hosts项后,getHostByAddr可以反解得到域名是geodata,正常连接的时候,再行
解释域名到ip,从而正常连接。
评价:比较ugly的方法,如果不反解,而直接根据ip进行连接估计更好。可能是受
catalog采用的编程语言本身api的限制。
一个很好的朋友向我诉苦:他女友本来一好好女子,受过高等教育,知书达礼,美丽大
方。同居一起生活久了,大家就不注意生活细节了,可能以为这些就无关紧要了。
我哑然,他居然将他漂亮女友说得如此不堪,但细想,其实何止朋友女友一人有这毛
病。在最亲的人面前,大家都放松起来了,放肆地做着自己想做而平时认为不雅而刻意
隐瞒的事。小小的放肆一把也许还可以调剂生活,但长此下去估计就有问题了。所谓女
为悦已者(不一定光指女的,男的也适用,看着哪个男的穿的光鲜,如果不是中了彩票
或谈成大生意,十有八九正在情场得意),恐怕不光是指将自己打扮的漂亮,抹了一层
层的脂粉,在生活习惯上也要尽量给对方展示一个良好有教养的形象,也许会更有助于
爱情的保鲜。
刘辉的事上Nature了,估计以后他也很难在国内外的学术界混下去了。包括方舟子本人在内,大家都没想到清华这次居然动真格的了——刘不是第一个也不自然不是最后一个,其他做假者都依然混的好好的,只有他得到了惩办,如果我是刘,一定感觉很委屈! 清华的举措肯定是有原因的,比如迫于校内师生的压力等,但在国内算是迈出一步。如果国内都有这样严格的制度,让大家知道做假的代价太多,估计学术风气会得到一些控制。
News in Brief
Nature 440, 728-729 (6 April 2006) | doi:10.1038/440728aFantasy reference list leads to the sack
What’s in a name? Hui Liu, assistant dean of the medical school at Tsinghua University in Beijing, got his job after submitting a résumé that cited, among other things, a paper by "H. Liu" in the Journal of General Virology. He lost his job last month when the university learned that the paper was written by Hong Liu, a researcher at Mount Sinai School of Medicine in New York.The school was told of the problem last November by Shi-min Fang, a San Diego-based biochemist whose home page is a popular place to post rumours of scientific fraud. Following up an anonymous tip-off, Fang says he investigated Liu’s résumé, which had been posted on Tsinghua’s website. "I found that several papers were either non-existent or belonged to somebody else," Fang says.
The university’s investigation led to Hui’s dismissal.

Eugene Eremin
翻译:tong # cngis.org
原文Url:http://www.qtlib.ru/index.php?option=com_content&task=view&id=42&Itemid=28
Qt 3.1及以上版本的一个新特性是为Windows操作系统提供了ActiveX支持。开发者如果关心如何使用Qt操作COM组件,比如在Excel里插入新数据,这个新增功能就很重要了。
然而不幸的是,在Internet上没有太多这方面的主题可以借鉴。我在这里演示一个例子,可能会对大家有所帮助。
首先我们来看一下Qt自带的例子。通常Qt自带的例子可以告诉大家一些常用的知识点。我不记得在哪里看过,说一个好的文档应当是用户看过后不再存在不解的地方。但Qt只提供了一个与MS Outlook Express交互的例子。不过这就是我开始Excel交互研究的起点了。
ActiveX和COM的区别不是很大,我不是这方面的专家,但我在这里推荐大家看一本Adam Denninga的书“ActiveX for professionals”。这本书会帮助大家很好地理解这些概念。第一步,我们来引入Excel,并创建一个对象。
#include <qaxobject.h>
QAxObject* excel = new QAxObject( "Excel.Application", this ); //获取一个Excel对象
excel->dynamicCall( "SetVisible(bool)", TRUE ); //设置为可见
这里我们通过代码构建了一个对象,并通过对象打开了Excel。第二步,我们计划插入新数据。为了做到这一步,必须了解一点Excel文档的结构。Excel应用程序包括一系列的workbooks,每个workbook又由多个sheets组成。Microsoft公司并没有给出太多这方面的结构信息,我在Google上寻找了不短的时间,也没有太多的结果。
QAxObject *workbooks = excel->querySubObject( "Workbooks" ); //得到Workbooks集合的指针
QAxObject *workbook = workbooks->querySubObject( "Open(const QString&)", "C:dataA.xls" ); //打开硬盘上的一个Excel文档
QAxObject *sheets = workbook->querySubObject( "Sheets" ); //得到Sheets对象的指针
QAxObject *StatSheet = sheets->querySubObject( "Item(const QVariant&)", QVariant("stat") ); //得到名为stat的一个sheet的指针
StatSheet->dynamicCall( "Select()" ); //选择名为stat的sheet,使之可见
QAxObject *range = StatSheet->querySubObject( "Range(const QVariant&)", QVariant( Qstring("A1:A1"))); //选择A1:A1这个range对象
range->dynamicCall( "Clear()" ); // 清除range对象
range->dynamicCall( "SetValue(const QVariant&)", QVariant(5) ); //将该range对象的值设为5
接下去用户可以保存和关闭这个Excel文档了。
最后说一句,这些对象的接口可以通过generateDocumentation () 产生。比如,我们可以这样做:
QFile outfile("excel.html");
QTextStream out( &outfile );
outfile.open( IO_WriteOnly | IO_Translate );
QString docu = excel->generateDocumentation();
out << docu;
outfile.close();
这些信息被保存在名为“excel.html”的文件里。如果插入的数据很大,会花费很多的时间。MFC使用了专门的class,但我没能在Qt里实现这个class。如果有意见,请反馈至http://prog.org.ru/forum/ptopic_141.html
译者注:本文由在线语言工具从俄语翻译至英语,然后人工翻译成中文,因此中文与俄文可能有一些出入,欢迎指正。
Qt 4里已经有很多的有关ActiveQt的文档,大家应当以那个为主要的学习的材料。
*.olb可被认为是*.tlb的前身,它也是表述com对象的信息,现在已经被定义更完整的
*.tlb代替掉了,使用*.olb的ocs/activeX一般是较为早期的产品。
2. axWidgetTOC->dynamicCall("SetBuddyControl(IDispatch*)",
(axWidgetPageLayout->querySubObject("Object"))->asVariant());
Object是PageLayout的一个属性。querySubObject输入方法名或属性名。
HRESULT IPageLayoutControl2::get_Object(
IDispatch** ppDispatch
);
3. catalog open file dialog
GxDialog在ArcEngine里不能用。这里有个帖子讨论这个问题:
http://forums.esri.com/Thread.asp?c=159&f=1705&t=163159&mc=5
这里有个例子,也可以参考
http://edndoc.esri.com/arcobjects/9.0/default.asp?URL=/arcobjects/9.0/Sample
s/Geodatabase/Accessing_Data/Browse_for_data_using_name_objects/Browse_for_d
ata_using_name_objects.htm
4. Q_Declare_private / d_func()
目的是为了在类里隐藏界面冗长的代码,将界面代码放置到专设的 QxxxPrivate类里
去。相关的定义如下:
#define Q_DECLARE_PRIVATE(Class)
inline Class##Private* d_func() { return reinterpret_cast<Class##Private
*>(d_ptr); }
inline const Class##Private* d_func() const { return
reinterpret_cast<const Class##Private *>(d_ptr); }
friend class Class##Private;
#define Q_DECLARE_PUBLIC(Class)
inline Class* q_func() { return static_cast<Class *>(q_ptr); }
inline const Class* q_func() const { return static_cast<const Class
*>(q_ptr); }
friend class Class;
#define Q_D(Class) Class##Private * const d = d_func()
#define Q_Q(Class) Class * const q = q_func()
在使用时,
//////////////////////
class QDialogPrivate;
class Q_GUI_EXPORT QDialog : public QWidget
{
Q_OBJECT
Q_DECLARE_PRIVATE(QDialog)
///////////////////////
class QDialogPrivate : public QWidgetPrivate
{
Q_DECLARE_PUBLIC(QDialog)
public:
///////////////////////
d_ptr是在QObject里定义的,protected,为指向 QObjectData的指针
p_ptr是在QObjectData里定义,public,指向QObject的指针
在使用时,定义Q_D(class)和Q_Q(Class),直接使用 d和q两个指针