Here's a new one which supports code folding and doesn't leak nearly as much memory as older versions did.

Changes - Version 5.1.1.0 - 16 Februari 2012
- Added code folding.
- A few directory checks now use absolute paths instead of relative ones.
- Added a few 32bit/64bit items to the FAQ.
- Fixed the Help Menu Item not always working.
- Added a few translations (translated by cin.getline).
- Merged all 'New...' toolbar buttons to one 'master' button.
- The class browser toolbar now sizes its dropdown menu to make its content fit.
- Dev-C++ now uses Segoe UI 9pt as a default when it's installed.
- Updated the statusbar and the toolbars.
- Fixed a class browsing crash when not using a project.
- And more minor things.
- Fixed a crash when saving logs when no project is opened.
- Fixed a lot of memory leaks.
- Inserting classes and variables is faster now.
- Code folding now automatically updates when creating new files from templates.
- Fixed some more memory leaks. Folding doesn't leak anymore now.
Important notices
- The options format has changed. If you want to reuse an old pre-4.9.9.3 config file (NOT recommended), or, more importantly, when you're overriding Compiler Options in your project, you need to re-set these project settings once and save the project. You'll then have an updated 4.9.9.3+ project file.
- This version has GCC built-in instead of being an aditional package. It also contains D3D9/10/11, GDI, Win32 and OpenGL headers and libraries in that flavor.
- This version is now fully portable. If you also don't want Dev to leave anything behind in the registry, please select "Portable" or "Minimal" in the setup options.
- For ultimate portable programming, please launch devcppPortable.exe located in the main folder of the portable zip download. This will make dev save its configuration files in the same folder as the executable.
- If you're getting 'Unsupported compression method' errors when extracting the portable version, please update your archiving program. The archive uses LMZA2 compression, which was added to WinRAR 3.91 and 7zip 9.04 somwhere in 2009. The latter is just as free as Dev-C++, so nothing is holding you pack to extract it.
Download
The setup can be downloaded here: 32bit or here: 64bit. The Portable zip version can be downloaded here: 32bit or here: 64bit. The source code can be found here.
Final Release Candidate
The final version of 5.1.1.1, which is currently being tested can be found here. Its source code can be found here.
Guide to choose between 32bit and 64bit
- The 64bit compiler will also run op 32bit computers. Not problem at all.
- The 64bit compiler can do everything the 32bit compiler can, including creating standard 32bit executables.
- The 64bit compiler can do stuff the 32bit compiler can't, like creating 64bit executables. It also comes with a lot more headers and libraries.
- There is no single reason to download the 32bit version except for maybe file size, marginally longer compiling time, or in case you have to use that specific compiler for any reason (regression problems for example).
- To force 32bit on all new projects and non-project compiles, go to Tools >> Compiler Options >> Settings >> Code Generation and set "Pointer Width" to 32bit.
- To force 32bit on already created projects, go to Project >> Project Options >> Compiler >> Code Generation and set "Pointer Width" to 32bit.
- Now open Tools >> Compiler Options >> Directories >> Libraries. Change the path ending with 'lib' to point to a folder called 'lib32' next to it.
- Done!
- Alternatively, one can create a 32bit and 64bit config based on one installation of TDM-GCC x64. Go to Tools >> Compiler Options and create a new set called TDM-GCC 4.6.1 32-bit for example. Copy all settings in the General tab from the x64 set. Then, for that compiler, set the settings described above to your 32-bit configuration. This way, you don't have to install two compilers!
Thank you! :)
ReplyDeleteNice! :)
ReplyDeleteNice job!
ReplyDeleteYou must make a Linux version of Dev C++ (please). It will overcome all Linux IDEs for C++, I'm sure about it!
LINUX users always prefers the Terminal when compiling our code.
DeletePlus DEV-C++ has to be rewritten for Linux Gui Library and it won't work like the windows version do...
Nice work!
ReplyDeleteJust one thing to say: the maximize problem that was in the last version is still in this one...
Debuggers just won't work.
ReplyDeleteSeriously, it doesn't stop at the breakpoints.
Using the x86 Portable version.
w3
ReplyDeletefound a bug.Sent it for you to analyse
ReplyDeleteThe maximize problem is still here!
ReplyDeleteGot an error when I tried to debug a program:
ReplyDeletehttp://pastebin.com/xhfiTsKj
Regarding the maximize problem:
ReplyDeleteI've tried all I could think of, but couldn't replicate the bug, which means I can't test your user cases (with small screens). Is anyone willing to do some 'interactive' debugging with TeamViewer for example? Here's my result when using 800x600 for example:
http://gamerneeds.org/bestanden/example800600.png
I just can't get it to do weird things, no matter what I try.
And yes, the debugger is an, ahem, piece of shit. It's the #1 thing I'm working on at the moment.
And at the moment Dev-C++'s source is rather dependent on Windows, because it's using the standard Windows-oriented UI framework (VCL). Linux support for standard Delphi tends to suck. I could try Lazarus though, but the debugger has priority at the moment.
Also, you can try running Dev-C++ via Wine.
Somethings problems... The maximize not work full.
ReplyDeleteAnd another problem, i compile but i cant execute the program. :S
The path of your program have Chinese, so you cannot execute it.
DeleteIt's a small bug. Try to place your program in C:\.
Found the following bug:
Delete"Goto Definition" does not work for "HWND" or "UNIT" for instance...
UINT is defined in windef.h as follows:
typedef unsigned int UINT,*PUINT,*LPUINT;
It can find other definitions in that header as well...
Besides this the "Find text" dialog should have the "Find" button on the right side (not left) - more intuitive :)
Thanks,
Jonas
Regarding the HWND problems:
DeleteYep, confirmed, working on it now. Seems to be related to not properly scanning multiple struct typedefs.
Problems regarding multiple typedefs and structs declared right after the base type or } have been solved. Thank you for reporting!
Deleteautocompletation is very slow :(
ReplyDeleteYou can lower the delay in Tools >> Editor Options >> Class Browsing >> Completion >> Delay.
Deletefirst of all: nice job!
ReplyDeleteI am using 64bit Compilerversion, but I compiler with 32Bit. Something like this:
mingw32-make.exe -f "*****Makefile.win" all
windres.exe -i *****_private.rc --input-format=rc -o *****_private.res -O coff
-m32 -std=c++0x
If I try to compile I get an error:
........../mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: i386:x86-64 architecture of input file `*****_private.res' is incompatible with i386 output
This issue does only occur if I change projectsettings -> saying that he should include version information OR if I include a symbol-picture for the .exe otherwise everything is OK.
Already tried deleting .res and similar files and recompiling project.
Thanks for your help.
This issue has been fixed by passing -F pe-i386 to windres.exe in 32bit mode. This flag will be set automatically in Dev-C++ 5.1.1.1.
DeleteCredit goes to 'Enrico'.
Many thanks :)
DeleteDebugging code is not working!
ReplyDeleteAlso trossirovka.
Run to cursor also does not work.
ReplyDeleteRegression???
ReplyDeleteThanks heaps once more for your excellent work. It's much appreciated.
ReplyDeleteJust one little bug I noticed on versions 5.0.0.9 as well as 5.1.1.0:
If you use a custom dark color scheme there seems to be no way to change the highlight color for the selected line. All modifications made for that line show fine in the editor options menu, but are not applied to the actual editor.
Can you give a step by step plan of what I need to do? I can't replicate it...
DeleteWhat I tried:
- Start with a fresh install.
- Change the color theme to something dark.
(- Optionally first click OK here and reopen Options.)
- Change to highlight line color to something else.
- Click OK ... both options apply fine.
(- And some more variations.)
I should have mentioned that I use the *portable* executable from the portable version, sorry for that.
DeleteOn these terms, it's easy to replicate:
- Unpack a clean portable version
- Launch and open a new document
- Change colour scheme to *any* other that also changes the current line highlight
- Click 'OK'
- The highlighted line will remain the default light blue, no matter what the scheme says
Are you sure you aren't confusing the color of the line the caret is in with the colors of for example the error line?
DeleteYes, I'm pretty positive.
DeleteI have experienced this on two different computers, an XP desktop with 5.0.0.9 that had all DevCpp versions installed up to that version, and a Win7 laptop with 5.1.1.0 that never had DevCpp installed before. As I said above, it also happens when I extract a clean version of DevCpp to a new directory and launch the portable exe.
Here are two screenshots:
http://imageshack.us/photo/my-images/848/5009xp.jpg/
http://imageshack.us/photo/my-images/205/5110xp.jpg/
Note that the obstinate current line colour which cannot be changed (dark-olive in one version, light-blue in the other) doesn't even appear in the default/classic theme.
To make things more complicated, I just found out that the correct colour is displayed if I double-click in a line. But then, when I use the cursor keys or a single click to move the caret, the color reverts to the oliv/lightblue as displayed in the screenshots.
I stopped actively working with DevCpp some time in October/November last year, only applying updates from time to time, but I'm sure this issue did not exist while I was still using it regularly.
Regarding the maximize problem, I'd like to note that v5.0.0.9 did not have this problem for me.
ReplyDeleteMaybe that'll give an idea of how to go about fixing it?
I did find a suspicious diff when comparing to 5.0.0.9.
DeleteCan I send a test version to you (or anyone else)?
THX~~~
ReplyDeletethat's soooo great!!!!
Very good please could you also make the wxdev-c + + that is portable will be possible thanks and congratulations
ReplyDeleteOrwell is a portable version of the WXdev-c + + you do?
ReplyDeleteI'm from Brazil.
Hi,
ReplyDeletecan you give me a hint why the linke refuses work when using -fopenmp for a parallel program? The compiler seems to work fine. I somehow can't find libgomp, is there some dll to use instead?
br
Herbert
Is there any way to stop console closing after the program has ended?
ReplyDeleteThis feature will probably be properly added to 5.1.1.1, but here's the quick fix version:
Delete- Create a .bat file somewhere with these contents:
@echo off
%1
pause
- Then go to Tools >> Compile Tools >> Add.
- Add this bat file and pass it the "" macro via parameters (with the quotes).
Then use this program via the Tools menu to execute files and pausing afterwards without adding system("pause"); to the actual source.
Otherwise, you may want to look into of of the other cin/getch solutions.
Looks like blogspot doesn't like angle brackets. :P
DeleteWhat I was trying to say: pas it the "(bracket)EXENAME(bracket)" macro.
works! I just wish there was a way to compile the program with the F9 key instead of going through the Tools menu. Thanks a lot anyway!
DeleteIf you want to get really fancy, compiling this and using that in place of the batch file works too:
Deletehttp://pastebin.com/yVnFD8BG
You don't need the EXENAME macro to be in quotes for this. (though you can if you want to)
That looks quite awesome. I've been messing with pipes and all, but this solution looks good too.
DeleteChances are you're going to find this one in 5.1.1.1. ;)
didn't work for me, had to include the macro in order to make it work
DeleteAlso, when I was trying to run a not compiled program this message appeared: http://i.imgur.com/EqQ08.jpg
DeleteYeah, I said the macro didn't have to be in quotes, not that you didn't need the macro at all.
Delete(Sorry if that was a bit unclear)
And about the "Can't create process" error: if the program doesn't exist (hasn't been compiled yet), you'll get that error.
Chances are, if the next version of Dev-C++ includes the pause program, it'll check to make sure you've compiled your program, before trying to run it.
Then you won't be getting that error. :)
(unless, of course, you've somehow denied read access to it - but what's the chance of that?)
Yes, you got that right. There will be an option to pause programs after they return in Environment Options, and the program will be safely hidden behind the Run button, so nasty errors won't show up when the pauser program is running. With some luck I'll be able to build a proper beta *(with the maximize bug fix!)* this evening (GMT+1).
DeleteHere's the final-ish code for the version that will ship with 5.1.1.1:
Deletehttp://gamerneeds.org/bestanden/ConsolePauser.cpp
Any suggestions?
Shouldn't this line:
Deleteprintf("\n\nProcess exited with return value %d\n",&retval);
be this instead:
printf("\n\nProcess exited with return value %lu\n",retval);
?
Otherwise it prints the memory address of retval.
Other than that, it seems to work.
Oh, oops, looks like I typed that part using the sscanf autopilot. And indeed, DWORD is unsigned.
DeleteApart from that, I'm currently messing with detecting GUI programs (which should not be paused). After that, expect a 5.1.1.1 beta release.
Here's a prototype:
Deletehttp://gamerneeds.org/bestanden/ConsolePauser2.cpp
Works in as good as all user cases. The only thing remaining maybe is to move the header reading stuff to the IDE code, but that's not strictly necessary.
Better.
Deletehttp://gamerneeds.org/bestanden/ConsolePauser3.cpp
I don't know what I'm doing wrong but I can't compile any of the programs I've coded with the latest codes, and it seems like this line is affecting me: MessageBox(NULL,"Usage:\n\nConsolePauser.exe \n","Info",MB_ICONINFORMATION);
DeleteSeems like a pretty standard line of code to me. What's it telling you?
DeleteFYI, I've compiled the Console Launcher using Dev-C++ 5.1.1 x86. Works just fine.
Thanks for upcoming console pauser, it's very useful.
ReplyDeleteMy suggestion is class browser for any open source file, not just included in project. And option to group classes by file.
What about a adding a message to console pauser, how long the program have run?
ReplyDeleteIf the last line in a file is blank, Dev-C++ won't display it.
ReplyDeleteSo if a file appears to end with one newline in the IDE, there will actually be two newlines at the end (you can see this if you open the with any other program).
And if you delete the extra newline, Dev-C++ will display it as if there's no newline at the end of the file.
(This is with 5.1.1.0)
Yup, there's something going wrong with the automatic newline attachment at EOF.
DeleteThanks for reporting, looking for a fix now.
Dear Orwell:
ReplyDeleteI very love your update, dev-C++ become more powerful.
But why not add "iostream" in this version ><
I was very accustomed to using, Because the teacher to teach only one way, include can use the "cout" and "cin" keyword, and using namespace std
if no iostream, I don't know how to programming....><
Or whether there are any new wording?
what do you mean? I can include iostream, I can compile iostream, I can modify (well, I won't) iostream... What exactly is your problem?
DeleteThe problem has been solved, thank you
ReplyDeletedevcppPortable.exe is missing the ability to pass command-line parameters to the Dev-C++ environment. I wrote up a quick C program to fix this problem (weighs in at 3.5KB).
ReplyDeleteIt can of course be done in AutoIt3 as well; a simple loop creating a parameter string is easy enough. Of course, the size of that AutoIt executable is already about 80 times larger than my own simple C launcher..
As you might've noticed, the beta (or, if you ask me, RC) versions of 5.1.1.1 already contain a C version of the portable launcher. It isn't much more than a ShellExecute:
Delete#include
int main(int argc,char** argv) {
char finalparams[200] = "-c .\\config ";
for(int i = 1;i < argc;i++) {
strcat(finalparams,&argv[i][0]);
}
ShellExecute(NULL,"open","devcpp.exe",finalparams,NULL,SW_SHOW);
return 0;
}
It's about 23.5K in size, which is small enough for me. I might use UPX to shave off some more, but 23.5K is already an order of magnitude smaller than that old AutoIt one.
What was your approach actually?
Ah sorry, hadn't seen a new devcppPortable on the release candidates. Its good to see you're working on the parameters problem. My hangup with executable size isn't really just a pet peeve.. and heck, 23.5K is fine!
DeleteAs far as my approach goes, it grabs the command-line as Unicode (GetCommandLineW), finds the start of the first parameter, attaches that to the end of the '-c .\\config ' string, builds a complete path to devcpp (in case its not the current directory), then calls ShellExecuteW.
The approach you have will cause problems for Unicode paths, quoted parameters, and extra-long command-lines (exceeding 200). But its rather easy to fix.
I compile with Tiny C Compiler, but if I were to add in the icon resource it would definitely jump up to 15+K.
I'd be happy to contribute the code if you'd like. I just wrote a portable wrapper for the Pelles C IDE too.. I love portable stuff =)
Anyway, thanks for the great piece of software - and keep up the good work!
I've redesigned it to fit more peoples' needs:
Deletehttp://gamerneeds.org/bestanden/PortableLauncher.cpp (will preserve indentation).
It expanded to a whopping 24.5K, but that's mostly due to the icon.
Feel free to comment on it (and share your version).
Here's a link to the code for my wrapper. A wee bit longer than yours, but it sets a full path (which allows running the program from a different folder), and keeps the double-quotes from being stripped (argv and CommandLineToArgVW both strip them).
DeleteDev-C++ Portable Wrapper:
http://pastebin.com/h6kignfZ
In the current version (5.1.1.0), clicking "Close All Except This" closes every tab, including the tab that wasn't supposed to get closed.
ReplyDeleteFixed. Thank you for reporting!
DeleteI'm trying to download the 64bit portable version. After I download the zip, i try to unzip it with 7zip and keep getting errors saying "Unsupported compression method for Dev-Cpp\MinGW64\....." Am I doing something wrong?
ReplyDeleteThe archive is using LZMA2 compression, which was added in 7zip version 9.04. I believe WinRAR added support in version 3.91, both released somewhere in 2009.
DeleteAll in all: please update your archiving program. Support for the LZMA2 format is getting quite common, and was added to most archiving programs 2.5 years ago, so I opted to use it.
This may be a stupid question but how do you keep the program open in cmd after it runs? I'm using the portable version 64 bit. I have a non portable devc++ installed on my computer. For that I just add: system("pause"); But it's saying it's an error. ONce I remove it, the program runs but the cmd window won't stay open.
ReplyDeleteThe beta and RC versions of version 5.1.1.1 contain a console pauser which will, obviously, pause a console program after return. Just what you're looking for.
DeleteIt is enabled by default, and can be enabled/disabled in Environment Options.
OMG!!! can't wait for the final public release of 5.1.1.1... ahhh going nuts. hope the maximize bug is fixed. :)
ReplyDeleteWell, you can try that RC version anyway, because it's quite representative of the final release.
DeleteI'd also like to hear if that maximize bug has been fixed.
Maximize bug still exists after you exit from fullscreen menu buttons aren't drawn they are like flat highlighted in blue...
DeleteIf I understand correctly, there are basically two problems still present in *5.1.1.1 RC3*:
Delete- The maximize bug: the maximized window not completely filling up the screen.
- The menu buttons appearing flat instead of rounded after returning from fullscreen.
Can I send test versions of Dev-C++ to you by email, as you're affected by bug #1 (and I'm not, which is annoying)?
Ah sorry Orwell.
ReplyDeleteMaximize bug is gone I forgot to copy the patched files "doh!"
however bug #2 from above post is present and is the only worry I have at the moment.
bruteforced101@gmail.com
Good to hear that, finally got rid of that bug!
DeleteThere are a few lines of code that cause the menu to go 'flat' mode, but a few comments about it tell me these lines are there to fix another annoyance in Delphi's UI manager, which I can't reproduce however.
As you may understand, I'm a bit hesitant to just remove these lines: strange things may happen...
What I actually need is an XP user to try to reproduce that annoyance. Do you use XP by any chance?
Sorry Orwell but I use Win7.
Deletehmmm I'm thinking VirtualBox...
THANK YOU!!! and please don´t stop making updates ☺
ReplyDeleteTo correct the maximization must be removed
ReplyDeleteprocedure TMainForm.FormResize (Sender: TObject);
begin
if not devData.FullScreen then / / only if not going full-screen
GetWindowPlacement (Self.Handle, @ devData.WindowPlacement);
LogOutput.Width: = CompResGroupBox.Width - 15;
end;
Confirmed. Thank you for reporting.
DeleteHi Orwell, in the source code folder are missing many things?
ReplyDeleteUhm, everything related to building Dev-C++ is supplied in the source code zip, except the Delphi IDE itself of course.
DeleteWhat are you missing exactly?
no sorry nothing is missing,but I cant compile it.Can you explain me how to compile it please?
ReplyDeleteyeah now it works (I had delphi 5,now I have Delphi 7) and I have a solution for the maximize bug!!!
ReplyDeleteHere:
procedure TMainForm.FormActivate(Sender: TObject);
begin
MainForm.Top := 0; //Only add this an the maximize bug is gone!
end;
end.
Anonymous in the options out there wsMaximized mode is worth it!
ReplyDeleteMainForm.Top: = 0; this position at the start!!!
I will remove the devData.WindowPlacement system which is/was used to remember the previous window position.
DeleteInstead, I'll tell the window to maximize when it opens up for the first time.
Any suggestions?
I think it's time to release 5.1.1.1.
ReplyDeleteAnd that confusion with versions of source code begins to emerge.
I've renamed it to 5.2 by the way. Way too much has been improved for a puny version number increment.
DeleteI was thinking about releasing it this weekend, but I might have to some time tomorrow afternoon (european time) to build the installers and everything.
There is a proposal to compile the project, compile only those files that have changed, check the changes carried out by means of Dev-C + +.
ReplyDeleteCan you rephrase or retranslate that?
DeleteSorry, I don't understand what you mean.
later
Deleteneed to think things through.
errors in the 5.1.1.1_RC3 meksimizatsii no.
Delete1.When do you improve the debugger? It is crashing all the time.
ReplyDelete2.In the setup,when I choose an other language then the caption of some buttons is cut. For example when I choose German.
Hi,
Delete1) Remaking the debugger will take quite a bit of time, so I've been postponing it for a while, but now that nearly all of the more minor problems have been fixed in version 5.2 (currently packing the installers), I'll probably get working on it.
2) Can you provide an example screenshot?
First link: http://img221.imageshack.us/img221/2484/shot1i.jpg (The button is cut).
ReplyDeleteSecond link: http://img848.imageshack.us/img848/2365/shot2m.jpg
(buttons are cut too,because of the new .manifest file)
It´s not bad,but you should increase the size of the buttons because it´s unattractive.
and sorry for my bad english, I hope you understand what I mean.
ReplyDeleteIm using win7, used devc++ 4.9.8.3 with xp compatibility.
ReplyDeleteUpgraded to 5.1.1.0 just now, but my cmd prompt window doesnt stay open when I compile and run.
Can any1 hel pme sort this pls??
Oh FYI, im a noob at this :p
DeleteHi,
DeleteFirst off, please upgrade to the latest version by following the newer version link at the beginning of the post. This version supports keeping console windows up when the program return. You can toggle the functionality using Tools >> Environment Options >> "Pause console programs after return".
Downloaded, installed, i R being happy.
Deletetyvm