|
I've read a quote from MSDN document. Can any one tell me the meaning of "atomic" in this quote:
The InterlockedExchangeAdd function performs an atomic addition of an increment value to an addend variable. The function prevents more than one thread from using the same variable simultaneously.
|
|
|
|
|
atomic means self contained and, I believe, thread safe. Yes, having read the rest, that is exactly what it means. It means that no matter what another thread is doing, the operation will succeed.
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
Okay, I will give it a try.
Its probably single unit of execution in the CPU, like an addition operation requires a single instruction.
Also can it be an operation which cannot be reduced further (doing which will defy the logic or something of that sort) for ex. in a complex piece of algorithm where in a single step would involve, two operations which has to be performed consecutive i.e it should be performed in a single step.
someone tell me if this is a right interpretation.
Cheers
Kannan
|
|
|
|
|
In this context, atomic means an operation which is guaranteed to never be interrupted until the operation is done. So once an InterlockedIncrement() call begins, your thread won't get preempted in the kernel while executing the code for that API.
--Mike--
"alyson hannigan is so cute it's crazy" -- Googlism
Just released - 1ClickPicGrabber - Grab & organize pictures from your favorite web pages, with 1 click!
My really out-of-date homepage
Sonork-100.19012 Acid_Helm
|
|
|
|
|
The font dialo box works fine, but I need to start the application with a specific and attribute.
|
|
|
|
|
I have declared a global integer variable in my program.but whenever i try to access this variable inside a keyboard hook function,i get
the value of the variable as 0.But when accessed from any other function,I am geting the correct value.
|
|
|
|
|
Do you mean hook by SetWindowsHook() function?
Is your function in DLL?
I guess problem should be:
The global variable is global in process(module), but
function is called from another one (process).
You need global variable in shared section.
(all modules shared one)
Maybe....
Viliam
|
|
|
|
|
yes, with SetWindowsHook() .
this is not a DLL.
I meant those variables declared at the begining of the file
|
|
|
|
|
Try this:
#pragma data_seg(".shared")
int iSharedVar = 0;
#pragma data_seg()
#pragma comment(linker, "/SECTION:.shared,RWS")
more:
http://support.microsoft.com/default.aspx?scid=KB;en-us;q125677
Viliam
|
|
|
|
|
That code didn't work out.
The code was pasted on the top of the page.
on initdialog i set iSharedVar=100;
but,in the callback function , it was zero.
|
|
|
|
|
Sorry, that was all what I known.
I always had hook callbeck function in DLL module and
all global variables worked well.
Now, I realy don't know where problem should be.
viliam
|
|
|
|
|
Hi,
I have 1 Desktop & 1 Laptop on my Home network, I use MS Network to setup a Home Group and look like this in Explorer:
- Entire Network
Home
Desktop
Laptop
I am using VC++6.0 to scan their IP address (just to know: are they connected on the Home Network?) ... and I using these following codes:
<code>
DWORD dwSize = 0 ;
GetIpAddrTable( NULL , &dwSize, FALSE ) ;
PMIB_IPADDRTABLE pIpAddrTable = (PMIB_IPADDRTABLE )new BYTE [ dwSize ];
if (pIpAddrTable )
{
if (GetIpAddrTable( (PMIB_IPADDRTABLE)pIpAddrTable, &dwSize, FALSE) == NO_ERROR )
{
for(int nEntry=0;nEntry < pIpAddrTable->dwNumEntries;nEntry++)
{
trial.S_un.S_addr = pIpAddrTable->table[nEntry].dwAddr;
pIP = inet_ntoa(trial);
}
}
</code>
It supposes to show "all IP adresses" that connect to my Home Group ... instead, it shows me only the IP address of the PC that I launch these codes!
I notice that if I use:
<code>
GetNumberOfInterfaces(&inter_face);
</code>
Then inter_face shows there are 2 interface did connet to my Group Network, if so ... can some one show me how to get the IP address of each interface?
Many thanks to any suggestion here!
|
|
|
|
|
Hi
I am wondering what is the best way to draw a pixel (I will need to draw a lot of them) onto a DirectDrawSurface7
reading the dx docs. there dosn't seem to be a set pixel..
I was thinking of either getting the DC and using GDI to plot it (would be slow)
or
creating several small surfaces (1 pixel) of the colours I want (only 3) and blitting them on as required..
any suggestions ??
Cheers
Chris
|
|
|
|
|
Get the DC, create a DIBSection, set the pixels, copy to the DC.
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
Thanks Christian
another quick question..
I want to take the finished image and basically double up its size but leaving a blank between each pixel..
(basicaly I am making a pinball dmd)
I could (offcourse) draw it like that but I want to also do a background image (from another source (bit like an animated gif) and merge it in with my dots..
i was thinking to copy it line at a time (first vertical and then horizontal) into 2 other surfaces (of the new expanded size).
|
|
|
|
|
They are stored in lines, so it would be very simple to write a function that copies a bitmap into one twice it's size and steps through the destination pixels in 2's across and or down. Do you want to create the illusion of scanlines ?
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
a simular type of effect.. both horizontal and vertical (at the same time).. double spacing sort of thing where the space is 100% black and not aliased.
|
|
|
|
|
|
It's the first time that I work with MFC Appwizard(exe)
with many member variables on the screen, and when
I reach a certain number of "add variables", the program
compile well, but when I try to execute it CRASH.
Somebody can tell me how to avoid this? - Yhanks.
|
|
|
|
|
How many variables do you have ? I doubt this is the problem.
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
I've about 30 variables, and this is not the first time I work with
MFC Appwizard(exe).
What a sympatic fellow is Larry Antram 22 Oct 2002 !!
|
|
|
|
|
nencini wrote:
I've about 30 variables
Am if you remove some, does it work ? Have you used the debugger to see where it crashes ? I guarentee that it's not an upper variable limit you're hitting, unless you've got no HDD space for virtual memory and they are each 1600x1200x32 bit images.
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
Unfortunately I think that the debugger can't help me, because there
are not error in compiling. The crash only happen when I execute, with
the message "This program has executed an invalid opratione and willl
be teminated" .
If I remove some variables - of various type - (now I can't say how
many) all is going well.
I've never used the debugger, and I read alwais the error message that
appears on the output pane.
|
|
|
|
|
nencini wrote:
I've never used the debugger, and I read alwais the error message that
appears on the output pane.
Apparently not. The debugger is ONLY of use if your code compiles. Use F9 to set a breakpoint, make sure you're building a debug version, and hit F5 to start debugging. Your program will stop at your break point and you can step through the code by hitting F10, and see the values of your variables in the watch window.
Christian
No offense, but I don't really want to encourage the creation of another VB developer. - Larry Antram 22 Oct 2002
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
Well, I'm not so expert in VC++ as you think. I've activate the debugger,
and appea the window "Unhandled exception in xxx.exe 0xC0000005.
Access violation" and the code stop at the statement m_pMainWnd = &dlg;
The problem is that I don't Know what this means !!!!
I'm on the Titanic ship and I scream "HELP!!!!"
|
|
|
|