代码如下:
BOOL CHYDRAWApp::InitInstance()
{
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
} // Initialize OLE libraries
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
} AfxEnableControlContainer(); // Standard initialization
// If you are not using these features and wish to reduce the size
//  of your final executable, you should remove from the following
//  the specific initialization routines you do not need.#ifdef _AFXDLL
Enable3dControls(); // Call this when using MFC in a shared DLL
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif // Change the registry key under which our settings are stored.
// TODO: You should modify this string to be something appropriate
// such as the name of your company or organization.
SetRegistryKey(_T("Local AppWizard-Generated Applications")); LoadStdProfileSettings();  // Load standard INI file options (including MRU) // Register the application's document templates.  Document templates
//  serve as the connection between documents, frame windows and views. CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_HYDRAWTYPE,
RUNTIME_CLASS(CHYDRAWDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CHYDRAWView));
pDocTemplate->SetContainerInfo(IDR_HYDRAWTYPE_CNTR_IP);
pDocTemplate->SetServerInfo(
IDR_HYDRAWTYPE_SRVR_EMB, IDR_HYDRAWTYPE_SRVR_IP,
RUNTIME_CLASS(CInPlaceFrame));
AddDocTemplate(pDocTemplate); // Connect the COleTemplateServer to the document template.
//  The COleTemplateServer creates new documents on behalf
//  of requesting OLE containers by using information
//  specified in the document template.
m_server.ConnectTemplate(clsid, pDocTemplate, FALSE); // Register all OLE server factories as running.  This enables the
//  OLE libraries to create objects from other applications.
COleTemplateServer::RegisterAll();
// Note: MDI applications register all server objects without regard
//  to the /Embedding or /Automation on the command line. // create main MDI Frame window CMainFrame* pMainFrame = new CMainFrame;
          //LoadFrame此处失败,程序退出
          
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame; // Enable drag/drop open
m_pMainWnd->DragAcceptFiles(); // Enable DDE Execute open
EnableShellOpen();
RegisterShellFileTypes(TRUE); // Parse command line for standard shell commands, DDE, file open
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo); // Check to see if launched as OLE server
if (cmdInfo.m_bRunEmbedded || cmdInfo.m_bRunAutomated)
{
// Application was run with /Embedding or /Automation.  Don't show the
//  main window in this case.
return TRUE;
} // When a server application is launched stand-alone, it is a good idea
//  to update the system registry in case it has been damaged.
m_server.UpdateRegistry(OAT_DOC_OBJECT_SERVER);
COleObjectFactory::UpdateRegistryAll(); // Dispatch commands specified on the command line
if (!ProcessShellCommand(cmdInfo))
return FALSE; // The main window has been initialized, so show and update it.
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
pDocTemplate->CloseAllDocuments(FALSE);
m_SysPowerOnKey=false;
return TRUE;
}怎样解决?谢谢

解决方案 »

  1.   

    如果可以的话,发到:[email protected]
    我帮你看看!注明帖子的URL!
      

  2.   

    呵呵,不是太懂,如果你把 “AddDocTemplate(pDocTemplate);”
    这一句放在
             “pDocTemplate->SetContainerInfo(IDR_HYDRAWTYPE_CNTR_IP);
    pDocTemplate->SetServerInfo(
    IDR_HYDRAWTYPE_SRVR_EMB, IDR_HYDRAWTYPE_SRVR_IP,
    RUNTIME_CLASS(CInPlaceFrame));”
    之前试试呢?
      

  3.   

    注意new CMainFrame;这句是触发程序的全部,它创建了主框架,并且如果新建了文档,它还创建了视图和文档,呵呵。其调用了OnCreate函数一定不能有错误,否则就会出错!