You're correct Create returned 0 .
What might cause CDialog::Create to return 0?
Create a debug build of your application and use the debugger to step through the call to CDialog::Create. You should be able to do this because the MFC source code is installed as part of a Visual Studio installation that includes installing MFC.
And here's some bonus reading for you to do - Why can't I create my dialog with DialogBox, DialogBoxParam, CreateDialog, CreateDialogParam, or the indirect versions of same?