|
You always send a buffer therefore the function first parameter is const void* lpBuf.
the trick is to know what you are sending and be able to read it on the other side.
so if you know you need to send a variable, translate it to the buffer (using simple Format of CString for example) and on the other side read the buffer and do a simple number translation (_ttol for example)
hope this helps ya
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
hey thanks.wat u suggested to me was really useful.. it worked..
there is always a tomorrow
|
|
|
|
|
|
You ask "which module the thread belong to?". This question doesn't really make sense - A thread can "weave" through multiple modules (and in general does).
Steve
|
|
|
|
|
I didn't use your link.
I think u can numerate all processes, and enumerate all threads of every process to find the thread you request.
A special image tool for Windows C++ programmers, don't miss it!
The world unique Software Label Maker is waiting for you and me ...
A nice hyper tool for optimizing your Microsoft html-help contents.
|
|
|
|
|
Looks like it’s the symbol for the thread entry point. I had a brief look but couldn't see any easy way to get this info - It didn't seem to be in any of the well known fields of the TIB for example. You could examine the bottom of the threads stack I guess.
Steve
|
|
|
|
|
hi
I want to Send mails in my MFC application using SMTP.Can any one provide me with sample code or links?
"Every morning I go through Forbes list of 40 richest people in the world. If my name is not in there, I go to work..!!!"
|
|
|
|
|
|
|
Hi brothers
I have written one application. This will connect more than 200 machine at a time using WNetAddConnection2(). 75% of machine are connected successfully but rest of them not connected. Error message is ‘The net work path is not found’ (error no 53) . But I can connect manually . If I run the same program, the same machine which is not connected previously is connected this time. But only 75% of machines are connected. I use multithread for connection. Domain, login user and password are ok .
How can solve this problem.
|
|
|
|
|
hi,
I am trying to owner draw a CMenu item. I want to change the color of menu. I changed the background color and text color. But is there any way to change the border color?
nave
-- modified at 0:45 Tuesday 4th April, 2006
|
|
|
|
|
|
|
Hi everyone,
I am trying to develop a Dialog based application for a device communicating through RS 232 serial Port. The serial port receives the new samples of data every 100 milli seconds. I am trying to display the message in a textbox and write the data to a file. For this purpose, i created a thread for receiving data. I am using a Timer with 100 milli seconds for Updating the textbox and writing the received data to the file.
The Problem now i am facing is, when the file gets full, i am trying to display error message and stop the timer. But Timer is not getting stopped by KillTimer().Timer continues in the running state.
BOOL MyDlg::OnInitDialog()
{
....
...
ConfigureSerialPort();
AfxBeginThread(Serial, NULL,THREAD_PRIORITY_NORMAL,0,0,NULL);
return TRUE;
}
void CMyDlg::OnClickStart()
{
fp = fopen(file_name,"a");
if (NULL == fp)
{
MessageBox ("Error Writing File",NULL, MB_OK|MB_ICONSTOP);
KillTimer(m_nTimer);
}
m_nTimer = SetTimer(1, 100, NULL);
fprintf(fp,"%d\n",status);
}
void CMyDlg::OnTimer(UINT nIDEvent)
{
OnClickStart();
CDialog::OnTimer(nIDEvent);
}
UINT Serial(LPVOID pParam)
{
while(1)
{
DWORD dwBytesTransferred;
ReadFile (hPort,
inbuf,
60,
&dwBytesTransferred,
NULL);
Sleep(100);
}
return TRUE;
}
Please help me regarding this problem. I am New to MultiThreading Concepts.
Thanks.
Chetan.
Helping others satisfies you...
|
|
|
|
|
chetan210183 wrote: The Problem now i am facing is, when the file gets full, i am trying to display error message and stop the timer. But Timer is not getting stopped by KillTimer().Timer continues in the running state.
This is because you are setting the timer again in OnClickStart . Why are you doing this? You don't have to set it again and again as you are doing now.
chetan210183 wrote: void CMyDlg::OnClickStart()
{
fp = fopen(file_name,"a");
if (NULL == fp)
{
MessageBox ("Error Writing File",NULL, MB_OK|MB_ICONSTOP);
KillTimer(m_nTimer);
}
m_nTimer = SetTimer(1, 100, NULL);
fprintf(fp,"%d\n",status);
}
Look at the lines in bold. You first Kill the timer and then again you set it. So how can you expect it to stop at all.
chetan210183 wrote: void CMyDlg::OnTimer(UINT nIDEvent)
{
OnClickStart();
CDialog::OnTimer(nIDEvent);
}
Again inside the timer function you are calling OnClickStart which in turn again sets the timer.
What you should be doing is...
void CMyDlg::OnClickStart()
{
m_nTimer = SetTimer(1, 100, NULL);
}
And now inside the timer function
void CMyDlg::OnTimer(UINT nIDEvent)
{
fp = fopen(file_name,"a");
if (NULL == fp)
{
MessageBox ("Error Writing File",NULL, MB_OK|MB_ICONSTOP);
KillTimer(m_nTimer);
}
}
Note: Well this is just guess work about what you want to do. You will have to modify the above procedure based on your requirements
Nibu thomas
Software Developer
|
|
|
|
|
Thanks for the Reply.
But without a messagebox, the code excecutes properly. When messageBox is inserted it is leading to infinite loop.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/timers/timerreference/timermessages/wm_timer.asp
In the above link, they have mentioned a statement like below.
"The WM_TIMER message is a low-priority message. The GetMessage and PeekMessage functions post this message only when no other higher-priority messages are in the thread's message queue. "
So instead of Timers , can i use threads and loop the function?
I mean replacing the Timers with Threads.
Thanks.
Chetan.
Helping others satisfies you...
|
|
|
|
|
chetan210183 wrote: "The WM_TIMER message is a low-priority message. The GetMessage and PeekMessage functions post this message only when no other higher-priority messages are in the thread's message queue. "
Yeah.
chetan210183 wrote: So instead of Timers , can i use threads and loop the function?
I mean replacing the Timers with Threads.
Why not!
Nibu thomas
Software Developer
|
|
|
|
|
Thanks a lot.
Can u please suggest links where i can get sample programs on Threads replacing the Timers.
Please......
Chetan.
Helping others satisfies you...
|
|
|
|
|
chetan210183 wrote: Can u please suggest links where i can get sample programs on Threads replacing the Timers.
Please......
I don't know if this is what you are searching for. Here[^] is it. Well it has got some topics on which multithreading depends. Will make a good reading for you.
Nibu thomas
Software Developer
|
|
|
|
|
You wrote:
void CMyDlg::OnClickStart()
{
fp = fopen(file_name,"a");
if (NULL == fp)
{
MessageBox ("Error Writing File",NULL, MB_OK|MB_ICONSTOP);
KillTimer(m_nTimer);
}
m_nTimer = SetTimer(1, 100, NULL);
fprintf(fp,"%d\n",status);
}
for killing timer use
KillTimer(1);
i.e what ID you provided to set the timer
The Timer returns the timer id when hwnd parameter of the settimer is NULL
hope this is enough for you
Knock out "T" from CAN'T
You 'CAN' if you think you 'CAN'
|
|
|
|
|
A_Laxman wrote: for killing timer use
KillTimer(1);
i.e what ID you provided to set the timer
The Timer returns the timer id when hwnd parameter of the settimer is NULL
From MSDN:
Return value of SetTimer:
The timer identifier of the new timer if the function is successful. An application passes this value to the KillTimer member function to kill the timer. Nonzero if successful; otherwise 0.
Nibu thomas
Software Developer
|
|
|
|
|
You can mask the COM port, and wait for events happen in COM port and then only update the text box.
|
|
|
|
|
i want read and write email in lotus notes by VC
who can give me some advice?
thanks!
|
|
|
|
|
i use CreateToolhelp32Snapshot function to seach all the process id ,
but i can not use process id to look for the main frame hwnd!!
can anyone tell me how to find that
Thanks
hi
|
|
|
|
|
Use EnumWindows to enumerate all top level windows. For each window enumerated use the GetWindowThreadProcessId function to filter the windows to those belonging to the desired process.
Steve
|
|
|
|