Difference between revisions of "Windows Resources"

From Simson Garfinkel
Jump to navigationJump to search
m
Line 3: Line 3:
I'm primarily a Unix developer, but some of the code that I maintain has to run on Windows. Here's a list of useful things for other Unix programmers that are put into this position.  
I'm primarily a Unix developer, but some of the code that I maintain has to run on Windows. Here's a list of useful things for other Unix programmers that are put into this position.  


Microsoft VC++
; MinGW
* Microsoft makes "express" versions of its Basic, C#, C++ and J# compilers available [http://msdn.microsoft.com/vstudio/express/ for free]. Presumably this is to compete against cygwin, which lets you compile and run traditional Linux/Unix free software on Windows. (I don't like using [http://www.cygwin.com/ cygwin] myself, becuase it requires the use of a special Cygwin DLL, it has traditionally had problems with multi-threading, and there have been performance issues in the past. But for many jobs Cygwin is probably just fine.)
: These days I'm primarily doing my Windows development on a Macintosh computer using mingw as a cross-compiler. For instructions on how to do this download either my bulk_extractor program or afflib and look for the file "make_mingw.sh" in the root directory.


Cryptography on Windows
; Microsoft VC++
* Windows has a built-in CryptoAPI that can perform most cryptographic functions, but the API is completely non-standard. Microsoft posted an [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/seccrypto/security/hashing.asp example C program to calculate the MD5 hash of a file using the CryptoAPI]. Getting this program to actually compile requires that you install the Platform SDK in addition to the C++ compiler. Successfully linking the proram requires information not present on the MSDN web page. I have uploaded the [http://www.simson.net/ref/winmd5/winmd5.cpp source code] and a [http://www.simson.net/ref/winmd5/winmd5.mak makefile for Microsoft's NMAKE] to this server.
: Microsoft makes "express" versions of its Basic, C#, C++ and J# compilers available [http://msdn.microsoft.com/vstudio/express/ for free]. Presumably this is to compete against cygwin, which lets you compile and run traditional Linux/Unix free software on Windows. (I don't like using [http://www.cygwin.com/ cygwin] myself, becuase it requires the use of a special Cygwin DLL, it has traditionally had problems with multi-threading, and there have been performance issues in the past. But for many jobs Cygwin is probably just fine.)
 
;Cryptography on Windows
: Windows has a built-in CryptoAPI that can perform most cryptographic functions, but the API is completely non-standard. Microsoft posted an [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/seccrypto/security/hashing.asp example C program to calculate the MD5 hash of a file using the CryptoAPI]. Getting this program to actually compile requires that you install the Platform SDK in addition to the C++ compiler. Successfully linking the proram requires information not present on the MSDN web page. I have uploaded the [http://www.simson.net/ref/winmd5/winmd5.cpp source code] and a [http://www.simson.net/ref/winmd5/winmd5.mak makefile for Microsoft's NMAKE] to this server.


However, it's usually easier just to include md5.h and md5.c if that's all you need.
However, it's usually easier just to include md5.h and md5.c if that's all you need.


[[Category:Resources]]
[[Category:Resources]]

Revision as of 06:17, 9 August 2010

Windows Development

I'm primarily a Unix developer, but some of the code that I maintain has to run on Windows. Here's a list of useful things for other Unix programmers that are put into this position.

MinGW
These days I'm primarily doing my Windows development on a Macintosh computer using mingw as a cross-compiler. For instructions on how to do this download either my bulk_extractor program or afflib and look for the file "make_mingw.sh" in the root directory.
Microsoft VC++
Microsoft makes "express" versions of its Basic, C#, C++ and J# compilers available for free. Presumably this is to compete against cygwin, which lets you compile and run traditional Linux/Unix free software on Windows. (I don't like using cygwin myself, becuase it requires the use of a special Cygwin DLL, it has traditionally had problems with multi-threading, and there have been performance issues in the past. But for many jobs Cygwin is probably just fine.)
Cryptography on Windows
Windows has a built-in CryptoAPI that can perform most cryptographic functions, but the API is completely non-standard. Microsoft posted an example C program to calculate the MD5 hash of a file using the CryptoAPI. Getting this program to actually compile requires that you install the Platform SDK in addition to the C++ compiler. Successfully linking the proram requires information not present on the MSDN web page. I have uploaded the source code and a makefile for Microsoft's NMAKE to this server.

However, it's usually easier just to include md5.h and md5.c if that's all you need.