|
This error is most likely due to the statement before mmsystem.h was included. If previous statement includes a header file check if it is ok. If header file include before mmsystem.h includes class definition then check if there is a semi-colon at the end of its definition.
-Saurabh
|
|
|
|
|
This is usually caused by not including the correct headers. This line is typedefing MMVERSION and this error occurs if the type that it is typedefing it to has not been defined yet - usually a missing header. Basically, whatever is the identifier before MMVERSION on the line is undefined, so find out where it is defined and include the correct header file first.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Hey folks
I need to create an installer for my application. I have some requirements:
* It must be super simple for a C++/newbie to use.
* It must be able to install a few registry keys in the HKEY_LOCAL_MACHINE hive.
* It must be able to easily install files to the Program Files/AppName directory as well as the Windows directory
* It must be able to have the option of running the newly installed applicastion upon installation.
* It must be able to allow uninstallations from the control panel->Add/Remove programs dialog
* Upon uninstallation it must check that the application is not currently running, or if it is, shut it down to continue the uninstallation process.
* Upon uninstallation it must be able to uninstall all registry keys it created.
* Hopefully it's free or very low cost.
Anybody have some good options for this?
Thanks!
|
|
|
|
|
Dacris Acti Setup is a good alternative to Install Shield and Wise, It only costs $249 and does everything you need plus a lot more.
|
|
|
|
|
|
Innosetup is another really good free installer.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
I am using developing an MFC Visual C++ 6.0 dialog based application. From the dialog box where I execute a series of tests (that may take 10 minutes to complete) I have a modeless dialog box that I display (via Create() and ShowWindow()) that informs the user that "Testing is in progress". I have a Cancel Test button in the modeless dialog so the user can abort the test at any time but the button does not work. Is there a way to do this, or do I have to move all of my test functions into the modless dialog class?
Thanks,
Buck
|
|
|
|
|
Are you running those tests on a separate thread? A modeless dialog doesn't run in a separate thread.
|
|
|
|
|
|
Thanks,
I haven't had to deal with threads yet, but I found a good article by Fritz Onion on Multithreading in MFC. I think I will be able to implement a UI thread to do what I need.
Buck
|
|
|
|
|
I've got a memory question. My program runs at around 5-6M under the memory usage when first started. And remains around that as it runs, however if I minimize it and re-open it, it runs at around 1.5M under the memory usage. I've checked for basic memory leaks and can't seem to find anything. Any thoughts on how I can get it to run at 1.5 on first startup? Any suggestions on good memory articles. Anythoughts would be appreaciated.
Cheers*
|
|
|
|
|
|
Thanks, It was really worthy
|
|
|
|
|
hmm I'm not sure If I'm not getting it or if I did not explain myself well. I also tried to implement the example in the link you gave me and could not get it to work. Where am I suspose to place the LRESULT CALLBACK? I realize that my program should use less memory when it is minimized however when I reopen(restore) my program(from being minimized) it runs with less memory(than when first started) at the same size as when I first initiated the program. Ie: Start the program 5-6M Minimize the program 400-800K Restore program 1-2M! Is my program now functioning less efficiently or was it using more memory that it needed to being with. Any thoughts would be greatfull to help inlighten my understanding. Cheers*
|
|
|
|
|
By doing what you are trying to accomplish your program will be less efficient.
In your case with your program only using 5-6M I really wouldn't worry about it. If another process needs more physical memory the OS will trim the working set of your app anyway.
You also might want to read Joseph M. Newcomer's essay How Big Is My Program[^].
Kelly Herald
Software Developer
MPC
|
|
|
|
|
My 5M memory does seem like a small thing to fuss about except that its a graphing program that connects to a COMport and the operating system/computer often runs 12-20 of these programs at once (all open/not minimized) ... and ideally as many as we can visually fit on the screen so reducing the memory is quite important(as far as I can understand). As the more programs we add the slower and slower the computer functions.
Just to clarifiy if I minimize & resize my program it is now running on less memory (1-3M) but is running less efficently?
Thanks for your suggestions and I will look into the article you suggested. Any more thoughts appreciated.
Cheers*
|
|
|
|
|
Hi all,
I'd love to benefit from some of the expert advice which I regularly see on this site...
I'm creating a new application which will include high-end video playback with live compositing of graphics and possibly even 3D elements. It can be a bespoke system and therefore can be reliant on high-end graphics cards and specific software configurations. It could be targeted specifically at Windows XP or Vista.
My current experience includes most graphics/multimedia apps plus the following dev environments:
- C++
- MFC
- C#
- .Net
- Managed DirectX (currently learning)
For playback I am currently looking at DirectX as the primary technology. Does anyone have any advice or specific resources for the following:
- OpenGL v. DirectX for 2D rather than 3D
- 2D uses of DirectX (Directshow's future seems vague)
- General advice
Many thanks in advance guys,
Simon Reveley
Guildford,
UK
|
|
|
|
|
I have some code from an old C++ 4.0 project that I am trying to update for a friend. I know very little about C++. I have some C experience and some C# experience.
Does anybody have some answers to these questions.
Would I need the old Visual C++ 4.0 to view and compile the code?
Could I use a newer version like 5.0 or 6.0 to view and compile the code?
Would I have to change the code to use in a newer version?
Is there any way I could make it work in Visual Studio 2005?
If there is anyone that could give me some direction, I would appreciate it.
|
|
|
|
|
I would try to compile and run it with either VC5.0 or VC6.0
even then i could be possible that you need to change some code to get it working.
Eventually you could try VS2005 but again probably with some code changes.
If its a relative simple program you could do it in one step, but if you have the other
compilers i would suggest to do it step by step
codito ergo sum
|
|
|
|
|
There's no way for us to answer that, it depends entirely on the code. Compile it and see what happens.
Unless the code is using some MS extension or library that existed only in v4, or is relying on behavior that changed between v4 and now, there's no reason it shouldn't compile on v5-8.
--Mike--
Visual C++ MVP
LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ
|
|
|
|
|
Hello,
Sometimes when looking at C++ code I see member function code that contains a statement(s) with 2 colons as shown below:
HRESULT CSomeClass::OnDraw()
{
//2 COLONS HERE
-> ::DeleteObject(hbmpOld);
}
What does the resolution operator refer to inside the function?
Thanks,
Jerry
|
|
|
|
|
It means to call the function at the global level, rather than calling the one with the same signature that might be defined as a member of the class.
People that start writing code immediately are programmers (or hackers), people that ask questions first are Software Engineers - Graham Shanks
|
|
|
|
|
|
:: is the resolution operator.
It makes the scope of the function to global.
usually as there is no global function with the same name declared it will point to the win32 api function. So generally we use this for calling a win32 api.
in ur case ::DeleteObject(hbmpOld); means it invokes this GDI api.
cheers..mil10
|
|
|
|
|
Sir,
I used the word "plzzzzzzzz" just to make a request n not for begging and if u r thinking so, u r on mistake. Instead of criticising if u will help other, its much better for u n other people.And thanks for the reply.............
|
|
|
|