生成dll庫
C# 和 VC++ 生成庫的方法類似,只是不能生成靜態庫,只能生成動態庫,工程配置如下:
然后編譯就會生成dll文件了。
代碼的特殊處理:
在對外的類和函數前面加上 public,才能被調用,如下:
調用dll
1.右鍵添加引用,但提示一個錯誤,如下:
解決方法:
a.以管理員身份打開 Developer Command Prompt for VS 2019(vs2019開發人員命令提示符)。
可能比較難以找到這個快捷方式,那么,可以通過 everything 來找到,如下:
b.定位到你的vs2019的安裝目錄,比如命令進入:
cd "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\PrivateAssemblies"
c.然后執行下面的命令,
gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll
結果提示失敗,如下:
那么,該怎么辦呢?從提示信息可以看出是找不到該文件,但是通過everything一搜索,該目錄下確實有該文件,如下:
最后改成絕對路徑就OK了,如下:
gacutil -i "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.Shell.Interop.11.0.dll"
當看到“程序集已經成功添加到緩存中”,重啟VS即可。
2.把dll添加進來,如下:
3.代碼的特殊處理:
比C++的簡單多了,無需任何特殊處理,就和調用代碼一樣調用就行。
問題:
但是,運行的時候,到了調試dll的地方,就中斷了,再也跑不起來了,如下 :
解決方法:
1.“處於中斷模式”只是表面,要看異常的具體提示“未能從程序集XXXX...加載類型XXX", 原因是我的exe程序和dll文件時使用的相同的名字,把dll的生成名字改一下就行,如下: