日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#中使用DLL相关问题

發布時間:2025/3/18 C# 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#中使用DLL相关问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C#中使用DLL相關問題

一,C#調用 C/C++ 庫函數

1,UNITY的C# VS工程常常打不開 屬性頁,右鍵工程無 【添加引用】項。原因是VS的自帶工具【適用于UNITY的工具】導致的。

解決辦法:VS-【工具】-【選項】-【適用于UNITY的工具】-【雜項】-【訪問項目屬性】改為true,然后重啟VS,?就可以打開項目屬性了

2,C#工程的屬性頁與C++相差很大,它沒有文件目錄的設置項,沒有LIB文件的添加和目錄項,因此,C#工程使用庫文件只有一種方式:添加引用,

且C#只能引用DLL,不能引用LIB

3,添加引用時,C#工程一定要添加引用才能使用DLL,就算你的DLL在工程中任何位置不添加引用也不能用,這很明顯,就像C++工程中不添加LIB及其目錄則不能用一樣

添加引用只是告訴IDE該到哪里去取這個DLL,

4,在代碼中聲明導出函數【注意導出函數必須是 static extern的】

[System.Runtime.InteropServices.DllImport("KERNEL32.DLL", EntryPoint="RtlZeroMemory")]public unsafe static extern bool ZeroMemory(byte* destination, int length);

?

關于靜態鏈接庫和動態鏈接庫:

靜態鏈接庫只有一個.LIB文件,使用時 : 工程中添加.lib并指定lib目錄,代碼中包含.h或只接聲明lib中的函數名然后使用

動態鏈接庫可以只生成一個dll而不生成lib,這樣使用時只能使用 系統函數loadlibary()來加載這個dll,并從中導出想要使用的函數。

動態鏈接庫常用的使用方式是生成一個lib和一個dll,使用時 : 工程中添加.lib并指定lib目錄,代碼中包含.h或只接聲明lib中的函數名然后使用

?二,C#調用 C# 庫

C#的庫只有動態鏈接庫DLL,且調用極為簡單,只需要添加引用,然后在程序中像使用一個源碼類那樣使用它,不需要 DllImport標簽來導入函數,示例如下:

//DLL,創建一個庫工程,添加如下代碼,編譯生成了ClassLibaray1.DLL
namespace
ClassLibrary1 {public class Class1{public void Print(string s){Console.WriteLine(">> {0}", s);}} } //工程中添加引用,將ClassLibaray1.dll添加到工程中
//使用
ClassLibaray1.DLL
using
ClassLibrary1;namespace uselib {public class myclass{static void Main(){var osp = new sp1class();osp.Print("10");Class1 oc1 = new Class1();oc1.Print("ddd");}} }

?

?

另外參考:

1,將CS腳本打成DLL并在UNITY中使用

https://blog.csdn.net/qq_25210959/article/details/53285403

2,將UNITY 的DLL打進自己的DLL中?

https://blog.csdn.net/suifcd/article/details/48248015

posted on 2018-07-27 19:16 時空觀察者9號 閱讀(...) 評論(...) 編輯 收藏

總結

以上是生活随笔為你收集整理的C#中使用DLL相关问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。