« April 2009 | Home | June 2009 »

Entries From May 2009

May 21, 2009

IMDb Credit

Filed under Celebrity, Movies, Video Games, Web

I’m pretty excited about this. I’ve always thought IMDb (Internet Movie Database) was pretty cool.

And now *I* am on it! My IMDb credit is online.


I got this credit for Star Wars: The Force Unleashed (a video game).

I should have another credit soon for a movie coming out in July.

May 12, 2009

C# vs. C++

Filed under Computers, Programming, Software

I am reading this document about the C# language.

Here are a list of features in C# that improve on how C++ works…



Reference to a class in another file of a project requires an include file No include file needed
Reference to a class in an external DLL requires an include file and the DLL’s .LIB file passed to the linker No .LIB file needed.
Add a reference to the DLL in the build(example: csc /r:external.dll helloworld.cs)
Exported symbols must use declspec or .DEF file No declspec or .DEF file.
Public symbols are exported, private/protected are not.
”internal” symbols are only available within module.
Referencing a class/structure before it is declared requires forward declaration Forward declaration not needed.
Declaration order is insignificant.

Switching to Unicode/16-bit text requires:

  • Different entry point (main/wmain)
  • Prefixing text with “L” or “_T”
  • New string manipulation functions

Unicode is the native string format

NULL is a concept, not part of the language. It is typically defined as 0 and thus is the equivalent of 0. null is a keyword. It is not equivalent to 0.
Basic data types (int, float, char, etc.) cannot accept a “null” value. Only pointers can have a “null” value.

All C# types can accept null as a value

  • For type T with null support, use type T?
  • For example, int with null support is int?
No support for “foreach” foreach keyword for iterating over a collection
Support for try and catch.
No support for "finally”
try-catch-finally support.
finally is always called, regardless of exception or not
No notification of overflow operations.
For example:
unsigned x = UINT_MAX;
// x == 0 now, no exception thrown
Using checked/unchecked you can get overflow or exception thrown behavior
No native support for critical sections lock keyword for critical sections
For switch statements, break is optional. break is required (to prevent bugs from accidentally forgetting to add break)
No built-in documentation XML documentation via “///”- prefixed comment. Used by IntelliSense in Visual Studio
Cannot split the definition of a class across multiple files Partial classes allow breaking up a source file (useful when multiple people are working on a class or when part of a class is auto-generated)
No support for mixing versions of libraries Can mix library versions without breaking existing code.
Developer must manage deletion of memory and potential issues from reading/writing to invalid memory

Garbage collection:

  • No memory leaks
  • Can’t read uninitialized variables
  • Can’t index past array boundaries
Types do not share a common root All types derived from base “object”



About May 2009

This page contains all entries posted to David's Blog in May 2009. They are listed from oldest to newest.

April 2009 is the previous archive.

June 2009 is the next archive.

Many more can be found on the main index page or by looking through the archives.

Powered by
Movable Type 3.34