You have to add the dependency, exactly as RLWA32 said. But even if you did that, I expected it to crash because of your second parameter "(int *)2". 2 certainly does not point to an int, as required by TaskDialogIndirect. Better:
int idButton = 0;
TaskDialogIndirect(&tdc, &idButton, NULL, NULL);
Or if you don't need to know the button being pressed:
TaskDialogIndirect(&tdc, NULL, NULL, NULL);