From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=AWL,HTML_MESSAGE autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id E070CBC37 for ; Wed, 2 Sep 2009 13:27:59 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsQBANvznUpRZ90vkWdsb2JhbACCKS2YYgEBAQEJCwoHEwO+UoQbBYFXcA X-IronPort-AV: E=Sophos;i="4.44,318,1249250400"; d="scan'208,217";a="35356542" Received: from mtaout01-winn.ispmail.ntl.com ([81.103.221.47]) by mail1-smtp-roc.national.inria.fr with ESMTP; 02 Sep 2009 13:27:59 +0200 Received: from aamtaout03-winn.ispmail.ntl.com ([81.103.221.35]) by mtaout01-winn.ispmail.ntl.com (InterMail vM.7.08.04.00 201-2186-134-20080326) with ESMTP id <20090902112755.DXPX6742.mtaout01-winn.ispmail.ntl.com@aamtaout03-winn.ispmail.ntl.com> for ; Wed, 2 Sep 2009 12:27:55 +0100 Received: from romulus.metastack.com ([81.102.132.77]) by aamtaout03-winn.ispmail.ntl.com (InterMail vG.2.02.00.01 201-2161-120-102-20060912) with ESMTP id <20090902112754.FZOS2093.aamtaout03-winn.ispmail.ntl.com@romulus.metastack.com> for ; Wed, 2 Sep 2009 12:27:54 +0100 Received: from Tenor ([172.16.0.20]) (authenticated bits=0) by romulus.metastack.com (8.14.2/8.14.2) with ESMTP id n82BRlBF030157 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO) for ; Wed, 2 Sep 2009 12:27:51 +0100 From: "David Allsopp" To: References: In-Reply-To: Subject: RE: [Caml-list] Windows Vista/7 specific functions Date: Wed, 2 Sep 2009 12:27:01 +0100 Message-ID: <00c801ca2bc0$4c8043b0$e580cb10$@metastack.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_00C9_01CA2BC8.AE44ABB0" X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: Acorh/HA4BZZ0alKSdSsvoLViUaApQAKfybg Content-Language: en-gb Organization: MetaStack Solutions Ltd. X-Scanned-By: MIMEDefang 2.65 on 81.102.132.77 X-Cloudmark-Analysis: v=1.0 c=1 a=63ziId4715UA:10 a=y77DfCPJb5voerCKOakA:9 a=698EtPBgMoLF4M0SAWoA:7 a=dw4IcbDeqBoTNrBEZoNytqu7aEwA:4 a=yMhMjlubAAAA:8 a=SSmOFEACAAAA:8 a=kcLgccN6qvI3K6hDD5kA:9 a=m-Fb46nFsTGomQVkdg8A:7 a=K8LvnakY6pF1lxpc5Pfu95fPVkgA:4 X-Spam: no; 0.00; hacked:01 ocaml:01 ocamlopt:01 compiler:01 cygwin:01 lib:01 lib:01 ocamllib:01 cygwin:01 cvtres:01 ocaml:01 tarball:01 compiler:01 runtime:01 cygdrive:01 X-Attachments: cset="utf-8" cset="utf-8" This is a multi-part message in MIME format. ------=_NextPart_000_00C9_01CA2BC8.AE44ABB0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Reed, =20 Having hacked away with the Win64 port before I thought = I=E2=80=99d have a go. The first thing I noticed is that Microsoft have = finally released the x86 and x64 compilers in the same package (this was = a pain if you wanted to build MSVC and MSVC64 ports as you needed two = SDKs to do it...) =E2=80=93 though I haven=E2=80=99t tried building the = 32-bit MSVC port from this SDK yet. =20 Here=E2=80=99s what I did (you=E2=80=99ll have to excuse = my idiosyncratic way of copying binary files into the OCaml tree = =E2=80=93 these can be replaced with PATH changes if you want. I copy = things around so that ocamlopt always works without needing a special = build environment or vast compiler suites permanently in my PATH). =20 The build is slightly complicated because you need to = build flexdll directly.=20 =20 Make sure you have Cygwin base with with Devel\make and = Devel\subversion added =20 I installed the Win7 SDK to C:\Dev\WinSDK (though it = still irritatingly puts the compilers in C:\Program Files = (x86)\Microsoft Visual Studio 9.0\VC). I didn=E2=80=99t bother = installing Documentation, Samples or the IA64 libraries. =20 Add the following to your LIB environment variable: C:\Program Files (x86)\Microsoft Visual = Studio 9.0\VC\lib\amd64;C:\Dev\WinSDK\lib\x64 =20 Add the following to your INCLUDE environment variable: C:\Program Files (x86)\Microsoft Visual = Studio 9.0\vc\include;C:\Dev\WinSDK\Include =20 Set OCAMLLIB to C:\Dev\OCaml-MSVC64\lib =20 A whole load of files now get copied to = C:\Dev\OCaml-MSVC64\bin: From C:\Cygwin\bin, copy cygpath.exe and cygwin1.dll = (needed by flexlink) Extract flexdll.h, default.manifest and flexlink.exe = from the flexdll 0.19 x86 binaries (latest flexlink tool =E2=80=93 = doesn=E2=80=99t need to be x64) From C:\Program Files (x86)\Microsoft Visual = Studio\9.0\VC\bin\amd64, copy: 1033\clui.dll (this needs to be in = C:\Dev\OCaml-MSVC64\bin\1033) ml64.exe, cl.exe, c1.dll, c2.dll, = cvtres.exe, link.exe and mspdb80.dll From C:\Dev\WinSDK\Bin\x64, copy mt.exe =20 Or workaround that stupidity by having C:\Cygwin\bin and = the other directories in your PATH =20 Start Bash (possibly as Administrator depending on = permissions set on C:\Dev) I placed the ocaml 3.11.1 tarball in C:\Dev\Src-MSVC64 =20 Note that the sed instruction not only sets PREFIX but = it also removes bufferoverflowu.lib from EXTRALIBS =E2=80=93 apparently = this is no longer needed in this version of the SDK (presumably the = compiler has started to include all the required support natively or = perhaps the runtime now has it). =20 $ cd /cygdrive/c/Dev/Src-MSVC64 $ svn co svn://frisch.fr/flexdll/trunk flexdll-dev $ cd flexdll-dev $ make CHAINS=3Dmsvc flexdll_msvc.obj = flexdll_initer_msvc.obj $ cp *.obj /cygdrive/c/Dev/OCaml-MSVC64/bin $ cd .. $ tar -xzf ocaml-3.11.tar.gz $ cd ocaml-3.11 $ cp config/m-nt.h config/m.h $ cp config/s-nt.h config/s.h $ sed -e '20s/=3D.*$/=3DC:\/Dev\/OCaml-MSVC64/' -e = '92s/=3D.*/=3D/' config/Makefile.msvc64 > config/Makefile $ make -f Makefile.nt world opt opt.opt install =20 And you should have a fully working MSVC64 build with = the Win7 SDK Compilers (and therefore be able to link against the newer = libraries). If you wish, quite reasonably, to be a purist and have = everything 64-bit you can now go back to flexdll-dev and say: =20 $ sed -i -e 's/"afxres.h"//' version.rc $ rc version.rc $ cvtres /nologo /machine:amd64 /out:version_res.obj = version.res $ make version.ml $ ocamlopt -o flexlink.exe -ccopt "-link = version_res.obj" version.ml coff.ml cmdline.ml create_dll.ml reloc.ml $ cp flexlink.exe /cygdrive/c/Dev/OCaml-MSVC64/bin =20 And you=E2=80=99ll have flexlink.exe as a 64-bit = executable as well. =20 Best, =20 =20 David =20 =20 From: caml-list-bounces@yquem.inria.fr = [mailto:caml-list-bounces@yquem.inria.fr] On Behalf Of Reed Wilson Sent: 02 September 2009 05:44 To: caml-list@yquem.inria.fr Subject: [Caml-list] Windows Vista/7 specific functions =20 Hi all, =20 I am going to be writing a native-code 64-bit program which takes = advantage of some Windows Vista-only features (transactional NTFS), and = I was wondering how to get it working in OCaml. I have made numerous = interfaces to Windows XP functions, but the problem is that the NTFS = transactional functions are only available through MSVS 2008 and the = Vista/7 SDKs, which OCaml seems to not compile with. I tried using the = new Windows 7 SDK tools to compile the program to native code, but it = kept giving me errors with not being able to find bufferoverflowu.lib. =20 Does anybody know if there is any way to compile a 64-bit OCaml with the = newer Windows SDKs, or failing that, to at least tell OCaml how to = properly link things with them? =20 Thanks, Reed ------=_NextPart_000_00C9_01CA2BC8.AE44ABB0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable

