2016-11-02 1 views
1

以下のライブラリをビルドしてからプログラムをリンクすると、ライブラリにリンクされたプログラムでlibInitdriveListfreeSpaceの関数が表示されます。期待する。F#ライブラリの列挙型がリンクされたプログラムで表示されない

ライブラリに含まれる列挙型の参照方法がわかりません。列挙型は表示されているのか、リンクされたプログラムで可視にできるのか、もしあれば、どのように参照されていますか?

namespace Toa.volLib 
open System 
open System.Threading 
open System.Collections.Generic 
open System.Text 
open System.IO 
open Microsoft.Win32 

[<AutoOpen>] 
module volLib = 
    type volTypes = GB = 1000000000L | Min_c = 5000000000L | Min_d = 10000000000L 

    let libInit = ref false 

    let driveList() = 
     DriveInfo.GetDrives() 

    let freeSpace drive = 
     let di = DriveInfo(drive) 
     di.AvailableFreeSpace 
+1

移動列挙型を:あなたは

type volUnion = | GB2 | Min_c2 | Min_d2 

のように労働組合を定義する場合、あなたは次のように、ちょうどその名前でそれぞれのケースにアクセスすることができます。 – Gustavo

+0

@Gustavoしかし、リンクプログラムからそれらを参照するには? – octopusgrabbus

+1

いつものように、参照の追加、参照、dllの選択...をクリックしてください。 – Gustavo

答えて

1

libInitと他のモジュールが表示されている場合は、ライブラリを正しくリンクしていることを意味します。

あなたが列挙型にアクセスしようとすると、同様に、列挙型の名前を前に付けする必要があります:あなたはF#が組合の種類を判別すると何ができるかよりも異なっていること

let accessEnum = volTypes.GB 

。モジュールの外部

let accessUnion = GB2 
関連する問題