how to sucessfully get a 64bit compile for windows
This issue was created automatically from an original Mantis Issue. Further discussion may take place here.
Hello,
In case anyone is interested, here are the details of how I was able to compile VTK on a 64bit WINDOWS workstation running windows 64 bit edition:
Precompile: · Downloaded the following from kitware (www.kitware.com): o CMake Beta version 2.4.1 § Cmake-2.4.1-win32.exe o VTK source code § Vtk-5.0.0.zip o VTK data § Vtkdata-5.0.0.zip · Installed CMake 2.4.1. This install only took a few minutes and was successful. · Unzipped VTK source code to C:\VTK. This only took a few minutes and the unzip was successful. · Unzipped VTK data to C:\VTK. This only took a few minutes and the unzip was successful.
CMake Generation: · Started CMake and made the following settings: o Source code: C:\VTK o Binaries: C:\VTK\binaries
Clicked “Configure” and set build for to “Visual studio 8 2005 Win 64” and clicked OK. Values were updated.
· Clicked “Configure” again to set these values. · Clicked “OK” to generate build files. This took a few minutes and was successful.
Summary of changes necessary for a compile (Changes in red): General Change: · Set the VTK folder to be no longer read-only.
File vtkWin32RenderWindowInteractor.cxx: · Changed line vtkSetWindowLong(this->WindowId,GWL_WNDPROC,(LONG)vtkHandleMessage); To: vtkSetWindowLong(this->WindowId,GWLP_WNDPROC,(LONG)vtkHandleMessage);
· Changed line this->OldProc = (WNDPROC)vtkGetWindowLong(this->WindowId,GWL_WNDPROC); To: this->OldProc = (WNDPROC)vtkGetWindowLong(this->WindowId,GWLP_WNDPROC);
· Changed line vtkSetWindowLong(this->WindowId,GWL_WNDPROC,(LONG)this->OldProc); To: vtkSetWindowLong(this->WindowId,GWLP_WNDPROC,(LONG)this->OldProc);
File vtkOpenGLExtensionManager.cxx: · Changed line return wglGetProcAddress(fname); To: return (vtkOpenGLExtensionManagerFunctionPointer)wglGetProcAddress(fname);
File vtkStringArray.cxx: · Changed line for (unsigned int j = 0; j < this->Array[i].length(); ++j) to: for (vtkStdString::size_type j = 0; j < this->Array[i].length(); ++j)
File btkWin32VideoSource.cxx: · Changed line (vtkGetWindowLong(hwnd,GWL_USERDATA)); to: (vtkGetWindowLong(hwnd,GWLP_USERDATA));
· Changed line vtkSetWindowLong(this->Internal->ParentWnd,GWL_USERDATA,(LONG)this); to: vtkSetWindowLong(this->Internal->ParentWnd,GWLP_USERDATA,(LONG)this);
· Changed line wc.lpfnWndProc = &vtkWin32VideoSourceWinProc; to: wc.lpfnWndProc = (WNDPROC)&vtkWin32VideoSourceWinProc;