Tech

Solution: The icon of an EXE compiled with Microsoft Visual C++ won’t show up in Windows 95.

The early versions of Windows 95, that is, the very first release, and subsequent ‘A’ and ‘B’ releases (but NOT the ‘C’ with IE 4.0 bundled!) have a peculiar behavior when it comes to an executable. The operating system refuses to detect an executable’s icon in explorer if you compiled it for /console mode, that is, as a command-line app. In order to work around this, you must compile the executable in /windows GUI mode, define a WinMain() [and not main()] and use AllocConsole() to immediately arrange a console window for the process.

Such is the workaround in case someone else was having trouble with this issue and thought it was a bug. It appears to be intentional behavior that was changed after Windows 95C. The rule is basically this: If the EXE is compiled for /windows GUI mode, then it will be scanned for icon resources and the first one will be used, as is normal… However, if it was compiled for /console mode, then it won’t bother, in fact, it will state the EXE has no icon resources if you try, for example, to create a shortcut and ask it to check for icons in said EXE. It simply defaults to fetching a generic command-line console icon from the system for every EXE that’s compiled as a console/command-line EXE regardless of what icons are or are not contained within…

I spent a few days trying to figure this out actually, I blamed the compiler, the linker, Microsoft VC++ 2005, other settings in the PE header of the executable… I tried PE editors to see if I could get different results… It really frustrated me not being able to figure it out… Finally, I compiled a blank project with VC++ 2005 which I had set to /windows GUI mode and after all my other tests failed, the EXE actually had its icon show up in Windows 95… Yeah, took quite a while…

Anyway, since I googled several times to see if somebody else encountered this problem with no luck, I made this entry in case this info might be useful to somebody else. I will in fact use the work around I mentioned. My EXE will be compiled with subsystem set to /windows GUI mode, a WinMainCRTStartup() function will be defined (the pre-WinMain function), with a subsequent call to AllocConsole() instead of creating a window. This shouldn’t be much of a big deal to all Windows operating systems thereafter, but I’ll have to test how this change behaves elsewhere.


Upgrading the firmware of Seiki’s SE39UY04 39″ 4KHDTV to the final Jan 09, 2015 version.

Introduction: The Seiki 39″ LED HDTV with 4K @ 30Hz support and true 120Hz support @ 1080p!

I had been looking into buying a big screen monitor/TV for my PC and settled on this one which can do 4K but at 30Hz. It runs 1080p @ 60-120Hz nicely from a DVI situation adapted to HDMI where audio is separately delivered by analog means, a feature that’ll be more rare in the future, as well as providing a VGA input port (extremely rare now). I think I’m pretty happy with it and ultimately scored it for a total of $211! With an extra $25 I threw in for a new videocard, my HDMI output now includes digital audio, so it behaves much better with any HDTV and no special mixing required! 1080p @ 120Hz is REALLY beautiful on this TV and likely will be the reason I keep it!

http://www.microcenter.com/product/451211/39_(Refurbished)_LED_4k_Ultra_HDTV
http://www.seiki.com/content/39-se39uy04-led-ultra-hdtv

Mission Accomplished! Seiki came through and emailed me back with the firmware today. The back’n’forth wait with them took about 4-5 days, and as I mentioned, I bought another one by the time they got back to me which had the 2015 firmware daveo said he received.

Well, I almost didn’t feel like it as I had the first TV with the 2014 firmware boxed up to return for a refund, but I decided to install what they gave me for testing purposes and just for the heck of it so whoever rebuys it will be up-to-date.

So, yeah, confirmed, what they gave me is same Jan 09 2015 firmware, thus I’m presuming this is likely the final version the SE39UY04 model will receive, so for those of you that wanna upgrade, here ya go!!! 🙂

My download link for backup (with ReadMe/instructions):

1) http://mediafire.com/download/…/Seiki-SE39UY04-FinalFirmware-Jan-09-2015.zip

Original from Seiki – no idea how long it’ll last:

2) http://1drv.ms/1Uaenhg

So, after upgrading with this install.img, your service menu should show you this:

As my new, 2nd TV already shipped with this same version, I didn’t need it since they had nothing newer, but I hope it will be helpful to others so have it also!

***************************************************************

One last ProTip: Fixing the random blanking problem.

In a previous post, I mentioned how I solved my blanking problem with this TV when I activated 1920×1280 @ 120Hz with my computer. I felt I should repeat that info should it be helpful to others.

This applies when using the Custom Resolution Utility to output 1080p at a glorious 120 Hz instead of 60 Hz… This TV/monitor is beautiful once you can get it to 120 Hz, that’s for sure!!!

So, here’s what I did wrong: In trying to create a custom resolution/refresh profile for my Radeon 5450 video card using ToastyX’s CRU 1.2.6, I selected the first option under Timing which was “LCD standard.” However, this was not ideal with the Seiki 39″ and would occasionally cause blanking regardless of the firmware I later realized…

The fix: I edited the profile and tried the 2nd option “LCD Native” which defaults to a perfect/even 120.000 Hz (instead of 120.003 Hz) for the vertical refresh rate, and 135.000 kHz, etc. In the end, the profile should be listed as “1920×1080 @ 120.000 Hz (297.00 Mhz)” – you want even values, no fractions, e.g. 120.003, etc.!