Hi Reed,

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 Having hacked away with the Win64 port before I thought I=E2=80=99d have a go. = The first thing I noticed is that Microsoft have finally released the x86 and x64 = compilers in the same package (this was a pain if you wanted to build MSVC and MSVC64 = ports as you needed two SDKs to do it...) =E2=80=93 though I haven=E2=80=99t = tried building the 32-bit MSVC port from this SDK yet.

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 Here=E2=80=99s what I did (you=E2=80=99ll have to excuse my idiosyncratic way of = copying binary files into the OCaml tree =E2=80=93 these can be replaced with PATH changes if = you want. I copy things around so that ocamlopt always works without needing a = special build environment or vast compiler suites permanently in my = PATH).

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 The build is slightly complicated because you need to build flexdll = directly.

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 Make sure you have Cygwin base with with Devel\make and Devel\subversion = added

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 I installed the Win7 SDK to C:\Dev\WinSDK (though it still irritatingly = puts the compilers in C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC). I = didn=E2=80=99t bother installing Documentation, Samples or the IA64 = libraries.

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 Add the following to your LIB environment variable:

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 C:\Program Files (x86)\Microsoft Visual Studio = 9.0\VC\lib\amd64;C:\Dev\WinSDK\lib\x64

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 Add the following to your INCLUDE environment = variable:

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 C:\Program Files (x86)\Microsoft Visual Studio = 9.0\vc\include;C:\Dev\WinSDK\Include

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 Set OCAMLLIB to C:\Dev\OCaml-MSVC64\lib

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 A whole load of files now get copied to = C:\Dev\OCaml-MSVC64\bin:

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 From C:\Cygwin\bin, copy cygpath.exe and cygwin1.dll (needed by = flexlink)

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 Extract flexdll.h, default.manifest and flexlink.exe from the flexdll 0.19 = x86 binaries (latest flexlink tool =E2=80=93 doesn=E2=80=99t need to be = x64)

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 From C:\Program Files (x86)\Microsoft Visual Studio\9.0\VC\bin\amd64, = copy:

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 1033\clui.dll (this needs to be in C:\Dev\OCaml-MSVC64\bin\1033)

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 ml64.exe, cl.exe, c1.dll, c2.dll, cvtres.exe, link.exe and = mspdb80.dll

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 From C:\Dev\WinSDK\Bin\x64, copy mt.exe

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 Or workaround that stupidity by having C:\Cygwin\bin and the other = directories in your PATH

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 Start Bash (possibly as Administrator depending on permissions set on = C:\Dev)

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 I placed the ocaml 3.11.1 tarball in = C:\Dev\Src-MSVC64

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 Note that the sed instruction not only sets PREFIX but it also removes bufferoverflowu.lib from EXTRALIBS =E2=80=93 apparently this is no = longer needed in this version of the SDK (presumably the compiler has started to include = all the required support natively or perhaps the runtime now has = it).

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ cd /cygdrive/c/Dev/Src-MSVC64

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ svn co svn://frisch.fr/flexdll/trunk flexdll-dev

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ cd flexdll-dev

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ make CHAINS=3Dmsvc flexdll_msvc.obj = flexdll_initer_msvc.obj

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ cp *.obj /cygdrive/c/Dev/OCaml-MSVC64/bin

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ cd ..

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ tar -xzf ocaml-3.11.tar.gz

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ cd ocaml-3.11

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ cp config/m-nt.h config/m.h

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ cp config/s-nt.h config/s.h

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ sed -e '20s/=3D.*$/=3DC:\/Dev\/OCaml-MSVC64/' -e '92s/=3D.*/=3D/' = config/Makefile.msvc64 > config/Makefile

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ make -f Makefile.nt world opt opt.opt install

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 And you should have a fully working MSVC64 build with the Win7 SDK Compilers = (and therefore be able to link against the newer libraries). If you wish, = quite reasonably, to be a purist and have everything 64-bit you can now go = back to flexdll-dev and say:

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ sed -i -e 's/"afxres.h"/<windows.h>/' = version.rc

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ rc version.rc

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ cvtres /nologo /machine:amd64 /out:version_res.obj = version.res

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ make version.ml

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ ocamlopt -o flexlink.exe -ccopt "-link version_res.obj" = version.ml coff.ml cmdline.ml create_dll.ml reloc.ml

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 $ cp flexlink.exe /cygdrive/c/Dev/OCaml-MSVC64/bin

 =

=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 And you=E2=80=99ll have flexlink.exe as a 64-bit executable as = well.

 =

Best,<= /o:p>

 =

 =

David<= /o:p>

=C2=A0=

 =

From: caml-list-bounces@yquem.inria.fr [mailto:caml-list-bounces@yquem.inria.fr] On Behalf Of Reed = Wilson
Sent: 02 September 2009 05:44
To: caml-list@yquem.inria.fr
Subject: [Caml-list] Windows Vista/7 specific = functions

 

Hi all,

 

I am going to be writing a native-code 64-bit = program which takes advantage of some Windows Vista-only features (transactional = NTFS), and I was wondering how to get it working in OCaml. I have made numerous = interfaces to Windows XP functions, but the problem is that the NTFS transactional functions are only available through MSVS 2008 and the Vista/7 SDKs, = which OCaml seems to not compile with. I tried using the new Windows 7 SDK = tools to compile the program to native code, but it kept giving me errors with = not being able to find bufferoverflowu.lib.

 

Does anybody know if there is any way to compile a = 64-bit OCaml with the newer Windows SDKs, or failing that, to at least tell = OCaml how to properly link things with them?

 

Thanks,

Reed

------=_NextPart_000_00C9_01CA2BC8.AE44ABB0--