Помогите,плиз! error C2440: '=' : cannot convert from to
От: sir-bald  
Дата: 11.10.05 07:31
Оценка:
Здравствуйте!
Вот вылазит следующая ошибка в vc++
error C2440: '=' : cannot convert from 'void (__cdecl *)(char *,char *)' to 'void (__cdecl *)(...)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

вот строка, на которую ругается
xpar.cmd_handler = Kas;
вот как описан cmd_handler
typedef struct x_PAR
{
......
void (*cmd_handler)(__free_args__);
......
} x_PAR;

а вот что такое Kas
void Kas(char *lid, char *lid2);

Как можно решить данную проблему?
PS:
структура x_PAR и Kas описаны только в сишных хедерах, самого кода к функции нет, есть тока библиотека

Заранее спасибо за любые советы.
Re: Помогите,плиз! error C2440: '=' : cannot convert from to
От: jazzer Россия Skype: enerjazzer
Дата: 11.10.05 07:34
Оценка:
Здравствуйте, sir-bald, Вы писали:

SB>Здравствуйте!

SB>Вот вылазит следующая ошибка в vc++
SB>error C2440: '=' : cannot convert from 'void (__cdecl *)(char *,char *)' to 'void (__cdecl *)(...)'
SB> This conversion requires a reinterpret_cast, a C-style cast or function-style cast

SB>вот строка, на которую ругается
SB> xpar.cmd_handler = Kas;
SB>вот как описан cmd_handler
SB>typedef struct x_PAR
SB>{
SB>......
SB> void (*cmd_handler)(__free_args__);
SB>......
SB>} x_PAR;

SB>а вот что такое Kas
SB>void Kas(char *lid, char *lid2);

что такое __free_args__?

SB>Как можно решить данную проблему?


Так а что тебе нужно-то в результате?
Можно сделать так, как тебе посоветовал компилятор — применить reinterpret_cast.

SB>PS:

SB>структура x_PAR и Kas описаны только в сишных хедерах, самого кода к функции нет, есть тока библиотека
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: Помогите,плиз! error C2440: '=' : cannot convert from
От: sir-bald  
Дата: 11.10.05 07:57
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, sir-bald, Вы писали:


SB>>Здравствуйте!

SB>>Вот вылазит следующая ошибка в vc++
SB>>error C2440: '=' : cannot convert from 'void (__cdecl *)(char *,char *)' to 'void (__cdecl *)(...)'
SB>> This conversion requires a reinterpret_cast, a C-style cast or function-style cast

SB>>вот строка, на которую ругается
SB>> xpar.cmd_handler = Kas;
SB>>вот как описан cmd_handler
SB>>typedef struct x_PAR
SB>>{
SB>>......
SB>> void (*cmd_handler)(__free_args__);
SB>>......
SB>>} x_PAR;

SB>>а вот что такое Kas
SB>>void Kas(char *lid, char *lid2);

J>что такое __free_args__?


SB>>Как можно решить данную проблему?


J>Так а что тебе нужно-то в результате?

J>Можно сделать так, как тебе посоветовал компилятор — применить reinterpret_cast.

SB>>PS:

SB>>структура x_PAR и Kas описаны только в сишных хедерах, самого кода к функции нет, есть тока библиотека

Да, забыл написать... вот что такое __free_args__
#ifdef __cplusplus
#define __free_args__ ...
#else
#define __free_args__
#endif


Спасибо!
а не особый программер в vc++, так что почему то не пробовал использовать reinterpret_cast
а ща попробовал и вроде скомпилило,спасибо!!!
Re[3]: Помогите,плиз! error C2440: '=' : cannot convert from
От: sir-bald  
Дата: 11.10.05 11:41
Оценка:
Здравствуйте, sir-bald, Вы писали:

SB>Здравствуйте, jazzer, Вы писали:


J>>Здравствуйте, sir-bald, Вы писали:


SB>>>Здравствуйте!

SB>>>Вот вылазит следующая ошибка в vc++
SB>>>error C2440: '=' : cannot convert from 'void (__cdecl *)(char *,char *)' to 'void (__cdecl *)(...)'
SB>>> This conversion requires a reinterpret_cast, a C-style cast or function-style cast

SB>>>вот строка, на которую ругается
SB>>> xpar.cmd_handler = Kas;
SB>>>вот как описан cmd_handler
SB>>>typedef struct x_PAR
SB>>>{
SB>>>......
SB>>> void (*cmd_handler)(__free_args__);
SB>>>......
SB>>>} x_PAR;

SB>>>а вот что такое Kas
SB>>>void Kas(char *lid, char *lid2);

J>>что такое __free_args__?


SB>>>Как можно решить данную проблему?


J>>Так а что тебе нужно-то в результате?

J>>Можно сделать так, как тебе посоветовал компилятор — применить reinterpret_cast.

SB>>>PS:

SB>>>структура x_PAR и Kas описаны только в сишных хедерах, самого кода к функции нет, есть тока библиотека

SB>Да, забыл написать... вот что такое __free_args__

SB>#ifdef __cplusplus
SB>#define __free_args__ ...
SB>#else
SB>#define __free_args__
SB>#endif


SB>Спасибо!

SB>а не особый программер в vc++, так что почему то не пробовал использовать reinterpret_cast
SB>а ща попробовал и вроде скомпилило,спасибо!!!

А у меня теперь возник другой вопрос:
А можно как-нить сделать без reinterpret_cast ???
Re[4]: Помогите,плиз! error C2440: '=' : cannot convert from
От: Warturtle  
Дата: 11.10.05 12:28
Оценка:
Здравствуйте, sir-bald, Вы писали:

J>>>Здравствуйте, sir-bald, Вы писали:


SB>>>>Здравствуйте!

SB>>>>Вот вылазит следующая ошибка в vc++
SB>>>>error C2440: '=' : cannot convert from 'void (__cdecl *)(char *,char *)' to 'void (__cdecl *)(...)'
SB>>>> This conversion requires a reinterpret_cast, a C-style cast or function-style cast

SB>>>>вот строка, на которую ругается
SB>>>> xpar.cmd_handler = Kas;
SB> ...
SB>А у меня теперь возник другой вопрос:
SB>А можно как-нить сделать без reinterpret_cast ???
можно его не писать
typedef void (__cdecl *)(__free_args__) FuncPtr;
//...
xpar.cmd_handler = (FuncPtr)Kas;
//...

— только он (reinterpret_cast) там все равно будет!
здесь
Автор: Vamp
Дата: 28.01.04
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.