hi everyone;<br>I am trying to compile simple vtk samples. Then, I faced with error like:<br><br>Error 1 fatal error C1189: #error : include 'stdafx.h' before including this file for PCH <br><br>How can I deal with this problem? can anyone help?<br>
<br>Here is the sample code:<br>--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br>
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br>#include "vtkSDI.h"<br>
<br>#include "vtkSDIDoc.h"<br>#include "vtkSDIView.h"<br><br>#include "vtkCallbackCommand.h"<br>#include "stdafx.h"<br>#ifdef _DEBUG<br>#define new DEBUG_NEW<br>#endif<br><br><br>// CvtkSDIView<br>
<br>IMPLEMENT_DYNCREATE(CvtkSDIView, CView)<br><br>BEGIN_MESSAGE_MAP(CvtkSDIView, CView)<br> // Standard printing commands<br> ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)<br> ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)<br>
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)<br> ON_WM_CREATE()<br> ON_WM_DESTROY()<br> ON_WM_ERASEBKGND()<br> ON_WM_SIZE()<br>END_MESSAGE_MAP()<br><br>// CvtkSDIView construction/destruction<br><br>
CvtkSDIView::CvtkSDIView()<br>{<br> this->pvtkMFCWindow = NULL;<br><br> // Create the the renderer, window and interactor objects.<br> this->pvtkRenderer = vtkRenderer::New();<br>}<br><br>CvtkSDIView::~CvtkSDIView()<br>
{<br> // delete generic vtk window<br> if (this->pvtkMFCWindow) delete this->pvtkMFCWindow;<br>}<br><br>void CvtkSDIView::OnDraw(CDC* pDC)<br>{<br> CvtkSDIDoc* pDoc = GetDocument();<br> ASSERT_VALID(pDoc);<br><br>
if (this->pvtkMFCWindow)<br> {<br> if (pDC->IsPrinting())<br> this->pvtkMFCWindow->DrawDC(pDC);<br> }<br>}<br><br><br>// CvtkSDIView printing<br><br>BOOL CvtkSDIView::OnPreparePrinting(CPrintInfo* pInfo)<br>
{<br> // default preparation<br> return DoPreparePrinting(pInfo);<br>}<br><br>void CvtkSDIView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)<br>{<br> // TODO: add extra initialization before printing<br>}<br><br>
void CvtkSDIView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)<br>{<br> // TODO: add cleanup after printing<br>}<br><br><br>// CvtkSDIView diagnostics<br><br>#ifdef _DEBUG<br>void CvtkSDIView::AssertValid() const<br>
{<br> CView::AssertValid();<br>}<br><br>void CvtkSDIView::Dump(CDumpContext& dc) const<br>{<br> CView::Dump(dc);<br>}<br><br>CvtkSDIDoc* CvtkSDIView::GetDocument() const // non-debug version is inline<br>{<br> ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CvtkSDIDoc)));<br>
return (CvtkSDIDoc*)m_pDocument;<br>}<br>#endif //_DEBUG<br><br><br>// CvtkSDIView message handlers<br><br>int CvtkSDIView::OnCreate(LPCREATESTRUCT lpCreateStruct)<br>{<br> if (CView::OnCreate(lpCreateStruct) == -1)<br>
return -1;<br><br> return 0;<br>}<br><br>void CvtkSDIView::OnDestroy()<br>{<br> // Delete the the renderer, window and interactor objects.<br> if (this->pvtkRenderer) this->pvtkRenderer->Delete();<br>
<br> // destroy base<br> CView::OnDestroy();<br>}<br><br>BOOL CvtkSDIView::OnEraseBkgnd(CDC* pDC)<br>{<br> return TRUE;<br>}<br><br>void CvtkSDIView::OnSize(UINT nType, int cx, int cy)<br>{<br> CView::OnSize(nType, cx, cy);<br>
<br> if (this->pvtkMFCWindow)<br> this->pvtkMFCWindow->MoveWindow(0, 0, cx, cy);<br>}<br><br>static void handle_double_click(vtkObject* obj, unsigned long,<br> void*, void*)<br>
{<br> vtkRenderWindowInteractor* iren = vtkRenderWindowInteractor::SafeDownCast(obj);<br> if(iren && iren->GetRepeatCount())<br> {<br> AfxMessageBox("Double Click");<br> }<br>}<br><br>void CvtkSDIView::OnInitialUpdate()<br>
{<br> CView::OnInitialUpdate();<br><br> if (this->pvtkMFCWindow) delete this->pvtkMFCWindow;<br> this->pvtkMFCWindow = new vtkMFCWindow(this);<br><br> this->pvtkMFCWindow->GetRenderWindow()->AddRenderer(this->pvtkRenderer);<br>
<br> // get double click events<br> vtkCallbackCommand* callback = vtkCallbackCommand::New();<br> callback->SetCallback(handle_double_click);<br> this->pvtkMFCWindow->GetInteractor()->AddObserver(vtkCommand::LeftButtonPressEvent, callback, 1.0);<br>
callback->Delete();<br><br>}<br>-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br>\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\<br>
<br>So, How can I deal with this problem? can anyone help?<br>