Отговори на тема  [ 39 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща
Microsoft Visual C++ Въпроси 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
и така не е това е резултата
1>.\FTDI_TerminalDlg.cpp(445) : error C2171: '*' : illegal on operands of type 'void (__thiscall CFTDI_TerminalDlg::* )(void)'
1>.\FTDI_TerminalDlg.cpp(445) : error C2064: term does not evaluate to a function taking 0 arguments


Нед Яну 22, 2006 6:57 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение 
А така:

Код:
CFTDI_TerminalDlg object;

...

(object.*TimerPointer)()


???


Нед Яну 22, 2006 8:12 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Дай да започнем от начало. :)

Какво ще рече:

Код:
TimerPointer = &CFTDI_TerminalDlg::CSimpconTimer;


Нед Яну 22, 2006 9:53 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Така го инициализирам с функцията void CSimpconTimer() от същия клас.

както се очаква че би трябвало да стане имициализацията
TimerPointer = CSimpconTimer;

не го приема и казва даже че трябва да го направя така:
TimerPointer = &CFTDI_TerminalDlg::CSimpconTimer;

на това не дава грешка но като се опитам да го ползвам

TimerPointer();
ми дава тая грешка
1>.\FTDI_TerminalDlg.cpp(260) : error C2064: term does not evaluate to a function taking 0 arguments

дори и да му кажа изрично
this->TimerPointer();
пак дава същата грешка.


Нед Яну 22, 2006 10:12 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
А статична ли е ф-ята?


Нед Яну 22, 2006 10:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Не, Нямам ли право да викам нестатична функция по този начин


Нед Яну 22, 2006 11:17 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Нямаш, разбира се. :)


Нед Яну 22, 2006 11:45 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Нещо не схващам нали указателя ми сочи към конкретното и копие в съответния обект.
Защо да не мога да я викам


Нед Яну 22, 2006 11:52 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Всяка член-функция на клас й се предава един скрит параметър - this. При положение, че нямаш инстанция на класа, тоя параметър е неопределен.


Пон Яну 23, 2006 12:04 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Защо да нямам инстанция на класа,нещо не разбирам.

Аз правя указател към функция които е член на класа и е указател към функция в този клас. Инициализирам го също в този клас в инстанция на класа. Този калас ми се явява в случая основния диалог на програмата (Dialog Based). Всичко ми се вижда логично ама явно че пропускам нещо


Пон Яну 23, 2006 12:53 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение 
Нямаш създаден обект. Без обект не можеш да викаш член ф-ии, освен ако не са статични.


Пон Яну 23, 2006 10:36 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 26, 2005 2:01 pm
Мнения: 1952
Местоположение: Варна
Мнение 
Nikola Kirov написа:
дори и да му кажа изрично
this->TimerPointer();
пак дава същата грешка.

Опитай
Код:
(this->*TimerPointer)();


Пон Яну 23, 2006 2:08 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Един въпрос пак имам.
имам си tread
UINT __cdecl SerialPortRecTread( LPVOID pParam )

гледам че си има връщана стоиност тип UINT

тя само за цели на операционната ситема ли е или мога да си я прехващам някак си и да я ползвам?

Иначе не е проблем да си връщам по други начини информация за завършването на процеса но ми стана интересно дали си няма някаква полза от тази върната стоиност.


Пет Май 26, 2006 2:03 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Сря Мар 22, 2006 3:25 am
Мнения: 6418
Мнение 
има едно му се казва MSDN (не знам какво точно означава) няколко диска е инсталираш си го там всичко си пише един приател който ми пишеше програмки на времето всичко от там четеше дори неща които никога не е правил


Пет Май 26, 2006 8:55 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Окт 31, 2004 9:19 pm
Мнения: 4464
Местоположение: Stara Zagora
Мнение 
Благодаря,никога не бях чувал за такова нещо.
Това ще е голяма работа.
Готов отговор на всичките ми въпроси.
Даже и на тия които още не съм си задал.
Благодаря :D


Пет Май 26, 2006 9:15 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 39 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 16 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни