Hi all, This is my first posting to this list...so here goes...
I have recently moved to Vista x64 and I'm having troubling compiling a 64-bit version of gvim. I downloaded the MinGW-x64 packages (mingw-w64-bin_x86_64-mingw_20081123.zip) along with the MinGW-x86 version of make (mingw32-make-3.81-20080326-2.tar.gz). Now the make fails when compiling if_ole.cpp with this error in included header if_ole.h: <snip> gcc -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF -DFEAT_BIG -DFEAT_OLE DFEAT_GUI_W32 -DFEAT_CLIPBOARD -DFEAT_MBYTE -pipe -w -march=native -Wall -O3 -fomit-frame-pointer -freg-struct-return -s -c -o gobj/if_ole.o if_ole.cpp gcc -c -Iproto -DWIN32 -DWINVER=0x0400 -D_WIN32_WINNT=0x0400 -DHAVE_PATHDEF -DFEAT_BIG -DFEAT_OLE -DFEAT_GUI_W 32 -DFEAT_CLIPBOARD -DFEAT_MBYTE -pipe -w -march=native -Wall -O3 -fomit-frame-pointer -freg-struct-return -s pathdef.c -o gobj/pathdef.o windres gobj/vimres.res gobj/vimrc.o In file included from if_ole.cpp:43: if_ole.h:50: error: 'interface' does not name a type if_ole.cpp: In member function 'virtual HRESULT CVim::GetHwnd(UINT*)': if_ole.cpp:299: error: cast from 'HWND__*' to 'UINT' loses precision make: *** [gobj/if_ole.o] Error 1 make: Target `gvim.exe' not remade because of errors. make: Leaving directory `C:/Users/John/Documents/Software/Utility/Vim/72/vim72/src' ... gvimext.cpp: In member function 'virtual HRESULT CShellExtClassFactory::CreateInstance(IUnknown*, const IID&, void**)': gvimext.cpp:432: error: cannot allocate an object of abstract type 'CShellExt' gvimext.h:112: note: because the following virtual functions are pure within 'CShellExt': c:\program files\gcc\bin\../lib/gcc/x86_64-pc-mingw32/4.4.0/../../../../x86_64-pc-mingw32/include/shlobj.h:215: note: virtual HRESULT IContextMenu::GetCommandString(UINT_PTR, UINT, UINT*, CHAR*, UINT) make[1]: *** [gvimext.o] Error 1 windres --input-format=rc --output-format=coff -DMING gvimext_ming.rc -o gvimext.res make[1]: Target `all' not remade because of errors. make[1]: Leaving directory `C:/Users/John/Documents/Software/Utility/Vim/72/vim72/src/GvimExt' make: *** [GvimExt/gvimext.dll] Error 2 make: Target `all' not remade because of errors. make: Leaving directory `C:/Users/John/Documents/Software/Utility/Vim/72/vim72/src' </snip> Note that turning off all optimizations makes no difference. If I remove the need for OLE from the build I get a gvim.exe, but it doesn't run. It starts up and then hangs chewing up 50% CPU on my Intel Core 2 Duo. Process Explorer says that it's sitting in kernel function: expinterlockedflushslist Now, the interesting bit. If I use Visual Studio 2008 Express with the SDK addon to build a 64-bit version of gvim, I don't get any errors on if_ole.h and I get a working copy of gvim.exe. Has anyone else tried this? Cheers John --~--~---------~--~----~------------~-------~--~----~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~----------~----~----~----~------~----~------~--~---