当前位置:  技术问答>linux和unix

Linux g++编译调用模板函数的类不通过,但是VC2005通过

    来源: 互联网  发布时间:2016-08-07

    本文导语:  调用的错误为 UserMgr::RPCallFunc(uint 64, uint32,uint32, RPCCall) 调用没有匹配的函数 备选为 RPCallFunc(uint 64, unint32, uint32, RPCaller&)[with RPCCaller = RPCCall] 初步分析下来,是由于类型没有正确替换而导致编译不通过。 但是在VS2K5下编...

调用的错误为
UserMgr::RPCallFunc(uint 64, uint32,uint32, RPCCall) 调用没有匹配的函数
备选为 RPCallFunc(uint 64, unint32, uint32, RPCaller&)[with RPCCaller = RPCCall]
初步分析下来,是由于类型没有正确替换而导致编译不通过。
但是在VS2K5下编译是通过的。现在没有思路了各位帮忙。

以下为工程的介绍
一个RPCall的工程,大部分是模板对传进来的类型进行替换,而后被调用。注:该工程在VS2k5和linux都编译通过
一个RPCService的控制台程序,对RPCall进行调用。注:该工程在vs2k5下编译通过。在linux下在调用模板的函数的地方出错

以下为代码:
调用的地方
Orgstatus(std::string& _name, uint32 guid, int _g)
{
   ....
    RPCallfunc(itr->second,GetSeq(),QUERY_FLAT,RPC_BIND_PARA(guid, _name,guid)//这里调用出错的。
}

template
bool RPCallfunc(uint64 guid,uint32 svrseq, uint32 funcSeq, RPCaller &caller, uint transid = 0, bool footy = fase)
{
   return RPCallfunc(guid,svrseq,funcseq,&caller,transid,footy);
}


RPC_BIND_PARA方法:
template
RPCCallP1
RPC_BIND_PARA(A1 a1)
{
   return RPCCallP1(a1);
}

RPCCallP1类:
tempalte
class RPCCallP1: public IRPCCallP
{
   public:
    RPCCallP1(A1 &a):_a1(a1){...}
     void operator()(wt& pkt){...}
   private:
   A1 _a1;
}

百思不得其解。尝试着指定其类型
RPCallP1 a = RPC_BIND_PARA(guid);
然后再进行调用,可以编译通过,但是接下来有很多的回调函数,使用地址的这种方法就无效了。
有哪个朋友能帮下忙。谢谢。

|
LZ的帖子看着太难受了~~~~~~

    
 
 

您可能感兴趣的文章:

  • linux下通过crond实现自动执行程序
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • 如何通过 Docker 在 Linux 上托管 .NET Core
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户
  • Linux下通过rpm安装软件详细介绍以及如何将软件安装到指定目录
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户 100分相赠
  • linux下能通过ip地址ping通其它机器,通过计算机名ping不通怎么解决?
  • 工作站Redhat Linux7.2如何通过NT4.0 proxy代理服务器上网,我不能通过其验证!请高手指点思路和方法!
  • 书写基于Linux内核的键盘记录器(Writing Linux Kernel Keylogger)中的源码如何编译通过???
  • 我没有linux安装光盘!可不可以通过网络在我的电脑上安装一个linux操作系统!
  • vmware装的linux,通过win2000访问linux的web服务器有问题
  • 98的机子有modem,linux的无,能否通过共享使linux的机子都能上网?
  • codeblocks8.02 for linux,程序可以编译通过,但是通过右键“查找fopen函数的声明”或“实现”,都是提示“没有找到:fopen”,为什么
  • linux能够通过执行脚本添加oracle数据库的用户吗
  • 我刚安装了Linux,但我不知道如何才能通过Moden上网呢?
  • linux如何通过SyGate服务器上网?
  • linux通过局域网上internet
  • 请问通过什么来管理linux服务
  • window下通过ftp执行linux脚本?
  • 请教为什么在C++编译通过并实现的程序,在linux下就会出错
  • 红旗linux怎么设置通过服务器共享上网?
  • linux/centos源码安装nginx编译配置选项参数介绍
  • 嵌入式linux开发:一段代码在windows平台用VC编译运行正常,在linux平台用gcc编译运行正常,但是用arm-linux-gcc编译在嵌入式板子上运行就不正常.
  • linux 64位编译出错。linux 32位可以编译过。
  • 关于在linux交叉编译powerpc-e300c3-linux-gcc的编译问题
  • Linux下gcc编译时,如何以静态链接的形式编译?
  • linux下有没有能编译出16bit代码的C语言编译器?
  • 现要在一台Pentium100上安装LINUX操作系统,能不能不选用别的品牌的LINUX,而直接用内核编译,然后再加上编译器和SHELL等等其它东西?如
  • linux下可以编译c但是如何编译c++
  • arm-linux-gcc交叉编译出错,但gcc编译没错,什么原因呢???
  • 谁编译过PLX9054 Linux的驱动程序,我给100分教我编译和安装??
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux添加系统调用时如何调用C语言库函数
  • linux中为什么系统调用比普通函数调用更费时间?
  • 为什么我的BEAN 在WIN2000中调用没有问题,但在LINUX中调用有问题
  • 如何在LINUX下用一个普通文件调用一个自己编写的调用系统的文件
  • LINUX下系统调用是不能中断的,要怎么改造成可以中断系统调用?
  • 请问linux中的系统调用号是如何跟系统调用表对应起来的
  • 新手:Linux下使用第三方C库(openssl),是调用.so文件还是直接调用.h文件?
  • linux系统调用问题
  • 我如何调用 内核函数 /linux/fs 里面的内核 函数:比如 自己的程序调用 ext3_delete_inode
  • 关于Linux系统调用的问题!
  • 请教在linux中如何动态的增加一个系统调用(模块中)
  • Linux环境下,如何一个驱动中调用另外一个驱动
  • linux:怎么在驱动中调用IIC驱动?
  • linux下在Qt中调用flash播放器
  • 如何达到我这种linux下的系统调用效果
  • window下能否调用linux的静态库(a文件)?
  • Qt下使用Linux系统调用?
  • linux3.0.0.12内核怎么添加系统调用
  • C库函数和linux系统调用区别
  • 请问各位linux开发大虾,linux下有类似VC中depends的工具可以查看文件调用了哪些so文件吗?
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • Linux下gcc编译时,如何以静态链接的形式编译? iis7站长之家
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在没有linux的盘,只有DOS启动盘)
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3