• 4916阅读
  • 2回复

调用win32 api后连接出错的问题 [复制链接]

上一主题 下一主题
离线mhmdanger
 
只看楼主 倒序阅读 楼主  发表于: 2006-11-24
— 本帖被 XChinux 从 Qt for Linux/X11 移动到本区(2010-02-08) —
  我在windows平台下写了一段程序,包括了头文件<winsock2.h>,然后调用了recv函数,编译时通过了,我用如下命令进行连接:gcc -shared -o apihook.dll apihook.o -Wl,--out-implib,libapihook.a
在连接的时候却出错了:undifined reference to 'recv@16'
我查看了ws2_32.dll发现其输出函数名为recv而非recv@16, 我该如何做呢?
[ 此贴被XChinux在2007-08-12 17:35重新编辑 ]
离线fanyu
只看该作者 1楼 发表于: 2006-11-24
楼主您好,您引用导出函数时加上extern "C",试试看。
离线mhmdanger
只看该作者 2楼 发表于: 2006-11-24
引用第1楼fanyu2006-11-24 14:11发表的“”:
楼主您好,您引用导出函数时加上extern "C",试试看。


谢谢您的回复,recv函数在winsock2.h中这么定义的:int PASCAL recv(SOCKET,char*,int,int);
您的意思是我需在这个前面加上extern "C" ?
还有就是我忘了说了哈,我用的 C 编译器,而没有用到其C++版编译器,加上extern "C"好像编译时候要出错。
快速回复
限100 字节
 
上一个 下一个