Click here to Skip to main content
15,903,817 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
AnswerRe: C++ General Question Pin
Zac Howland15-Aug-06 9:30
Zac Howland15-Aug-06 9:30 
AnswerRe: C++ General Question Pin
Rilhas15-Aug-06 12:21
Rilhas15-Aug-06 12:21 
Questionhow i can send text to external program Pin
shortwave15-Aug-06 5:07
shortwave15-Aug-06 5:07 
QuestionRe: how i can send text to external program Pin
David Crow15-Aug-06 5:15
David Crow15-Aug-06 5:15 
AnswerRe: how i can send text to external program Pin
ms.linuz15-Aug-06 17:27
ms.linuz15-Aug-06 17:27 
AnswerRe: how i can send text to external program Pin
ensger16-Aug-06 2:45
ensger16-Aug-06 2:45 
GeneralRe: how i can send text to external program Pin
Hamid_RT16-Aug-06 5:07
Hamid_RT16-Aug-06 5:07 
QuestionRe: how i can send text to external program Pin
Hamid_RT16-Aug-06 5:07
Hamid_RT16-Aug-06 5:07 
AnswerRe: how i can send text to external program Pin
shortwave19-Aug-06 3:08
shortwave19-Aug-06 3:08 
QuestionHas a DLL been renamed? Pin
D G McKay15-Aug-06 4:50
D G McKay15-Aug-06 4:50 
QuestionDestroying window with popup menu Pin
Johniteq15-Aug-06 4:27
Johniteq15-Aug-06 4:27 
AnswerRe: Destroying window with popup menu Pin
Maximilien15-Aug-06 4:59
Maximilien15-Aug-06 4:59 
GeneralRe: Destroying window with popup menu Pin
Johniteq16-Aug-06 1:37
Johniteq16-Aug-06 1:37 
AnswerRe: Destroying window with popup menu Pin
Michael Dunn15-Aug-06 13:12
sitebuilderMichael Dunn15-Aug-06 13:12 
GeneralRe: Destroying window with popup menu Pin
Johniteq16-Aug-06 1:42
Johniteq16-Aug-06 1:42 
QuestionStill need help with FTPConnection Pin
racing5715-Aug-06 4:20
racing5715-Aug-06 4:20 
AnswerRe: Still need help with FTPConnection Pin
includeh1015-Aug-06 6:49
includeh1015-Aug-06 6:49 
GeneralRe: Still need help with FTPConnection Pin
racing5715-Aug-06 10:50
racing5715-Aug-06 10:50 
GeneralRe: Still need help with FTPConnection Pin
thangnvhl15-Aug-06 21:53
thangnvhl15-Aug-06 21:53 
GeneralRe: Still need help with FTPConnection Pin
racing5715-Aug-06 23:00
racing5715-Aug-06 23:00 
GeneralRe: Still need help with FTPConnection Pin
Justin Tay16-Aug-06 2:23
Justin Tay16-Aug-06 2:23 
GeneralRe: Still need help with FTPConnection Pin
racing5716-Aug-06 3:46
racing5716-Aug-06 3:46 
GeneralRe: Still need help with FTPConnection Pin
Justin Tay16-Aug-06 22:01
Justin Tay16-Aug-06 22:01 
Questiontimers without windows Pin
m.dietz15-Aug-06 4:09
m.dietz15-Aug-06 4:09 
Hi,

In a current project I need a class that monitors some maintenance data and regularly writes them to a log file. As this class is used in different modules in different ways, the functions should be encapsulated as best as possible and the usual way of using this class should be by giving a filename to the constructor to configure the instance and then calling Collect() to immediately collect and log the data or calling EnableTimer(time_span) to regularly log the data to the log file every time_span milliseconds.

The problem I can't solve is the timer. My first approach was

<br />
<br />
BOOL CMaintMonitor::EnableTimer(UINT interval)<br />
{<br />
    if(bl_TimerEnabled) StopTimer();<br />
    bl_TimerEnabled = TRUE;<br />
    ui_TimerInterval = interval;<br />
    TimerID = SetTimer(NULL, 0, interval, TimerFunction);<br />
    if(!TimerID)<br />
    {<br />
        bl_TimerEnabled = FALSE;<br />
        ui_TimerInterval = 0;<br />
        return FALSE;<br />
    }<br />
    return TRUE;<br />
}<br />
<br />
...<br />
<br />
BOOL CMaintMonitor::StopTimer()<br />
{<br />
    if(bl_TimerEnabled)<br />
    {<br />
        bl_TimerEnabled = FALSE;<br />
        ui_TimerInterval = 0;<br />
        KillTimer(TimerID);<br />
    }<br />
    return TRUE;<br />
}<br />


TimerFunction was thought as a private method of CMaintMonitor that calls Collect(). Visual C++ didn't like this approach, telling me that it couldn't convert parameter 4 of SetTimer from void(...) to void(__stdcall *)(...). Reading the help pages again I saw that this function is meant to send a WM_TIMER message to a window whose message processing function should call the provided function instead of standard functions, so it still needs a WM_TIMER message processing even if the window handle provided is NULL Confused | :confused: .

The problem now is that I can't call a global function (I think this is what the compiler wants to say with the (__stdcall *) part of the error message) as Collect is a member function of an instance of CMaintMonitor using instance member data to do its work. So even if I found a way to use a global function for that timer event, I still need a way to give a pointer to my CMaintMonitor instance to that function for the call to Collect(), but I don't see a way to do so.

Can anyone help me solving the problem with that timer? This class should come without a user-Interface, so there is no window I can abuse to handle the timer event, and I can't even use the window of a caller as there are a lot of modules which come without UI either but still need to to use my monitor class. I'm new to programming under Windows, so I don't know if there might be an easy workaround for this problem I just don't know.

Thanks in advance
Martin Dietz
AnswerRe: timers without windows Pin
led mike15-Aug-06 4:26
led mike15-Aug-06 4:26 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.