Board logo

标题: 求助:用borlandc3.1连接不上wattcp的连接库呢? [打印本页]

作者: 秋蝉     时间: 2003-6-30 00:00    标题: 求助:用borlandc3.1连接不上wattcp的连接库呢?

请教各位大师,我想用Borlandc3.1实现dos下的tcpip的通讯,为何连接不上呢?
提示错误:Linker error:Bad Object File Record in module?
谢谢~

作者: 戴眼镜的马     时间: 2003-6-30 00:00
是呀,是呀,

我也使用BC3.1,用WATTCP,可是就是连接不上。

不知道应该怎么设置?不知道楼上的,您的路径的什么?怎么设置?还有您的WATTCP是否有连接库呢?我的好像没有连接库呀。

急呀,多多联系~
作者: 秋蝉     时间: 2003-7-1 00:00
用命令行或者在建立的工程连接都是这样啊
连接其他的*lib就可以,可是连接wattcphg.lib就不行(huge模式)
很奇怪~~


作者: 戴眼镜的马     时间: 2003-7-1 00:00
希望大家都来发言

1,在WATTCP\apps\ping.c,我用BC31建立一个工程。
2,编译通过
3,连接出错。提示信息如下:
Linke Error:Under find symbol _chk_ping in module......
这样共有11条Message。

请斑竹帮我应该怎么办?
我已经不管3721把WATTCP\lib\下的3个.lib全部考入BORLANDC\lib下了。把WATTCP下的include下的必要的头文件全部拷贝到BORLANDC\include.

请大家不要对技术保留呀,大家发扬FreeSoft精神。



作者: Wengier     时间: 2003-7-1 00:00
试试看用DJGPP C/C++能不能连上呢?
作者: LanE     时间: 2003-7-1 00:00
好象需要用tlib把*.lib加到库里面去吧
作者: 戴眼镜的马     时间: 2003-7-1 00:00
to--》Wengier
对DJGPP C/C++我一点点都不熟悉。不知道是否可以呢。斑竹您是否试过呢?
我还是希望使用BC3.1。希望还有其他的提示。
to--》LanE,
我试了试Tlib,的确会运行的。我使用了tlib WATTCPSM.lib +,不知道这样做,是否正确呢?可是还是老样子呀。

下一步不知道怎么办呢?可以这么说。如果不能在这个论坛解决这个问题的话,我觉得DOS论坛还是没有深层次的东东。毕竟在DOS下写网络程序是实时控制系统比较好的选择。而其他的什么画图程序,都是一些比较简单的程序,而且目前实用的价值不大。

请大家放开肚子提建议呀。。。。。。

作者: 秋蝉     时间: 2003-7-2 00:00
这个库应该是支持BorlandC3.1的,它的头里面出现了BorlandC和turbo的ascii码,虽然tlib后可以不用再建立工程文件连接了,但是连接错误依旧:Linker error:Bad Object File Record in module,看来这个库需要特殊处理?琢磨中~~~
作者: 戴眼镜的马     时间: 2003-7-2 00:00
的确如你说的,是这样的。

但是现在我已经连接上了。还是用make程序。但是要把mkefile文件修改一下,使用Large模式。把\apps下的makefile文件两行修改为
DEBUG= D        # set to D for disable, E for enable
MODEL= L        # set to L for large, S for small
这样的话,模式为Large。
而Large库明显是好的。连接通过了。说明Small库是有问题的,不知道WATTCP斑竹是故意的还是无意的。

1,现在问题是在BC3.1的工程文件中怎么使用库呢?
2,很多的TCPSOCK函数根本就是和WINSOCK函数不一样。不知道怎么使用。不知道谁有函数手册呢?很奇怪的是我也曾经看见过WATTCP程序,库函数和WINSOCK的使用是一样的。




作者: LanE     时间: 2003-7-2 00:00
它应该指的是,把MODEL=L改成MODEL=S就可以用small库吧
在LIB目录下三个文件,应该是small,lager,huger三个模式的lib文件………………
作者: 戴眼镜的马     时间: 2003-7-3 00:00
to->>LanE.
是的,lib下的3个文件就是对应这3个模式,现在的问题,好像把任何WATTCPLG.LIB加入PRJ工程文件中,连接还是通不过的。

