|
You might want to check with the XML/XSL forum on this website.
|
|
|
|
|
I don't know much about thread programming, but I have a general question. Are threads more of an operating system function. For example there isn't any thread functions in the STL are there? Wouldn't threads be dealt with differently on Linux and Windows?
Thanks.
|
|
|
|
|
Anonymous wrote:
For example there isn't any thread functions in the STL are there?
Correct.
Anonymous wrote:
Wouldn't threads be dealt with differently on Linux and Windows?
While the implementation between the two OSs would no doubt be different, I suspect the net result of each would be somewhat similar.
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
Hi,
yes threads are part of the Operating system. Windows for example handles threads in a different manner than Unix or Linux does. Windows assigns to each thread a certain amount of time during which this thread can perform its task. If there are multiple threads at one time Windows determines which thread has priority of the others and executes this thread. Linux and Unix handle threads differently. The stl can also handle threads yet it does not have a special class or library that deals with threads. You have to write your own thread managing class or library.
|
|
|
|
|
Thanks for the information.
|
|
|
|
|
Hi all,
I was wondering if there was a way to parse a binary number that I receive over a TCP port, into either 4 bit chunks or into hex.
Thank you.
Jimmy
Just cause I am 15, doesn't mean I'm dumb! (I'll really be 4 on Feb. 29...the year 2004)
|
|
|
|
|
DWORD dwSome32BitNumber;
WORD wFirstChunk = dwSome32BitNumber & 0x0000000f;
WORD wSecondChunk = (dwSome32BitNumber >> 8) & 0x0000000f;
WORD wThirdChunk = (dwSome32BitNumber >> 16) & 0x0000000f;
WORD wFourthChunk = (dwSome32BitNumber >> 32) & 0x0000000f;
... Does that make sense? Or you could dress it up a bit with:
WORD wChunks[8];
for (int nIndex = 0; nIndex< 8; nIndex++)
{
wChunks[nIndex] = dwSome32BitNumber & 0x0000000f;
dwSome32BitNumber >>= 8;
}
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
Hi David,
Can you explain this to me a little more.
I think I understand , but I am not exactly sure what the dwSome32BitNumber >> 8 (16,32) or dwSome32BitNumber >>= 8 does exactly with respect to the &0x00000000f.
thanks again for your help
Jimmy
Just cause I am 15, doesn't mean I'm dumb! (I'll really be 4 on Feb. 29...the year 2004)
|
|
|
|
|
>> and << are right and left bit-shift operators, respectively. Read about them here:
http://tinyurl.com/o94p
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
I'm sorry, I posted my message incomplete.
I updated the previous post. My question basically is if you are you the bitwise & operator with the first 8bits of the number, won't it end up being 0?
So i guess my real question is what does the & 0x00000000f do after the number has been shifted 8 (16, 32)?
thank you
Jimmy
Just cause I am 15, doesn't mean I'm dumb! (I'll really be 4 on Feb. 29...the year 2004)
|
|
|
|
|
NewHSKid wrote:
...what does the & 0x00000000f do...
Read about the bitwise-AND operator here:
http://tinyurl.com/o96t
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
Hi David,
I know what the bitwise AND does, thats why i don't understand what you are saying. If I AND all 4 of the word chunks with 0x00000000f, then won't they all just evaluate to 0x00000000f because there is no 1's to match up to?
Please correct me, I have a feeling I am not thinking about this correctly.
Lets say I get the number as 0xA012B435. Using the bitwise AND will just make it 0. No?
Thanks for your help.
Jimmy
Just cause I am 15, doesn't mean I'm dumb! (I'll really be 4 on Feb. 29...the year 2004)
|
|
|
|
|
AND means that BOTH bits must be 1 in order for the resulting bit to be 1.
10100000000100101011010000110101
AND 1111
================================
101
Continuing to bit-shift the value to the right one word at a time means that you can use 0x0000000f exclusively.
You could also have had something like:
DWORD dw = 0xA012B435;<br />
WORD w1 = dw & 0x0000000f;<br />
WORD w2 = (dw & 0x000000f0) >> 8;<br />
WORD w3 = (dw & 0x00000f00) >> 16;<br />
WORD w4 = (dw & 000000f000) >> 24;
or
WORD w4 = dw & 000000f000;<br />
w4 >>= 24;
Whether you bit-shift before or after the AND operation is not important, but doing so beforehand does lend itself to more readable code.
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
Hi,
yes you can split of the TCP address into its compounds and parse the compounds instead.
Regards.
Alex
|
|
|
|
|
I see that the groupbox is by default labeled IDC_STATIC and so is the label. Now if I change the IDs to IDC_GRPBOX and IDC_LBL, and do ctrl-W (class wizard in vc6), I do see IDC_LBL as a member of the class (its a dialog based project), but I dont see IDC_GRPBOX. I am trying to tie the groupbox to a variable name using the CW, so I can resize it along with the dialog (using MoveWindow in OnSize).
Why cant I give it a variable name? I guess I would have to use GetDlgItem but I have not found sample code to show how to use it...
Thanks,
ns
|
|
|
|
|
ns wrote:
I see that the groupbox is by default labeled IDC_STATIC and so is the label.
This makes no sense. There is only one control here. Look in the .RC file to verify. Changing the id from IDC_STATIC to IDC_GRPBOX is all that's required for ClassWizard to assign it a member/control variable.
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
Thanks,
That did work. But really, if I put a label as well as group box, they both say IDC_STATIC:
DEFPUSHBUTTON "OK",IDOK,260,7,50,14
PUSHBUTTON "Cancel",IDCANCEL,260,23,50,14
GROUPBOX "",IDC_GRPBOX,62,7,127,52
CONTROL "Local Source",IDC_RLOCAL,"Button",BS_AUTORADIOBUTTON,74,
15,106,20
CONTROL "FTP",IDC_RFTP,"Button",BS_AUTORADIOBUTTON,73,36,106,20
LTEXT "Static",IDC_STATIC,159,121,66,16
GROUPBOX "Static",IDC_STATIC,151,158,102,11
But I did see the grpbox in the CW after I renamed it.
Thanks,
ns
|
|
|
|
|
We recently upgraded to VC.NET 2003, and have noticed some alignment problems with some of our structures that we serialize to disk. I checked my old settings in VC6, and noticed that all the products have the "Struct Byte Alignment" set to 8 bytes. I wrote code that would check the sizes of all our serialized structs, and all the sizes were calculated correctly.
I then went over to VC7 and checked the project settings, he was also setup to 8 byte alignment. I ran the same size check code, and quite a few of the sizes are not the same as in VC6, which is causing us all kinds of headaches.
I've tried changing the alignments, and our structures are still off in VC7, even though the settings are the same. Has anyone else had this problem? Any tips/tricks? ... What kinds of things do you do when setting up a struct? Which items in the struct have to be on 4/8 byte boundaries etc?
Anything you can send would be appreciated.
Thx.
Mike.
doner@obtain.com
|
|
|
|
|
Are you using #pragma pack() , or the /Zp compiler option?
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
Dave,
Thanks for your reply.
Currently, we're using the /Zp option, but I've been spending a lot of time in the help files reading more about the #pragma pack() option. I have a list of structs that are giving us hassles here, I'm going to go through and wrap them with the #pragma pack ( push, 1), and see if that does the trick.
I just found it strange that our project in VC6 was aligned at 8 bytes, worked great. I upgraded the project to VC7-2003, it says it was aligned at 8 bytes, but gave me all kinds of errors when running.
Generally, whats safe practice here? What kind of rules should I follow?
Thanks.
Mike.
|
|
|
|
|
Mike Doner wrote:
...it says it was aligned at 8 bytes...
What are you using to verify this?
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
I checked the project settings, they both had the same settings, both had 8 selected.
What are the drawbacks of putting my structures to 1 byte packing?
Mike.
|
|
|
|
|
You should actually be checking the file itself to see how it is aligning! That will be a sure-fire way to tell if the /Zp option and the #pragma pack() directive are working as expected.
Mike Doner wrote:
What are the drawbacks of putting my structures to 1 byte packing?
As I don't normally pack structures, I don't know of any, which is not to say that none exist.
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
I have the following components
Component A : a com Server as an exe
Component B : an active X that uses Component A and uses MSXML4 API(Component C)
Component C : msxml4 msi file
I need to package all of this using Installshield .
My problem is that I need the msi file to run automatically during the installation .
|
|
|
|
|
Hello,
I use the class CDialogBar for a simple application with one window and some buttons, sliders and edits on there. I can´t use a normal dialog because I want to display many images within the window and have to handle messages within the same window. To display the images and manipulate them I use operators from a halcon-library, but that´s not the problem. I have placed the buttons and slider and so on in the resource-editor and I enable them in an object of the class CMainFrame with the following code (for example):
Cedit* m_pEdit=(CEdit*)m_wndMainDlg.GetDlgItem(IDC_EDIT1);
m_pEdit->EnableWindow(TRUE);
This is doing right for the statics,the edits and the sliders but why the hell can´t I enable the push-buttons? And no error-message is returned! Please tell me how I can enable push-Buttons in a CDialogBar. And maybe you also can tell me how I can set a sliders position when inputing a value in an edit-box. How do I have to cast the string into int for the slider?
Many thanks!
|
|
|
|