Еще раз о приведении типов

Тема в разделе "LANGS.C", создана пользователем Magnum, 25 окт 2011.

  1. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Привет
    Есть функция А. Она принимает в качестве аргемента-колбека указатель на функцию Б.

    Прототипы функций:
    BOOL _fastcall FuncB(int x);
    BOOL _fastcall FuncA(FUNCB_CALLBACK Callback);

    Теперь вопрос.
    Есть функция C
    Прототип:
    BOOL _fastcall FuncC(PCHAR pName);

    Нужно функции А в качестве колбека скормить указатель на функцию C.
    Компилятор ругается, т.к. функции имеют разные прототипы.
    Прототипы изменять я не могу.
    Вопрос: как функции А правильно передать аргументом функцию С ?
     
  2. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    Уточняйте какой компилятор. Но

    Код (Text):
    1. FuncA((FUNCB_CALLBACK)FuncC);
    Должно работать.
     
  3. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Visual Studio 2005
     
  4. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Magnum

    c cast, function-style cast, union, и, возможно, reinterpret_cast