1,make 语法手册在哪里?
2,WATTCP函数库的手册Who有,在www.wattcp.com上卖美元50,我可以花人民币100大洋,一经收到函数库手册,马上付钱。
作者: 秋蝉     时间: 2003-7-3 00:00


  Quote:
以下是引用戴眼镜的马在2003-7-2 16:32:41的发言:
的确如你说的,是这样的。

make果然可以[em27],又测试了一下huge模式也通过,证明至少lage喝huge肯定是可用的
建立工程文件,加入其他连接库可以通过说明连接方式应该没问题,加入wattcp后出错误可能是类似于makefile中debug选项不当的原因
可是选项禁止debug设置后仍然没有消除错误,望大家指点[em04]
作者: Wengier     时间: 2003-7-3 00:00
makefile的语法看看这儿吧:
http://www2.zzu.edu.cn/ie/newdos/dispbbs.asp?boardID=6&ID=4258
作者: 戴眼镜的马     时间: 2003-7-4 00:00
to->>秋蝉
是呀,把库加入工程文件就是不行,不知道为什么?如果您试通的话,请您把步骤写在这里可以吗?
to->>Wengier
谢谢您,但是这个Make手册,好像太复杂了一点点了。而且和WATTCP的makefile文件对不起来的。

各位看官:
1,谁使用过WATTCP的函数,步骤是怎么样的?WINSOCK就是,建立SOCKET,CONNECT,然后就可以SEND了。但是WATTCP是怎么样的呢?
作者: glinda     时间: 2003-7-4 00:00
tlib 加入库中的应该是.obj文件。
tlib ww.lib +a.obj
作者: 戴眼镜的马     时间: 2003-7-5 00:00
to->>秋蝉
收到了您的Email,我回了,但是被退回。是不是您的Email已经坏了呢?

我是杭州的,一个研究院的。只要是实时控制的。

to->>glinda
谢谢您的指点。麻烦问一下了。在BC31的工程文件文件中,怎么使用*.lib文件呢?是不是直接使用Add Item菜单,把WATTCPLG.lib插入到工程中就可以了呢?这个办法其实我试过的,不行呀。

作者: 秋蝉     时间: 2003-7-5 00:00
1。ttp://www.jkmicro.com/documentation/pdf/borland.pdf 有关于bc4.5连接wattcp的工程环境定义详细说明(我没有验证)

2。想make也能连接成功就不用BC4.5了:应用程序编译连接批处理如下
bcc -c -mh -r- -v- -IE:\borlandc\include -LE:\borlandc\include FC2000.CPP
bcc -c -mh -r- -v- -IE:\borlandc\include -LE:\borlandc\include FCCALC.CPP
bcc -c -mh -r- -v- -IE:\borlandc\include -LE:\borlandc\include FCHIS.CPP
bcc -c -mh -r- -v- -IE:\borlandc\include -LE:\borlandc\include FCINIT.CPP
bcc -c -mh -r- -v- -IE:\borlandc\include -LE:\borlandc\include FCSET.CPP
bcc -c -mh -r- -v- -IE:\borlandc\include -LE:\borlandc\include FCSETSYS.CPP
bcc -c -mh -r- -v- -IE:\borlandc\include -LE:\borlandc\include FCSHOW.CPP
bcc -c -mh -r- -v- -IE:\borlandc\include -LE:\borlandc\include IPX.CPP
bcc -c -mh -r- -v- -IE:\borlandc\include -LE:\borlandc\include KB_MQ.CPP
bcc -c -mh -r- -v- -IE:\borlandc\include -LE:\borlandc\include KB_TRQ.CPP
bcc -c -mh -r- -v- -IE:\borlandc\include -LE:\borlandc\include WJ_ZQ.CPP
tlink c0h FC2000 FCCALC FCHIS FCINIT FCSET FCSETSYS FCSHOW IPX KB_MQ KB_TRQ WJ_ZQ DLD16C,Fc2000,,wattcphg graphics fp87 mathh ch,

