What if you had written an native ATL ActiveX control and just can not let it show on your IE7 browser?

You had considered all those security reasons like:

  • turning on “using unsigned ActiveX control” on IE7 setting for Internet Zone
  • turn off portection mode for Internet Zone
  • put the test webserver url to trusted zone

and if your native ActiveX control still not showing up, you better check out the application log in event viewer!!

I am using VS2008 VC++ to create an ATL 8.0 ActiveX Control, after compiled the dll, only copy the dll to the web server for download. tested my control via IE7 of another Vista VM and the control just won’t show up even I’ve lower the security level.

later found this post from Junfena Zhana, checked the application log and confirmed that it’s indeed a SxS problem, I am lacking VC90 CRT runtime. also knew that I was compiled my control in debug mode so that on the client side there won’t have the debug version of VC90 CRT. by running SxSTrace to confirm the lacking dll, I just installed the VC++ 2008 Redistributable Package on my testing Vista VM, also recompile my dll in release mode, and my ATL ActiveX control finally showed up in IE7 browser!

Another SxS problem faced… feeling so tough living in a world without .NET framework…

FYI.