jeffy
Lv 4
jeffy 發問時間: 電腦與網際網路程式設計 · 9 年前

C# 呼叫 Turbo C library

請問高手

C# 能不能去執行Turbo C++ 的Library,

例如 fgets( ) fprintf( ) strcpy( ) 等等

要如何執行 ??

4 個解答

評分
  • 9 年前
    最佳解答

    若要將方法宣告成從 DLL 匯出進行實作,請執行下列步驟: 使用 static 和 extern C# 關鍵字來宣告方法。 將 DllImport 屬性附加至方法。DllImport 屬性可讓您指定包含該方法的 DLL 名稱。一般的方式是讓 C# 方法的名稱為與匯出的方法相同,但是您也可以使不同的名稱。 您也可以為方法的參數和傳回值指定自訂的封送處理資訊,這將會覆寫 .NET Framework 預設的封送處理。 本範例說明如何使用 DllImport 屬性從 msvcrt.dll 呼叫 puts 來輸出訊息。// PInvokeTest.csusing System;using System.Runtime.InteropServices;class PlatformInvokeTest{ [DllImport("msvcrt.dll")] public static extern int puts(string c); [DllImport("msvcrt.dll")] internal static extern int _flushall(); public static void Main() { puts("Test"); _flushall(); }}

    其他內容音字數限制請參考 http://msdn.microsoft.com/zh-tw/library/aa288468(V...

    參考資料: MSDN
    • 登入以對解答發表意見
  • 9 年前

    Debug.WriteLine = fprintf or printf ??

    • 登入以對解答發表意見
  • 9 年前

    C#有對應的函式,如Debug.WriteLine = fprintf

    如果你執意要用C++的library,你可以在VC++中將這些函式都編譯成dll,C#加入reference

    • 登入以對解答發表意見
  • novus
    Lv 6
    9 年前

    你指的是古老的 16 位元 Turbo C++嗎?

    如果你非要用 TC 不可,那還頗有難度....

    如果你只是要用那幾個函式而已,使用VC++提供的會比較明智。

    VC++的基本函數放在 msvcrt.dll

    在C#中使用DLL應該是基本功吧

    • 登入以對解答發表意見
還有問題?馬上發問,尋求解答。