3。装好网卡驱动后,运行他的例子程序怎么还说“NO PACKET DRVER FOUND“?你哪里可以吗?
作者: 秋蝉     时间: 2003-7-5 00:00
和msclient驱动不一样啊

[此贴子已经被作者于2003-7-5 12:27:00编辑过]



作者: 秋蝉     时间: 2003-7-5 00:00
[em22]

[此贴子已经被作者于2003-7-5 12:54:46编辑过]



作者: 戴眼镜的马     时间: 2003-7-6 00:00
我这里用make后,连接的*.exe运行是没有问题的。
但是从接受到的8019的单片机的灯来看,发送的数据间隔时间是不对的。我已经用了delay(30)这样的话,在接收端8019的灯,应该也是30ms亮一次。可以好像不对。
我在8019这边单步跟踪数据,发现发过来的数据好像是对的。

为什么我一定要在BC31里加入*.lib,道理很简单,因为我想对自己的c文件进行进行单步跟踪呀。可是到现在还是不行呀。

下面我是在DOS应用WATTCP,对原来的\apps\tcptack参考后,自己修改的,通过网络发送514字节,前面2个自己表示后面数据包长度是512个,通过make连接成功的.c源代码。请大家参考,指正。事实说明这个代码发送数据的间隔是有问题的。

#include
#include
#include
#include
#include
#include

#define LIGHT_PORT 12345