So, if you’re having this problem and you created your own profile to force the option of 1080p @ 120 Hz, you might try checking that profile again.

So yeah, that’s how I fixed the blanking problem, the settings for the custom creation of a new 120Hz resolution were not quite right… Don’t blame the TV just yet or the HDMI wire, although you’d want a quality, heavy gauged cable and not the el cheapos to rule the connection out. I changed firmware multiple times before having another look and realizing it was something as simple as this!

Your 1080p @ 120Hz profile should like exactly like these screenshots and that’s what totally eliminated the blanking problem for my TV:

If you have an Nvidia card, you can use its proprietary driver software to set up a custom resolution so it’d be different then, but just make sure the 120 Hz is an even 120.000 Hz and the horizontal is an even 135.000 kHz, etc. As long as the clock limit doesn’t go over 300 Mhz, the 120 Hz resolution should appear in the Windows control panel app or your video card’s driver software. For 1080p, if you did it right, the clock limit should be a perfect 297.000 Mhz as shown.

P.S. Follow this whole guide below if you’ve never done this before as you’ll need to patch your AMD/Radeon or Nvidia drivers to get 120 Hz going:

http://www.blurbusters.com/overclock/120hz-pc-to-tv/

1 Comment more...

MS Internet Explorer 8 is released… with bugs.

http://www.microsoft.com/windows/internet-explorer/

So the other day I received an email notifying me that MS IE8 had been released which prompted me to download and install it… I like to live my life dangerously, what can I say… Anyway, after it finished installing, I started it up and much to my dismay ran into a blatant bug which has forced me to lean on FireFox a little more than usual! SURPRISE! I couldn’t for the life of me believe that this was something that already needed a service pack, but I should’ve known better, right? Good God, what is up with that? C’mon Microsoft, you’re better than this, or well, maybe you’re not these days (Vista getting retired, already headed to Windows7? Geez)…

So what was such an obvious problem that prevents me from even caring about anything else offered with this new release? Links that are set to open in a new window simply REFUSE to fucking work!!! My IE8 upgrade from 7 broke the most basic fucking feature that a browser oughtta be capable of handling at the bare minimum!!! I kid you NOT! Now, I don’t mean all links, I mean if the link’s target attribute has been set to “_blank” to open a whole new window, it will NOT work, but regular links limited to the current window will. How troublesome is this? In those cases, I have to right click that link, copy the shortcut, tab over to the new tab, paste link, hit enter, continue… Given the day to day things that I do, this happens more than enough times for it to be a serious inconvenience…

Oh yes, I almost forgot: on top of ALL this, multiple zombie instances of the executable can remain running in the background after thinking you’ve closed it down, draining your memory and CPU time as well. In the time I was bitching to a friend mjmmx over IM, my HDD started getting busy for no apparent reason, so I ran task manager and saw about eight IE8 instances (yes, eight) and one of them was taking 100MB, the other 68MB, the other 50MB, 20MB, 11MB, etc.

So what to do? My default browser has always been IE; that’s just always been the case for numerous reasons involving one of taste, preference, working professionally way back with certain technologies such as ActiveX which was IE-specific in its early years, etc. Since it has been my default browser, it’s got all my favorites/bookmarks the way I like ’em, so importing and reordering them with Firefox or Google Chrome would be a bit of a pain… I’m sure if I look hard enough I’ll find some kind of resolution to my original problem, but if it requires waiting for a service pack, I guess I’m gonna have to parts ways with IE8 for a while, that is, unless I can uninstall the damn thing and go back to IE7.

PC Specs (was manufactured ~June of ’08, purchased for a mere $399 on Sept. 28 – pretty damn new):

Model:
MEDION® AKOYA® E5300 D MULTIMEDIA PC
OS:
Windows Vista® Home Premium (32-bit) Service Pack 1
CPU:
AMD Phenom™ X3 8450 Triple-Core Processor 64-bit
Memory:
3072 MB DDR2 SDRAM Memory with 667 MHz, 64-bits, Dual Channel Memory
Video:
ATI Radeon™ HD3450 Graphics Card with 256 MB, DVI-I, D-Sub VGA and TV out
Storage:
640 GB Hard Disk Drive S-ATA 300 Interface, superfast 7200 rpm, 16 MB Cache

UPDATE: I FOUND A FIX EVEN THOUGH THE GUY THAT REPORTED IT WAS DOUBTFUL THAT IT WORKS.

1) Open a Command Prompt window as Administrator
2) Run:       regsvr32 /u actxprxy.dll
3) Then run:  regsvr32 actxprxy.dll

That fixed the problem with links not opening new windows or tabs! Yay! I dunno if this will have an effect on the zombie processes problem, but I’ll find out soon enough! Apparently, that DLL somehow is being improperly registered because if it’s not registered at all, IE8 will not even start up. So unregistering and reregistering as Administrator does the trick! *Sigh* Better luck next time, eh Microsoft? There’s always a next time…


Copyright © 1996-2010 Plight of the Fan Translator. All rights reserved.
Jarrah theme by Templates Next | Powered by WordPress