<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # extern(C# 參考) **extern** 修飾符用于聲明在外部實現的方法。 **extern** 修飾符的常見用法是在使用 Interop 服務調入非托管代碼時與 **DllImport** 特性一起使用。在這種情況下,還必須將方法聲明為 **static**,如下面的示例所示: ``` [DllImport("avifil32.dll")] private static extern void AVIFileInit(); ``` **extern** 關鍵字還可以定義外部程序集別名,使得可以從單個程序集中引用同一組件的不同版本。有關詳細信息,請參閱 [外部別名(C# 參考)](https://msdn.microsoft.com/zh-cn/library/ms173212.aspx)。 將 [abstract](https://msdn.microsoft.com/zh-cn/library/sf985hc5.aspx) 和 **extern** 修飾符一起使用來修改同一成員是錯誤的做法。使用 **extern** 修飾符意味著方法是在 C# 代碼的外部實現的,而使用 **abstract** 修飾符意味著類中未提供方法實現。 extern 關鍵字用于 C# 中時會比用于 C++ 中時受到更多的限制。若要比較 C# 關鍵字與 C++ 關鍵字,請參見 C++ 語言參考中的“使用 extern 指定鏈接”。 示例 1\. 在此示例中,程序接收來自用戶的字符串并將該字符串顯示在消息框中。程序使用從 User32.dll 庫導入的 MessageBox 方法。 ``` //using System.Runtime.InteropServices; class ExternTest { [DllImport("User32.dll", CharSet=CharSet.Unicode)] public static extern int MessageBox(IntPtr h, string m, string c, int type); static int Main() { string myString; Console.Write("Enter your message: "); myString = Console.ReadLine(); return MessageBox((IntPtr)0, myString, "My Message Box", 0); } } ``` 示例 2\. 此示例闡釋了調入 C 庫(本機 DLL)的 C# 程序。 1.創建以下 C 文件并將其命名為 cmdll.c: ``` // cmdll.c // Compile with: /LD int __declspec(dllexport) SampleMethod(int i) { return i*10; } ``` 2.從 Visual Studio 安裝目錄打開 Visual Studio x64(或 x32)本機工具命令提示符窗口,并通過在命令提示符處鍵入 **cl /LD cmdll.c** 來編譯 cmdll.c 文件。 3.在相同的目錄中,創建以下 C# 文件并將其命名為 cm.cs: ``` // cm.cs using System; using System.Runtime.InteropServices; public class MainClass { [DllImport("Cmdll.dll")] public static extern int SampleMethod(int x); static void Main() { Console.WriteLine("SampleMethod() returns {0}.", SampleMethod(5)); } } ``` 3.從 Visual Studio 安裝目錄打開一個 Visual Studio x64(或 x32)本機工具命令提示符窗口,并通過鍵入以下內容來編譯 cm.cs 文件: > **csc cm.cs**(針對 x64 命令提示符) > > - 或 - > > **csc /platform:x86 cm.cs**(針對 x32 命令提示符) 這將創建可執行文件 cm.exe。 4.運行 cm.exe。 SampleMethod 方法將值 5 傳遞到 DLL 文件,這將返回該值與 10 相乘后的結果。程序生成以下輸出: ``` SampleMethod() returns 50. ``` ## C# 語言規范 有關詳細信息,請參閱 [C# 語言規范](https://msdn.microsoft.com/zh-cn/library/ms228593.aspx)。該語言規范是 C# 語法和用法的權威資料。 ## 請參閱 [System.Runtime.InteropServices.DllImportAttribute](https://msdn.microsoft.com/zh-cn/library/system.runtime.interopservices.dllimportattribute.aspx) [C# 參考](https://msdn.microsoft.com/zh-cn/library/618ayhy6.aspx) [C# 編程指南](https://msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx) [C# 關鍵字](https://msdn.microsoft.com/zh-cn/library/x53a06bb.aspx) [修飾符(C# 參考)](https://msdn.microsoft.com/zh-cn/library/6tcf2h8w.aspx)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看