|
Define "routable" in terms of C++.
Are you referring to the accessibility of the member from derived classes?
Kuphryn
|
|
|
|
|
Do you mean the TEXT name of the ID or the NUMERIC value?
Your project can automatically generate an HM file, and the help author can include that, but if you change the TEXTUAL value of the ID, then there is no autmatic checking, excpet to perhaps DIFF the two HM files and then the help author can know that the ID has changed.
Now, if the NUMERIC value of ID changes, that should not matter provided you generate the HM file and the help author uses it in the help instead of hard coding numeric values.
If this does not help, can you please be more specific about your exact problem?
|
|
|
|
|
I mean when the programmer makes a modification that changes an existing ID for a view or dialog box. For a very large project with so many elements, is there a way to track this?
Thanks for your comments.
|
|
|
|
|
Not that I am aware of.
Assuming that the 'standard' way of handling an MFC project is being followed:
I think the best you can do is to keep a Resource.H from the PREVIOUS build of project.
Then each time the project is edited, take the NEW Resource.H file and WinDiff it against the PREVIOUS Resource.H file.
If they are the same, then no changes have been made to the resources (which directly correlate with the help ID) - meaning the dialog and control ID have not changed.
|
|
|
|
|
OK - that's a good suggestion.
Thanks!
|
|
|
|
|
Is there any sample code somewhere showing how to make two listboxes (or ctrls) with two buttons in between --- one to transfer items from left box to right, and one to transfer from right box to left (we see it in windows all the time). I didnt see any thing in the articles. I didnt quite know what I would google on to find a class that does this that someone might have created.
Thanks,
sb
|
|
|
|
|
There is an example on this site
Include/Exclude List Boxes[^]
Enjoy!
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)
|
|
|
|
|
|
Hello,
Is there any way MFC programmers can automatically track when they make a change in a program that effects the ID used to call Windows Help so they can let the technical writer know when they need to change mapping in the Help project?
There's got to be an easy way to do this...
Thanks,
Ellen-
|
|
|
|
|
Hi all,
I'm trying a little bit with the malloc() and free() functions. Unfourtunatly, if alloc 256MB the malloc-function needs 10 Seconds to get the memory. That's not nice but what I'm really suprised at is that free-function needs 278 Seconds to drop the memory.
----------------------------------------------------
bufferSize = 256*1024*1024;
if((buffer = (char *) malloc(bufferSize)) == NULL)
{
cout << "Could not allocate enough memory." << endl;
exit -1;
}
p_BufferRoot = buffer;
// ... put stuff in memory ...
free(buffer);
----------------------------------------------------
Can anyone explain what happens to me free-function?!
THX
triathlet394
|
|
|
|
|
Allocating memory can be an expensive operation, especially if memory is fragmented. On low-memory machines, asking for 256MB of contigious RAM might involve a lot of paging. Freeing memory instructs the memory manager to access pages previously put on disk. That might be where the latency comes from.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
How can I resolve this problem a little bit more comfortable?
triathlet394
|
|
|
|
|
I do not know, specifically. Have you tried the new and delete operators instead?
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Do you really need 256 MB?
Can you break up your data or structure into sub-elements?
You might also try VirtualAlloc instead of using malloc and free.
VirtualAlloc has some options that malloc does not give you.
|
|
|
|
|
Thanks Blake,
It works really fine. And my programm isn't look big if your looking in the Task-Manager for the memory-usage.
triathlet394
|
|
|
|
|
Try use GlobalAlloc with GMEM_MOVEABLE flag, this may be work fast.
|
|
|
|
|
Hi,
I've read that the GlobalAlloc-Function-Group come from the Win 3.x-Framework.
What's the difference between GlobalAlloc and VirtualAlloc?
triathlet394
|
|
|
|
|
Yes, you right, GlobalAlloc come from Win3.x, but hi work with whole address space, and if you have 256M free in phisical memory, hi get you memory block in phisic memory .
And if you use VirtualAlloc function, you mast manage usage of pages.
About speed : GlobalAlloc work some slower then VirtualAlloc, but i didn't think, that is critical (for 256M on Win2k diference less 1s).
|
|
|
|
|
For what complier/C library? malloc/free is not provided by any OS I'm aware of. Instead your C library (which might come with the compiler, might be included) provides it.
In some Unix systems (and I suspect Windows as well), the library asks the OS for more memory than you requested, and then holds that in a buffer. If you malloc more, it will give you memroy from that same buffer if there is room. When you free the memory it marks it unused, but doesn't return it to the OS, instead it will hold onto it in case you need more memory latter.
On many systems the OS will only allow you to allocate 4Kb chunks (this varies depending on both the OS and the design of the hardware). The library is designed so that you can malloc a few bytes, without getting a full 4kb.
Also, in many cases the library will write something to most of that memory when it is allocated. The OS however may just mark your application as allowed to use that much memory, but not actually give it to you, until you use it.
In effect it is optimized for small accesses, and you are sending it a large acccess which it isn't designed for.
If you don't need portability you might be able to speed things up by using OS specific functions to get the memory from the OS yourself.
Note that none of this will help if you don't have enough physical memory. If you want to use 256M of memory you should have at least 400M of physical memory so the OS doesn't have page everything else out.
|
|
|
|
|
Hi there,
How do I change the baudrate of an already opened serial port. I'm pretty sure this should be possible, since I'm about to implement an IEC standard where this behavior is a planned feature.
I'm using the plain VC++ WinAPI what I tried was:
DCB dcb;
GetCommState(m_hFile, &dcb);
dcb.BaudRate = CBR_9600; SetCommState(m_hFile, &dcb);
I get no errors on these opeations, however the connected modem seems simply to time out, I get no more answers from it.
|
|
|
|
|
I am not familiar with the WinAPI, but you need to put the modem in "command mode" to set modem parameters. Than switch back to communication / operating mode.
Vaclav
|
|
|
|
|
Ok,
do you know the Hayes code (the modem command set) to change the Baudrate?
|
|
|
|
|
I'm creating a wav player and am making use of PlaySound(). Can u please recommend whether to use MCI or continue with the same.. also i need to create a simple bar visualization like the one in winamp.. THANKS!
[edit] how can i play mp3 files in my program?
|
|
|
|
|
I've seen some articles here on design patterns, but nothing that looks down to my speed. I would like to learn about design patterns, but actually know nothing about them. Does anyone have any suggestions on where I could start?
[insert witty comment here]
bdiamond
|
|
|
|
|
I know nothing about this, but "fractals" come to mind.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|