How do I change the icon of the exe. in console mode? (as part of the exe itself) :?:

Recommended Answers

All 12 Replies

You don't -- console programs do not have resources so its not possible to change an icon that doesn't exist.

commented: Very Helpful +1
Member Avatar for vs49688
You don't -- console programs do not have resources so its not possible to change an icon that doesn't exist.

That's not strictly true. If you have Microsoft Visual c++ (I use version 6), you can add resources to a console app. Just hit Ctrl+R to bring up your Insert Resource Dialog. Click on Import to select your icon or Icon to create an icon. Then go File - Save/Save All. Name it something like MyScript.rc or something like that. Then add it to the project by going to Project - Add to project - Files and select your MyScript.rc or whatever you named it. Then compile.

If you are working with Dev C++ Compiler,then simply Go to The Project Options & Browse for the Icon You want have for your C++ Console app....

Hate to admit it, but you're right. you can only use msk88's suggestion for Dev projects. :(

I am using code blocks, is it possible to change the icon in that for the exe?

Thanks, Regards X

Wait... this is marked as solved?

Console programs can have any and all of the same resources as Window GUI programs, but they typically aren't built with them. On Windows, EXE, DLL, OBJ, and a few other files are all the PE32 file format.

For MinGW users in general, you need to create an RC file, like:

MAINICON ICON "foo.ico"

Then use windres to compile it to a linkable object file: C:\prog\foo> windres fooicon.rc fooicon.o When you compile, just link it into the exe as usual: C:\prog\foo> g++ foo.cpp fooicon.o For Code::Blocks users, you only need to go so far as to create the RC file and add it to your project. The IDE can handle compiling it correctly.

Have fun!

Sorry about the pain but possible step by step for code::blocks plz?

I tried making an empty file and naming it *.rc and then add files but everything time i click does nothing.

Empty files will never do anything except exist. ("Existing is basically all I do!" --Fry)

It also sounds like there is something misconfigured with your Code::Blocks IDE. Have you been able to compile other projects? Are you using a compiler other than MinGW?

If no to one or both of those:

  1. From the main menu select Settings|Compiler and debugger...
  2. Make sure your Selected compiler is the compiler you plan to use.
    Mine is the "GNU GCC Compiler" option.
  3. Click the Toolchain executables tab.
  4. Make sure the Compiler's installation directory is correct.
    I keep my MinGW in C:\Program Files\MinGW , but most users will have it in the default installation path: C:\MinGW If you are using another compiler, for example, CodeGear Turbo C++ Explorer, make sure you've got its installation directory listed C:\Program Files\Borland\BDS\4.0
  5. In the Program Files tab, make sure each item correctly identifies the executable. Mine uses all the default stuff for GCC:
    C Compiler:			mingw32-gcc.exe
    C++ Compiler:			mingw32-g++.exe
    Linker for dynamic libs:	mingw32-g++.exe
    Linker for static libs:		ar.exe
    Debugger:			gdb.exe
    Resource compiler:		windres.exe
    Make program:			mingw32-make.exe

    Again, if you are using something different, make sure you've got the correct executables. For TC++Explorer you'll want to make sure you've got something like:

    C++ Compiler:			bcc32.exe
    Linker for static libs:		ilink32.exe
    Resource compiler:		brcc32.exe
    Make program:			make.exe

    Et cetera.
    If you aren't using the GCC you'll also want to make sure you've got the proper global variables set up. See here for more.

  6. Test compile something simple to make sure you've got it working.

Now, to add a main icon resource to your program, a quick walk-through:

  1. Create a New Project... and choose a Console application. This will give you a default main.cpp that simply prints "Hello world!".
  2. Find or create an icon to represent your application. Add it to your project. Mine is named spiffomatic.ico .
  3. Create a new file in your project named resources.rc . It doesn't have to be named "resources", but that's what I chose.
  4. Add the following line to resources.rc :
    MAINICON  ICON  "spiffomatic.ico"

    Notice how I gave the filename of the icon file I added to the project? Save all changes.

  5. At this point the Projects Management pane on the left should look something like this:
    [-] Workspace
        [-] Spiffomatic
            [-] Sources
             |   |_ main.cpp
            [-] Resources
             |   |_ resources.rc
            [-] Others
                 |_ spiffomatic.ico
  6. Hit Ctrl-F9 (or Build|Build from the main menu).

You should now be able to navigate to your application's EXE using Windows Explorer and see it represented with the icon you selected for it. If compilation fails, make sure you have all the compiler options correct and try again.

Another path would be to just download Resource Hacker and use it to modify your EXE directly.

Good luck!

commented: One of the most helpful posts. Thankyou. +1
commented: Excellent :) Also works in VC++ 2008 Express +36
commented: Very Much On Point! +12

Very sexy work, one of the most helpful and stepful posts I have seen.

Thankyou very much Duoas!!!

i'm using dev c++..
what library file i have to download?

i'm using dev c++..
what library file i have to download?

To do what?

To do what?

to recognize the code "MAINICON ICON"

sorry sorry
forget change the extendtion from .cpp to .rc

can already... thx

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.