跳轉到內容

GLPK/C-Sharp

來自華夏公益教科書,開放的書籍,開放的世界

C# 是一種由 微軟 設計的程式語言,一些人將其描述為類似於 Java [1]。C# 的開源實現由 Mono 專案提供。

C# 已在以下文件中進行了標準化

GLPK for C#/CLI

[編輯 | 編輯原始碼]

GLPK for C#/CLI 為 GLPK 提供了 C# 和通用語言介面 (CLI) 繫結。它是在 GPL V3 下許可的。程式碼是使用 SWIG 生成的。

GLPK for C#/CLI 支援回撥和終端監聽器。發生在 GLPK 本機庫中的錯誤將作為 C# 異常丟擲。GLPK API 的所有功能都作為 GLPK 物件的方法提供,如下面的示例所示

using System;
using org.gnu.glpk;

class Program
{  
	static void Main (string[] args)
	{
		Console.WriteLine ("GLPK " + GLPK.glp_version ());
	}
}

封送處理

[編輯 | 編輯原始碼]

C# 可以使用封送處理直接呼叫 C 庫函式。以下程式呼叫 glp_version() 來輸出 GLPK 庫的版本。

/*
 * This program demonstrates calling the GLPK library with C#.
 */
using System;
using System.Runtime.InteropServices;

public class Test {

    [DllImport ("glpk")]
    static extern IntPtr glp_version();

    public static void Main(string[] args) {
        Console.WriteLine("GLPK " + version());
    }

    public static string version() {
        return Marshal.PtrToStringAnsi(glp_version());
    }
}

要使用 Mono 編譯程式,請使用

mcs test.cs

要使用 Visual C# 編譯程式,請使用

csc test.cs

Visual Studio

[編輯 | 編輯原始碼]

當 GLPK 使用 Visual Studio C++ 編譯時,兩者都.dll.lib檔案被建立。在這種情況下,在 Visual Studio C# 專案中使用 GLPK 最簡單(常用)的方法是將 C++ GLPK 專案設為 C# 專案的依賴項,幷包含.lib檔案。

GLPK# (GLPK Sharp) 為 GLPK 提供了 C# 語言繫結,並在 CeCILL 版本 2 下獲得許可。

GLPK# 使用 C++/CLI 編寫,通常會靜態連結到 GLPK。截至 2012 年 7 月,GLPK# 支援大多數 GLPK 4.45 API,包括終端回撥和分支定界回撥。有關詳細資訊,請參閱法語/英語雙語專案網站。

參考文獻

[編輯 | 編輯原始碼]
  1. Dormann, Scott (2007). "C#的歷史". {{cite journal}}: Cite journal 要求 |journal= (幫助)
華夏公益教科書