perl和C++函数重名问题

zdd198410 2009-06-25 11:12:51
现在写一个网络爬虫,URL分析部分使用PERL实现,在C++中调用PERL程序,其中c++中的函数gethostbyname和PERL语言中的gethostbyname同名冲突,程序不知道调用的是哪个函数,具体该如何解决,请高手帮忙,实在搞不定了
...全文
42 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdd198410 2009-06-25
  • 打赏
  • 举报
回复
还想不到什么其他的办法,再去看看PERL的文档,实在不行就只能把C++的gethostbyname自己重写下了
Aylazhang 2009-06-25
  • 打赏
  • 举报
回复
那说明
EXTERN.h
perl.h 这两个文件有重定义问题,这个编译通都不过。修改其中一个吧,或者有其它的overloading的方法?
zdd198410 2009-06-25
  • 打赏
  • 举报
回复
C++程序中 #include <EXTERN.h> 和#include <perl.h>两个头文件后,在程序中再调用gethostbyname函数时,就产生问题。不包含这两个头文件的时候就没有问题
zdd198410 2009-06-25
  • 打赏
  • 举报
回复
在C++程序中 #include<EXTERN.h> 和#include<perl.h>两个头文件后,在程序中再调用gethostbyname函数时,就产生问题。不包含这两个头文件的时候就没有问题。
Aylazhang 2009-06-25
  • 打赏
  • 举报
回复
贴出除问题的代码段。 perl的话,可以main::xxx这样访问主程序的函数。
zdd198410 2009-06-25
  • 打赏
  • 举报
回复
实在解决不了这个问题了。最后采取了一个手段避免它的发生。
类名:mySpider
文件:mySpider.h mySpider.cpp
成员函数Download,这个函数要使用gethostbyname;
成员函数searchUrl,这个函数负责调用PERL子程序;

把#include <EXTERN.h> 和#include <perl.h>包含在 mySpider.cpp文件中,把Download函数的实现放在mySpider.h 中,从而使EXTERN.h 和perl.h文件对Download函数不可见,编译运行通过,问题变相解决。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