Still no easy way to set the .exe. icon?

BlitzMax Forums/BlitzMax Programming/Still no easy way to set the .exe. icon?

I read somewhere you can Incbin the .ico or something like that. Can someone list all the options we have for setting .exe icons please?

You can import an object file (.o file) with the icon included in it. (This is the best way in my opinion)
(http://homepage.ntlworld.com/config/max/appiconguide.htm)

Else you can change the icon with an application like Resource Hacker (I think it's called that atleast).

That's the two methods I know of :P

I believe with that method the .o file has to reside in the folder too. I would like to just incbin an .ico file and
be done with it.

I'd like to just do a:
Incbin "myicon.ico"
SetExeIcon("incbin::myicon.ico")


Mark?

This is my method, though it would be really great for mark to create some sort of built in method.

http://blitzbasic.com/Community/posts.php?topic=72899

edit:

And this is great for a easy was to get a .bmp file to a .ico file...

http://blitzbasic.com/codearcs/codearcs.php?code=2141

its in b3d, i'll translate it when i get back.

The easiest one is to use BLIde plus, select the ICO file you want, and click "Publish" to compile the EXE with the ICO file :D

read somewhere you can Incbin


Probably here where Flameduck corrected himself
What? How is Import (sorry, not incbin) not "built-in" by any stretch of the imagination?



It can't appear on MaxIDE unless Mark has a cross-platform solution ready, and there's no any sign of that available yet.

Found some good info here:
http://www.blitzbasic.com/Community/posts.php?topic=53816

This isn't bad but it's hard to remember all these kludges. Seriously hard.

Compile to an .exe and drag an .ico file into it:
Import BRL.FileSystem
Import PUB.stdc
Strict
If AppArgs.length < 2 Then
	Print "Invalid argument count"
	Print "Usage:IconMaker filename"
	Print "Number of arguments = "+AppArgs.length
	End
EndIf
Local iconfilename:String= AppArgs[1]
If FileType(iconfilename)<>1 Then
	Print iconfilename +" does not exists or is not a file"
	End
End If
Local rcfilename:String= StripAll(iconfilename)+".rc"
Print "Creating RC File:"+rcfilename
If CreateFile(rcfilename) Then
	Print "File Created"
	Local f:TStream=OpenFile(rcfilename)
	f.WriteLine("1 ICON ~q"+iconfilename+"~q")
	CloseFile f
End If

Print "Executing Windres to create Object file"
Local objfilename:String=StripExt(rcfilename)+".o";
Local command:String="windres -i ~q"+rcfilename+"~q -o ~q"+objfilename+"~q"
Print command
If system_(command)=0 Then
	Print "Created "+objfilename
	Print "Add "
	Print "Import ~q"+objfilename+"~q" 
	Print "to your BMX project to link in icon"
End If


Add this to your code:
?Win32
Import "icon.ico"
?


Just whipped out related post and made a quick example for Max2D and MaxGUI for non-intrusive way to runtime icon...

Download Here:
http://www.icworx.org/_spc/blitz/bmx_icodrop.rar

All code are NOT mine, hope it'll help you a little bit.

link is dead.

Gah, works now, a stupid typo.

It's less than 30K, won't take too much minutes.