Self-dual codes and lattices