c++-函数转换时碰到问题,未破,求助各位朋友,非常感谢!!!

问题描述

函数转换时碰到问题,未破,求助各位朋友,非常感谢!!!

编译时的错误提示:

 pmd/pmdEDU.cpp: In function ‘int (* getEntryFuncByType(EDU_TYPES))(pmdEDUCB*, void*)’:
pmd/pmdEDU.cpp:94:4: error: invalid conversion from ‘int (*)(pmdEDUCB, void*)’ to ‘pmdEntryPoint {aka int (*)(pmdEDUCB*, void*)}’ [-fpermissive]
    } ;

其中函数的声明及实现如下:

头文件中声明:
pmdEDU.hpp

typedef int (*pmdEntryPoint) ( pmdEDUCB *, void * ) ;
pmdEntryPoint getEntryFuncByType ( EDU_TYPES type ) ;

int pmdAgentEntryPoint ( pmdEDUCB *cb, void *arg ) ;

pmdEDU.cpp文件中实现代码如下:

struct _eduEntryInfo
{
   EDU_TYPES type ;
   int regResult ;
   pmdEntryPoint entryFunc ;
} ;
define ON_EDUTYPE_TO_ENTRY1(type,system,entry,desp)
{ type, registerEDUName(type,desp,system), entry }

pmdEntryPoint getEntryFuncByType ( EDU_TYPES type )
{
   pmdEntryPoint rt = NULL ;
   static const _eduEntryInfo entry[] = {
      ON_EDUTYPE_TO_ENTRY1 ( EDU_TYPE_AGENT, false,
                             pmdAgentEntryPoint,
                             "Agent" ),
      ON_EDUTYPE_TO_ENTRY1 ( EDU_TYPE_TCPLISTENER, true,
                             pmdTcpListenerEntryPoint,
                             "TCPListener" ),
      ON_EDUTYPE_TO_ENTRY1 ( EDU_TYPE_MAXIMUM, false,
                             NULL,
                             "Unknown" )
   } ;
   static const unsigned int number = sizeof ( entry ) /
                                      sizeof ( _eduEntryInfo ) ;
   unsigned int index = 0 ;
   for ( ; index < number; ++index )
   {
      if ( entry[index].type == type )
      {
         rt = entry[index].entryFunc ;
         goto done ;
      }
   }
done :
   return rt ;
}

编译环境:debian sid g++4.8.2

我没发现问题出现在哪儿,烦劳各位了

解决方案

函数指针转换时,类型有点对不上,错误信息提示你了

时间: 2024-09-12 03:44:53

c++-函数转换时碰到问题,未破,求助各位朋友,非常感谢!!!的相关文章

用vs2015和opencv做人脸识别时碰到LNK2019的错误

问题描述 用vs2015和opencv做人脸识别时碰到LNK2019的错误 错误如下: 不是链接器的问题,应该是代码的问题,但我对c++和vs还不太熟悉.请哪位大神告知.代码如下: #include "stdafx.h" #include #include #include "opencv2/core.hpp" #include "opencv2/face.hpp" #include "opencv2/highgui.hpp"

c++的问题-vc下链接时出现Gcicle未声明怎么解决,查了相关资料无法解决呀

问题描述 vc下链接时出现Gcicle未声明怎么解决,查了相关资料无法解决呀 程序的代码如下,希望大家帮忙看一下,谢谢! #include #include void DrawCicle(int x,int y,int r=10) { GCircle(x,y,r); } int main() { DrawCicle(0,0); DrawCicle(100,125); DrawCicle(50,20); DrawCicle(70,25,20); return 0; } 解决方案 GCircle函数

textbox-sql 行列转换时,空值如何设置成0

问题描述 sql 行列转换时,空值如何设置成0 在用Sql静态方法进行行列转换时,数据库存在的空值如何处理?我想空值变为0. create table tb(姓名 varchar(10) , 学号 varchar(10), 课程 varchar(10) , 分数 int) insert into tb values('张三' ,'123456', '语文' , 74) insert into tb values('张三' ,'123456', '数学' , 83) insert into tb

对象布局已知时 C++ 对象指针的转换时地址调整

在我调试和研究 netscape 系浏览器插件开发时,注意到了这个问题.即,在对象布局已知(即对象之间具有继承关系)时,不同类型对象的指针进行转换(不管是隐式的从下向上转换,还是强制的从上到下转换)时,编译器会根据对象布局对相应的指针的值进行调整.不管是 microsoft 的编译器,还是 gcc 编译器都会做这个动作,因为这和 C++ 对象模型有关.   举一个简单的例子,如下代码:   #include <stdio.h> class A { public: int x; void foo

for-关于 += 在被调用函数中时的问题。

问题描述 关于 += 在被调用函数中时的问题. int add(int a){int b = 0: b += 1;}int main (void){int a =0;int i = 0;for(i = 0;i<= 5;i++){printf(""%dn""add(a));}return 0;}如果通过循环调用函数的话, b += 1;怎么进行赋值? 解决方案 使用指针或引用都可以达到要求,一般教科书上会使用指针. void add(int *a){ *a =

asp.net-小白看一段ASP.NET源代码时碰到的问题

问题描述 小白看一段ASP.NET源代码时碰到的问题 1C 图里面的 登录,注册,管理员登陆均点不了,其他功能正常.相关源代码: web层 <%@ Page Language=""C#"" AutoEventWireup=""true"" CodeBehind=""Gbook.aspx.cs"" Inherits=""_28_1.Gbook""

使用convert函数转换。。。

函数|转换 在查询中加上convert转换...convert(varchar(10),字段名,转换格式) 比如:select user_id,convert(varchar(10),date,11) as date from tb_user 转换格式:0或100 month dd yyyy hh:miAMPM1  mm/dd/yy2 yy.mm.dd3 dd/mm/yy4 dd.mm.yy5 dd-mm-yy6 dd month yy7 month dd,yy8 hh:mi:ss9或109 m

oracle分区表述的FOR语句(下)测试FOR语句时碰到的ORA-14702错误

指定一个分区除了使用分区名称外,很多时候还可以使用FOR语句. 这篇描述测试FOR语句时碰到的ORA-14702错误. 仍然使用上一篇文章的例子: SQL> CREATE TABLE T_PART_RANGE 2  (ID NUMBER, 3  NAME VARCHAR2(30), 4  CREATE_DATE DATE) 5  PARTITION BY RANGE (CREATE_DATE) 6  (PARTITION P1 VALUES LESS THAN (TO_DATE('2009-1'

JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法

         JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法          这篇文章主要介绍了JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法,因转换的字符串数字都以0开头,导致parseInt函数在浏览器和Android WebView中转换结果不一样,本文给出了解决方法,需要的朋友可以参考下 今天被一个问题困扰,有一个页面在浏览器(无论是手机还是PC)上运行良好,而通过WebView就出