|
Thanks for the help. BTW what is managed/unmanaged C++?
|
|
|
|
|
Unmanaged C++ is basic C++ where you have to do all of your garbage collection of dynamically allocated resources.
With .Net, there are many new complicated features allowing one to have .Net do garbage collection for the programmer. Managed C++ seems like a new concept to me and I've never used it before. I think Java is the same way where the compiler does all of that for you. In unmanaged C++ code you have to delete all of the objects you use new to allocated. That's part of it, in short, but there could be more complex concepts introduced by Managed C++ code.
If you want to do more, do a google search or search the article database within codeproject.com or codeguru.com and you should be able to find more detailed subject matter on that. I'm more of a basic C++ programmer with a lot of embedded design experience where we had no GUI functionality; but recently made the transition to windows programming so all of these concepts of managed code are totally new to me as well.
Regards,
Shawn
|
|
|
|
|
I'm currently testing the iphelper api.
When I request the iftable, dwInOctets is fine, but dwOutOctets always return 0. The same for all output vars in the table. Input is correct though.
Why is that? out is always 0, but my network monitor tells me different.
<br />
<br />
MIB_IFTABLE* g_pIfTable=NULL;<br />
ULONG g_ulIfTableSize=0;<br />
<br />
...<br />
<br />
GetIfTable(g_pIfTable,&g_ulIfTableSize,TRUE);<br />
g_pIfTable=new MIB_IFTABLE[g_ulIfTableSize];<br />
GetIfTable(g_pIfTable,&g_ulIfTableSize,TRUE);<br />
<br />
CString str;<br />
for(ULONG index=0;index< g_ulIfTableSize;index++)<br />
{<br />
str.Format("in=%ld out=%ld",g_pIfTable->table[index].dwInOctets,g_pIfTable->table[index].dwOutOctets);<br />
AfxMessageBox(str);<br />
}<br />
using: [VISUAL STUDIO 6.0 sp5] [WIN98/2]
|
|
|
|
|
Zizilamoroso wrote:
...my network monitor tells me different.
Is it using GetIfTable() ?
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Hi everyone,
I have to generate an OLE compound file in memory. Unfortunately, I cannot use IStorage interface as the requirement is that I should not create a file on the disk. The whole thing has to be in memory.
I was wondering if there is an IMemoryStorage like interface available. Basically, I want to be able to create the storage object in memory, create a stream and write bytes to it. I was going through MS documentation and could not find much there. I was wondering if someone who has a bit more experience with this, could guide me a little.
Thanks,
Sincerely,
pankaj
Without struggle, there is no progress
|
|
|
|
|
|
Hi,
Well, came across this gem. CreateStreamOnHGlobal
However, I have another question. After I declare a IStream * object. How can I set the name of this stream object. I need to create a stream with a given name. I think the CreateStreamOnHGlobal will be suffice for me. However, I would have to set the name of the created stream object.
Any help would be greatly appreciated.
Thanks,
Sincerely,
Pankaj
Without struggle, there is no progress
|
|
|
|
|
Hi,
I did some resource-cleanup in my VC++ application, where in I deleted unused ID's, re-numbered the ID's according to MFC standards. But now my menus do not work. I checked the correspoding ID for the menu, the numerical value all seemed to be OK(unique across projects).
Can anybody help me to figure out what is going wrong?
Thanks,
Prashant
|
|
|
|
|
Rebuild the whole project/solution. RESOURCE.H is a special file and changes to it does not force all files using it to recompile.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
Tim,
I have several projects of which I clean compiled the project that had the menus. Is'nt that enough?
Should I re-compile the whole solution?
Thanks,
Prashant
|
|
|
|
|
I have a rather basic MFC question. It is clear to me how to use the Create() method of a CListBox to create one. It is not clear to me what to do with it after it is created. As far as I know, it does not have a DoModal() method as a CDialog object does or something analogous to the TrackPopupMenu() method of a CMenu object.
Does anyone have an example Creating and displaying a CListBox? I want the CListBox to "return" when the user makes a selection, and then to inquire of the CListBox which selection was made.
Thanks
|
|
|
|
|
My first question would be why are you creating it dynamically instead of making it part of the dialog template?
gokings wrote:
It is not clear to me what to do with it after it is created.
Add items to it, or perhaps I don't quite understand your question.
gokings wrote:
As far as I know, it does not have a DoModal() method as a CDialog object does or something analogous to the TrackPopupMenu() method of a CMenu object.
Why are you comparing it to a CDialog or CMenu object? A listbox is a control that is placed on a dialog and enables the user to choose one option from a list of possibilities.
gokings wrote:
Does anyone have an example Creating and displaying a CListBox?
It's such a common control that examples are everywhere. Search here at CP for starters, and then Google for even more.
gokings wrote:
I want the CListBox to "return" when the user makes a selection, and then to inquire of the CListBox which selection was made.
The analogy of "returning" when the user makes a selection makes no sense. When a selection is made from a listbox, the dialog will receive a LBN_SELCHANGE message. If you are using MFC, the dialog will need a ON_LBN_SELCHANGE handler instead. At that point, you can get the text and/or index of the currently selected item.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
The crux of the matter is that I want to display a popup menu, but the CMenu class has limitations making it unsuitable for my needs. Someone suggested that I use a Listbox instead of a Menu. From this I assumed that a Listbox could exist independently of a dialog box. Realizing that this is not the case makes everything fall into place.
As for not knowing what to do with a Listbox once it was created, in the context of my question I meant how to cause it to interact with the user. It seems to me that it could be attached at run time to any window, such as a FrameWnd, but perhaps it must be part of a dialog as you indicate.
As far as examples being everywhere, if what you say is true, there are no examples of doing what I wanted to do, as it can't be done. I don't need an example of creating a Listbox on a dialog, a monkey could figure that out without an example.
Yes, I am aware of handling ON_LBN_SELCHANGE, but I was hoping that there was a "modal" alternative.
Regards
|
|
|
|
|
gokings wrote:
...but the CMenu class has limitations making it unsuitable for my needs.
What is it that you are needing that a popup menu cannot provide? I'm just curious if there are some other options that can also be explored.
gokings wrote:
It seems to me that it could be attached at run time to any window, such as a FrameWnd, but perhaps it must be part of a dialog as you indicate.
I don't think a dialog is a requirement, but it is the most common.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
I was able to make a CMenu work, thank you.
The issue was that the entries to be placed in the menu were dynamically determined at run time. Having a method for each possible message didn't seem clean, and would have limited me to a maximum number of entries in the menu. cmk suggested that I use a method which handled a command range. Being an MFC neophyte, I was unaware of this possibility (and specifically that the command id was a parm to the method). This solved the problem. Thanks.
|
|
|
|
|
In context with your previous question and my reply ...
Probably the easiest way for you would be to derive a new control from CListBox that handles the various selection (or return, escape, ...) messages and have them set a variable to the selected value then destroy or hide the window.
Hiding/showing the window may be preferable if the list has many items, but requires a little more code to set up.
...cmk
Save the whales - collect the whole set
|
|
|
|
|
I am having the problem to get the area of the frame window except the status bar, and docking bars if any.
Anil
|
|
|
|
|
Quick DUMB question.
I know that an (int array[]) which was not given values for all elements
fills them with zeroes.
Say an int array[3] = {1, 4} would have array[0] = 1, array[1] = 4;
and array[2] = 0 (that is assigned by compiler).
A think thats how it is !
Now if I got a (char array[]) is the empty element given a integer 0 or some char. And if I was to check for it would I use simple if (... == 0) or
if (... == '0').
Thanks in advance.
|
|
|
|
|
If you don't define all elements of the array then they will be undetermined and can be anything. It will be pure chance that they are 0.
If you want the array elements to default to NULL you need to NULL the array first.
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fruity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Williams (Little Britain)
|
|
|
|
|
First of all, you cannot trust on compiler about filling all assigned memory with 0's. In VC++, it is initialized with garbage, so be sure to call a function to initialize array, for example, ZeroMemory or memset.
Now to your question. If you declare char array[] you have an array of bytes, so you have to compare against 0, not '0' (comparing with '0' is like comparing with 0x30)
Jaime
|
|
|
|
|
Well.
When an array is declared, its content is undefined unless you give it an initial value.
Initial values are assigned to an array by listing values withing {}. If your array is larger than your initialization list, the remaining elements will be assigned 0 by the compiler.
<br />
int a[4];
int b[4] = {1,2};
/Per
|
|
|
|
|
Also note that NULL and 0, '0' are NOT the same.
0 = a value
NULL is nothing, nada, ...
"If I don't see you in this world, I'll see you in the next one... and don't be late." ~ Jimi Hendrix
|
|
|
|
|
NULL is often defined as 0 or 0L. It is implementation specific.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
The only time the value is required to be zero is if the array is a global variable. Otherwise the value can't be predicted.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
Also, not mentioned before, is that static arrays are always initialized with zero for each value. I wouldn't recommend making a variable static for that reason alone, but it is interesting to remember that for future reference.
If you have an array that is in a global function and you don't want it to be reallocated on the stack every time the function is called, you could make an array static. The values are all zero the first time the function executes and after that, the values will stay in memory. The initialization only takes place once, even though the function call could be made many times.
|
|
|
|