Понимание _tmain в консольных проектах Visual С++

В Visual С++ 2008 Express, когда я создаю новый проект консоли, я начинаю с следующей программы:

//Explodey.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

int _tmain(int argc,_TCHAR* argv[])
{
  return 0;
}

У меня есть несколько вопросов по этому поводу:

  • Почему главная функция _tmain вместо main?

  • Я думал, что параметр argv должен быть char* argv[] вместо _TCHAR.

  • Что stdafx.h?

На самом деле это не похоже на тот же С++, к которому я привык.