c 如何呼叫動態鏈結庫(託管)

2021-06-22 09:41:35 字數 1924 閱讀 7761

net平台上,呼叫dll檔案有2種含義:

1、呼叫託管dll,即使用.net平台開發的dll,屬於託管**。

2、呼叫非託管dll,即傳統的dll,一般是c++,vb,delphi等等開發出來的,屬於非託管**。

對於託管呼叫,舉例如下:

比如一段座標轉換的程式,在名字空間mydll裡,有三個類

在函式類裡有兩個方法。

using system;

using system.collections.generic;

using system.linq;

using system.text;

//座標轉換方法

namespace mydll

public class zb_xy

public class transcode

//座標轉換函式   四引數

public int trans_xy_fmodel(double x, double y, out double outx, out  double outy, zbtrans_4para para4)

public static double trans_jd_hd(double ang)

ang_d = math.floor(ang);

ang_f = (ang * 100 - ang_d * 100);

的計算會出現誤差,計算的分值為34.999999999  這樣會引起很大的偏差 下面的if語句來處理這個問題

if (math.abs(math.floor(ang_f) - ang_f) > 0.6)

else

ang_m = (ang * 10000 - ang_d * 10000 - ang_f * 100);

if (ang_m < math.pow(10, -10))

ang_hd = (((ang_d * 3600 + ang_f * 60 + ang_m) / 3600) * pi) / 180;

if (flag_1 == false)

else}}

}將上述**儲存為*.cs檔案,通過呼叫:

csc/target:library /out:name.dll *.cs

即可以編譯成name.dll檔案

補充:win+r 、cmd、在cmd視窗,輸入cd加乙個空格 將c:\windows\microsoft.net\framework\v4.0.30319資料夾拖到視窗

不同版本的net.framework檔名不一樣。然後就可以呼叫上面的函式了。

library後面要有乙個空格,否則會報錯

fatal error cs2019: /target 的目標型別無效:

必須指定「exe」、「winexe」、「library」或「module」

呼叫時:

1、專案裡的references上右鍵,選擇reference,選擇brouse選項卡,瀏覽找到編譯的dll,確定新增

,該dll就被新增到專案的bin裡。

2、如果有命名空間,要新增命名空間,如我的是mydll,如果沒有命名空間,則不用新增

using system;

using system.collections.generic;

using system.linq;

using system.text;

//using system.runtime.interopservices;

using mydll;

namespace dll

\n", outx, outy);

console.readkey();                       }}

}3、對於有命名空間的dll,如果沒用引用命名空間,當需要例項化物件時,要帶上命名空間

如 mydll.zb_xy zbxy=new zb_xy();靜態方法不用例項化物件。用mydll.trans_jd_hu直接呼叫

Python呼叫C 動態鏈結庫

1 安裝vs2010,或者以上的版本 2 建立win32應用程式,應用程式型別選擇dll。由於python是64位的,因此需要將win32程式設定為x64,即64位的。3 編寫程式add.cpp 4 編寫標頭檔案add.h。由於 比較少,也可以申明直接放在add.cpp中,此處為了規範,還是分開寫的...

C 生成 呼叫動態鏈結庫

一 需求描述 1 用 生成動態鏈結庫 2 用c 呼叫動態鏈結庫 二 生成動態鏈結庫 1 新建類庫 2 新增welcomeinfo類 如下 僅供測試用,例子很簡單 1 using system 2using system.collections.generic 3using system.linq 4...

呼叫靜態鏈結庫和動態鏈結庫

呼叫靜態鏈結庫 靜態鏈結庫由.h和.lib檔案組成,h檔案在工程中用來宣告,而.lib檔案包含供外界呼叫的函式的原型。vc 6.0中呼叫靜態鏈結庫.lib共3種方法 1.首先使用語句 include lib.h 並將lib.h拷貝到當前工程目錄下 接著對staticlib smp.lib使用語句 p...