cnmmd 发表于 2005-7-29 21:10:11

liveva中的代码小细节问题

我本来想下libeva后在windows下编译成dll,但是发现代码中出现了些许不和谐的地方。列举如下:

1,无法打开包含文件:“inttypes.h”: No such file or directory
估计该文件是linux下特有的,而不是平台无关的。

2,char str;

很多形如以上数组的声明。数组大小居然有变量。

我下的是
http://ovh.dl.sourceforge.net/sourceforge/evaq/eva-0.3.0.tar.bz2

3,“初始化” : 截断常数值
/** QQ default encoding */
const short QQ_IM_ENCODING_GB = 0x8602;

编译提示 “初始化” : 截断常数值,不太明白为什么。

cnmmd 发表于 2005-7-29 21:16:16

4,常量的使用与硬编码

int LoginPacket::putBody(unsigned char *buf)
{
        memcpy(buf, iniKey, QQ_KEY_LENGTH);

        int pos = 16;

...
}

为什么 不
int pos = QQ_KEY_LENGTH?

pupilzeng 发表于 2005-7-29 23:05:08

inttypes.h是C99中的,gcc3.3中已经带了,
可变数组C99也支持的,当然gcc早就支持了
你应该换个新点的编译器(比方说mingw),或者将那些重定义一下

yunfan 发表于 2005-7-30 09:50:31

windows 上, 你看着自己改吧。
我基本就没有在windows上编译过, 所以根本不知道在windows上的结果, 另外,
我个人始终认为在windows下,腾讯的客户端是最好的。我们的目标是提供一个
Linux下KDE桌面的QQ客户端而已。 libeva部分最初设计来跨linux下的各种环境的,
而非跨平台的。 当然,在可能的情况下,我们还是会尽量支持windows下的编译。

我装不起 MS-WIN + MS-Office + MS-Visual Studio, 所以, 我没法测试,
要是发现什么问题,还请大家告知。

另外,据我了解的情况, Miranda IM 的QQ 插件正在基于libeva来实现, 所以
我想,libeva在windows下编译也不是什么大问题。还有几个win 下的挂机程序
也都编译成功了。 可能你使用VC++ 7.0 可以吧。 Hopefully。
页: [1]
查看完整版本: liveva中的代码小细节问题