int main(int argc, char *argv[])
{
                     longword remoteip;
        static tcp_Socket s;   
                    char *host;
        unsigned char  inbuf[514],outbuf[514];
        sock_init();
        remoteip = inet_addr( "192.168.0.10" );

        if ( !tcp_open( &s, 0, remoteip, LIGHT_PORT, NULL )) {
            cputs("Unable to open connection.";
            exit( 1 );
        }
                   printf("Connect..Sucess\n";
//        sock_wait_established( &s, sock_delay,NULL, &status);
//        sock_puts( &s, inet_ntoa(buffer,gethostid()));
//        sock_puts( &s, user );
//        sock_wait_input( &s, sock_delay, NULL, &status );

//        sock_gets( &s, buffer, sizeof( buffer ));

    /* we are connected */

    while ( 1 ) {
//                if (sock_dataready( &s )) {
//                    sock_gets( &s, rbuffer, sizeof( rbuffer ));
//                        add_msg( remoteuser, rbuffer );
//                        sock_read( &s, inbuf, 5140 );
//                }
                *(unsigned int*)outbuf        = (unsigned int)512;
                outbuf[2] = 1;outbuf[3] = 2;
                sock_write( &s, outbuf,514 );
                delay(30);
                printf("Out data Over \n";
                if( kbhit() )
                        break;
    }
    exit( 0 );
    return (0);  /* not reached */
}

作者: 戴眼镜的马     时间: 2003-7-6 00:00
to-》》1。ttp://www.jkmicro.com/documentation/pdf/borland.pdf 这个地址仅仅是怎么创建一个*.prj。然后加入一个*.cpp文件,并没有说,怎么加入*.lib呀。
请你再验证一下,
作者: Lane     时间: 2003-7-6 00:00
我没有编过关于网络的程序,也没有在PRJ中加入过LIB………………
帮不上什么忙了…………


[此贴子已经被作者于2003-7-6 11:51:44编辑过]



作者: glinda     时间: 2003-7-7 00:00
to 秋蝉  那个地址连不上啊?能不能发给我一份啊?谢谢!
blue_viv@sohu.com
作者: glinda     时间: 2003-7-7 00:00
to 戴眼镜的马    在bc中lib文件是这么用的。但是你应该在工程文件中先将在库中包括了的源文件删掉。
作者: 戴眼镜的马     时间: 2003-7-7 00:00
to-->>glinda麻烦问一下:到底怎么用?

是否可以给我发一个编译已经通过了BC31的*.prj,并且在.prj中有库文件.lib包含的。

多谢。
作者: glinda     时间: 2003-7-7 00:00
直接加入lib文件就可以了,你那样做应该是没错的。
我也试着建了一个prj文件加入wattcp的库,不好使。不用咱们重新生成它的库吧?

另外我再问一个傻问题,写完的makefile文件该怎么用啊?:)多谢!


[此贴子已经被作者于2003-7-7 17:14:23编辑过]



作者: 戴眼镜的马     时间: 2003-7-7 00:00
to-->>glinda
怎么生成wattcp库呢。呵呵,如果可以生成那太好了。

makefile写好,在当前目录下运行make.exe程序,这个make程序是在\borlandc\bin目录下。所以你的Dos路径要设置一下path=c:\borlandc\bin,应该就可以了。以上的make是BC3.1的。
作者: glinda     时间: 2003-7-8 00:00
我还想问一下,makefile是不是于在编译器中编译一个工程有一样的作用啊?
作者: 戴眼镜的马     时间: 2003-7-8 00:00
to->>glinda

是的。makefile的作用就是工程文件的作用。

呵呵。

今天我听斑竹说,你的wattcp好像有点功力的,不知道是否写过一个wattcp的tcp程序呢。
作者: glinda     时间: 2003-7-8 00:00
我?不是吧,我也是刚起步啊。跟你还差得远呢!!
我是有任务,必须要搞这个啊!!只好硬着头皮上了,你看我净问些傻问题,就知道我没什么功底了。:)不过我想跟着它的例程编程,一定可以的。
大家一块切磋吧。看你的进展还更快些呢。多多指教啊!
作者: 戴眼镜的马     时间: 2003-7-8 00:00
呀,呵呵。下回成功的例子要贴出来呀

现在我的WATTCP程序运行10来分钟后,就出现问题了。
作者: 秋蝉     时间: 2003-7-11 00:00
-->to glinda 文档已经发送,请注意查收
-->带眼镜的马,这几天出差,没有继续
作者: 秋蝉     时间: 2003-9-3 00:00
好长时间没有捉摸这个了,这两天终于编译通过了,步骤如下
1。重新产生新的lib库
2。将工程文件里的程序后缀都变为*.C而不是*.CPP
3。加入新鲜的*.lib就可以了
在borlandc3.1的工程编译连接通过,并运行通讯正常
不过程序增加了100k:(


[此贴子已经被作者于2003-9-3 20:25:26编辑过]



作者: atong     时间: 2004-9-19 00:00
wattcp提供的是C函数库,若要编译C++程序,需要在包含头文件前加入如下指令:
#ifdef _cplusplus
extern "C"{

#include "wattcp.h"
}
#endif
必要时需要打开wattcp.h,在所有函数定义前加上上述语句,并重新编译wattcp库,否则便会在链接时发生错误。

作者: cdl     时间: 2004-9-20 00:00
我想给大家一个bc45的ping工程项目,但不知如何上传。我们公司的板子全跑wattcp协议栈,我自己做了很多例子如web、ftp、telnet等等。是bc45的工程项目。www.baby-pc.com
作者: cir2633     时间: 2010-1-29 10:50
\lib下的三个文件:wattcphg.lib, wattcplg.lib, wattcpsm.lib分别对应huge,large,small模式. 用ultraEdit打开, 可以看到"borland 3.1"字样的ascii码. 说明这三个库应该是borland 3.1下使用的,
实在不行, 就自己makefile, bc31\bin下不是有个make.exe吗, 和linux gcc的make狠相似的
作者: winson4829     时间: 2010-2-26 13:20
請參考 http://www.bgnett.no/~giva/

Borland C/C++ 要 4.x 版以後的 ~~~~

Supported Platforms

Watt-32 supports these compilers and environments:

GNU C/C++ 2.7 (or later) with djgpp 2.x DOS-extender.
Metaware HighC 3.x with PharLap DOS-extenders.
Borland C/C++ 4.x (or later), small/large/flat (PowerPak) models.
Watcom C/C++ 11.x (or later), small/large/flat (DOS4GW/Pharlap) models.
Microsoft Quick C v6.0 (or later), small/large model (Not fully working).
Digital Mars Compiler 8.34 (or later), small/large/32-bit (FlashTek X32) models.
LADSoft's CC386 2.32 (or later), flat model only (Not fully working).
Native WIN32 versions: MingW 3+, Visual-C 6+, OpenWatcom 1.2+ or PellesC (only tested with Win-XP).