|
|
use "\r\n"
like this char s[] = "hello\r\nhow\r\nare\r\nyou\r\doing"
Casa.Sapo.pt
|
|
|
|
|
Hi,
I know it is a VC++ forum, but i really need help!!! Let's see my code first:
********************************************************************************
void operation(int[], char[]);
void waitprocess(int);
void main(void)
{
int i, j;
static char buffer[BUFSIZE+10], X_value[5], message[BUFSIZE];
int f_des[2];
if (pipe(f_des) == -1) //create the pipe
{
perror("Pipe");
exit(2);
}
if (fork()==0) //In the CHILD
{
// do nothing here because we will
// create 5 CHILDs by PARENT again later.
}
else //PARENT
{
for (j=1; j<=5; j++) //create 5 CHILD process
{
if (fork()==0)
{
static char temp[BUFSIZE];
sprintf(temp, "Thread %d", getpid()); //Get the thread ID
operation(f_des, temp); //Send the request
}
}
while (X>0) // keep doing (read from pipe) until X=0
{
close(f_des[1]);
if (read(f_des[0], message, BUFSIZE) != -1) //Read from pipe
{
sprintf(buffer, " - X = %d \n", X);
strcat(message, buffer);
write(1, message, sizeof(message)); //display output
waitprocess(getpid()); //force sleep awhile
X--;
}
else
{
printf("error");
}
}
}
}
********************************************************************************
I have to create 5 "threads" but using fork() because i have to use pipe() to communicate with "server". This program is doing that 5 "threads" are trying to decrement the global X until X=0. I use pipe as a mechanisam to protect this "critical section". I don't know whether i did it right or wrong. Please help me to check!!!
Also, I found that the output looks strange. The output is always in a pattern. For example, the output looks liked:
Thread 1001 - X = 20
Thread 1003 - X = 19
Thread 1002 - X = 18
Thread 1005 - X = 17
Thread 1004 - X = 16
Thread 1001 - X = 15
Thread 1003 - X = 14
Thread 1002 - X = 13
Thread 1005 - X = 12
Thread 1004 - X = 11
*
*
*
You can see the sequence is 1,3,2,5,4,1,3,2,5,4...etc. I think the output should be in random sequence. Why it's happened???
Thanks!!!!!
|
|
|
|
|
Hi,
how can I change my window dimension at runtime?
Is there something better as SetWindowPos() or how do I use it to change only the window size (position stays untouched)?
Thanks
|
|
|
|
|
Try MoveWindow which is an easyer way of calling SetWindowPos .
rechi
|
|
|
|
|
Use SWP_NOMOVE | SWP_NOZORDER in the "nFlags" argument of CWnd::SetWindowPos() . This will cause only the window's size to be changed.
/ravi
Let's put "civil" back into "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
Okay, I use this code now:
RECT winRect = {0, 0, nWidth, nHeight};
AdjustWindowRectEx(&winRect, WS_OVERLAPPEDWINDOW, FALSE, WS_EX_APPWINDOW | WS_EX_WINDOWEDGE);
SetWindowPos(m_data.hWnd, HWND_TOP, 0, 0,
winRect.right-winRect.left,
winRect.bottom-winRect.top,
SWP_NOMOVE|SWP_NOZORDER|SWP_NOCOPYBITS);
I still have a problem: When the window is maximized and I change the dimensions with my code, the maximize button is not changed. Instead Windows thinks my window is still maximized.
Any ideas? Thanks for help again!
|
|
|
|
|
Performing a ShowWindow(m_data.hWnd, SW_RESTORE) before resizing did solve the problem.
|
|
|
|
|
PS: This should be the subject for last post
|
|
|
|
|
Does SetSize method of IStream preserve the information existing in the stream object if the new size is smaller then the previous one?
rechi
|
|
|
|
|
It should truncate it I think. It might depend on the IStream implementation though. Best is to make a test program. Create an IStream working on global memory (use StreamFromHGlobal() or something like that) and write to it, then setsize then read it back.
James
Drinking In The Sun
Forgot Password?
|
|
|
|
|
HI
I am developing a utility like spy++. Here till now I am able to highlight the mose controls & windows .But for the painted controls like static text in visual basic applications the things are not working.I am using
WindowFromPoint() API.
can anybody help me out ?
VIKS
|
|
|
|
|
See the source code section of the following page - there is an implementation there.
http://freespace.virgin.net/james.brown7/
Best regards,
Paul.
Paul Selormey, Bsc (Elect Eng), MSc (Mobile Communication) is currently Windows open source developer in Japan.
|
|
|
|
|
vikrams wrote:
.But for the painted controls like static text in visual basic applications the things are not working.
This is nothing strange nor a bug is your app. Visual Basic uses Windowless Controls so you don't get any window.
|
|
|
|
|
so what I need to do for highlighting the windowless controls?
VIKS
|
|
|
|
|
You can't do anything You can't spy them thru' normal means. If it is possible it will be very difficult
|
|
|
|
|
Thanx for helping Sir .
VIKS
|
|
|
|
|
How do you tell how long a function takes to run? Something like you start a timer, then call the function, then read the timer when you have broken out of the function.
-Raffi
|
|
|
|
|
If you're satisfied with a rough measuring, this will do:
DWORD dw=GetTickCount();
f();
dw=GetTickCount()-dw;
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
what about something like:
int i = GetTickCount();
SomeFunction();
int usedtime = GetTickCount() - i;
Just be aware that when the computer have been running for about 40 days, GetTickCount() starts from zero again...
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
sounds good. thx
-Raffi
|
|
|
|
|
You might find the Timing and Profiling with Visual C++ section of this article useful:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvc60/html/optcode.asp
|
|
|
|
|
A high-resolution timer can be found here on CP:
CCPUTicker v1.22
/moliate
Two o'clock and walking through familiar London - Or what was familiar London before the cursor deleted certain certainties -
I watch a suit and tie man giving suck to the Psion Organizer lodged in his breast pocket
its serial interface like a cool mouth hunting his chest for sustenance, familiar feeling, and I'm watching my breath steam in the air.
Neil Gaiman - Cold Colours
|
|
|
|
|
I'm working on a small project which requires 2 controls to fit in a window and be resized with sizes being relative to the size of the window and the other control.
First I'll state that I'm using only Win32 in plain old C and the controls in question are a Dialog Box which contains a tree control and a text control.
I guess I'll split my question into two parts.
1) What is the standard way of dealing with window resizing and contained controls. Dealing with 1 control is easy though any more and you have to deal with some math and possible diagrams just to make sure the resizing operation works as one might expect.
2) I've seen in some applications partitions between controls which let you resize adjacent controls based on left/right or up/down movement (sorry I have no clue what they are called). Does such a thing exist in the Win32 libraries or do I have to come up with it on my own. If I have to come up with it on my own I was thinking of using a plain button as I already know how to work with those. Does anyone have any suggestions or ideas how to solve this rather old yet simple problem?
Sean
|
|
|
|
|
There is a nice implementation using the C in the www.wdj.com magazine. Search the site, if you cannot find it, email me I think I downloaded the sources - I will search my hard disk!
Best regards,
Paul.
Paul Selormey, Bsc (Elect Eng), MSc (Mobile Communication) is currently Windows open source developer in Japan.
|
|
|
|