Sunday, June 13, 2010

prefast code analyze

Visual C++ has a static code analyzer called PREfast that ist now ditributes in the new-ish Windows SDK v6.1. PREfast analyze used to be distributed in the DDK, and it used in part by the Microsoft Secure Development Lifecycle (SDL). The analysis basically catches stuff you forget when you're dealing with a lot of code

- Checking for NULL pointers or parameters in your functions
- Out of bounds indexing or buffer overflows for example in array indexes in 'for' loops
- Local variable scope masking other scopes

To make code analyze work with visual studio, for example VS2005, I set up this batch file

; devenv-prefast.bat
call "C:\Program Files\Windows SDK\v6.1\vcvars32.bat"
start "C:\Program Files\Microsoft Visual Studio 8.0\VC\Common7\IDE\devenv.exe" /UseEnv


This uses the PATH, INCLUDES, and LIBS from vcvars32.bat, and uses them in the Visual Studio environment. Then, you add /analyze to the Project -> C/C++ Command line options and it does the static code analysis

Saturday, April 17, 2010

dotfiles

Everyone knows linux stuff is totally customizable -- but what I figured out was that a lot of the configuration options are in hidden 'dotfiles'! I wanted to give cygwin a dark theme, so here's the most basic dark theme for vim and xterm

vim using .vimrc

" Example .vimrc here http://www.vi-improved.org/vimrc.php
" Vim colorschemes generator http://inspiration.sweyla.com/code/
" {
set background=dark " we plan to use a dark background
colorscheme inspiration907827
syntax on " syntax highlighting on
" }





xterm using .Xdefaults

XTerm*Background: black
XTerm*Foreground: grey
XTerm*utf8: 1





-- check out http://dotfiles.org/ for more of this stuff

Saturday, February 20, 2010

opengl post processing

I figured out how to use OpenGL for post processing ... finally -- sort of used it as an excuse for valentines day to make something that would run on a Mac



Uses this pixel shader to make the big pixel convolution - http://www.lighthouse3d.com/opengl/ledshader/

Monday, January 18, 2010

wtl for the poor

I've always liked WTL. I learned programming by exploring Windows programming and C++ -- For me, just using the "Win32 API" was a good exercise (was it really though?). As I got better, I was constantly using C++ in weird ways, but when WTL came out, I knew that that it was actually good C++ for the Windows programming


WTL project circa 2006 - http://zxcvbn.googlecode.com/svn/trunk/wtltrip/

Recently though, Microsoft made WTL not so free, by taking rid of the MFC/ATL in the "Platform SDK" (which is now called the "Microsoft SDK").

The SDK does not have ATL base classes anymore, and it does not come with the Visual Studio Express Editions either. Free open source web browser Google Chrome uses WTL on Windows, and has some extensive workarounds for the issues


I found that I could get the ATL base classes if I register with MSDN and download the WDK here ...wait what? the device driver development kit? Microsoft acknowledges this in the WDK release notes : Windows Driver Kit (WDK) Version 7.0.0 Release Notes

[August 2009] ATL Best Practice - Use the Visual Studio release

ATL is included in the WDK as a convenience for driver developers who need to create Windows applets for their drivers. ATL should not be used for software development beyond this scope. The ATL that is available through Visual Studio provides a more complete and current set of libraries and should be used for development of software and web applications. Visual C++ Express Edition is available for free from MSDN.


So there aren't any good free sources for the MFC/ATL base, so the WTL is no longer a free software platform like it should be.

sources:
http://www.caloni.com.br/blog/archives/como-usar-wtl-com-o-atl-do-ddk


========== Build: 1 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========