C中dll該如何宣告及呼叫,C 中如何呼叫DLL檔案?

2021-05-02 22:10:17 字數 3685 閱讀 5676

1樓:匿名使用者

[dllimport("twain_32.dll", entrypoint="#1")]

private static extern twrc dspxfer( [in, out] twidentity origin, [in] twidentity dest, twdg dg, twdat dat, twmsg msg, [in, out] twpendingxfers pxfr );

[dllimport("kernel32.dll", exactspelling=true)]

internal static extern intptr globalalloc( int flags, int size );

2樓:球球

[dllimport(「dll檔案」)]

[dllimport("kernel32.dll", entrypoint="writeprivateprofilestringa")]

c# 中如何呼叫dll檔案?

3樓:高悅

c# 中如何呼叫

baidll檔案的方法是:

du有命名zhi

空間則引入命

名空間,dll裡面dao,是a名稱空間,有專一個b類,然屬後有一個無引數靜態方法c

那麼呼叫方法就是a.b.c()。

然後是非託管dll

需要新增dll的名稱,以及方法,也就是你所用到的dll的每個方法都需要新增一次,

[dllimport("msvcrt.dll")]public static extern int puts(string c);

4樓:箕業賽愷樂

如果將匯入dll的項bai目和這個dll的專案處du於同一個解決zhi方案,那麼需要dao

為將匯入dll的專案版新增權專案引用,在新增引用對話方塊的專案選項卡里找到dll的專案。必要的話還需要更改兩個專案的生成順序,即保證dll專案先被編譯生成,之後是引用的dll的專案。

如果是現成的dll檔案,只要在新增引用對話方塊直接點「瀏覽」找到欲引用的dll就可以了。

c#中怎麼呼叫外部dll

5樓:匿名使用者

新建工程,在工程裡引用該dll即可。如果不清楚裡面有多少方法,可以用函式檢視器看一下。

6樓:匿名使用者

把你的dll放程式bin目錄下,如果是winform就放bin\debug目錄下 ,實在不行就放c:\windows\system32目錄下。

先在要用到dll的單元裡面宣告dll的方法和引數(要和dll中提供的方法一致):

[dllimport("imgmmpi.dll", charset = charset.ansi, setlasterror = true)] public static extern bool drawmmpi(string s);

之後你就把這個方法作為一般的方法使用就行了!

7樓:匿名使用者

引用!專案裡引用右鍵新增引用找到那個dll檔案!就ok!

c#呼叫dll裡的某個方法,該方法返回值型別是dll裡定義的一個類,該如何強轉

8樓:匿名使用者

這是個很常見的同結構同名類跨域互轉問題。

取決於應用環境,一般會有以下幾種處理方式。

此外,類似問題我在另一處已作答,僅供參考:

9樓:

首先 你確定返回型別是你找到的dll中的類,而不是同名的其他**類?

如果以上已經確認但是依然出現問題

你可以繼續用反射來訪問返回的變數 不需要轉換型別也能繼續使用

10樓:旁笑槐

這是因為這兩個dll的版本不一樣 你可以檢查下它們的md5是不是一樣

11樓:匿名使用者

利用反射呼叫dll,並使用dll中的類建立物件,型別必須加全域名。

不過你的問題是不是這個原因需要排查,另外,你可以為你的類定義一個介面,返回後強制轉換為介面試試。

我給你個,給定域名空間和dll檔案路徑及檔名、類名,動態建立物件的構造類。看看有沒有幫助。

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.reflection;

using system.collections;

namespace icom.commonlib

#endregion

#region +屬性

#region 狀態訊息

string _message = "";

////// 讀取狀態訊息。

///public string message

}#endregion

#endregion

#region 方法

////// 建立應用程式域。

/// 應用域名。

////// 成功標誌。

public bool createdomain(string domainname)

////// 動態建立物件。

/// 庫檔案路徑和檔名。

/// 物件名稱空間名及物件名稱。

////// 動態建立的物件或者空值(null)。

public object createobject(string dllfile,string objectfullname)

catch (exception e)

}return obj;

}#region 釋放物件

////// 釋放託管資源。

///public void dispose()

////// 釋放所有資源。

////// dispose呼叫標誌。

public class remoteassemblyfactory : marshalbyrefobject, idisposable

////// 建立遠端程式集。

////// 程式集所在dll檔案的路徑和檔名。

/// 程式集物件或空值(null)。

public assembly create(string dllfile)

catch (exception e)

}///

/// 釋放託管資源。

///public void dispose()

////// 釋放資源。

////// dispose呼叫標誌。

protected virtual void dispose(bool disposing)

//非託管

_disposed = true;}}}}

12樓:然後去遠足

先問題主這個 dll 是什麼語言編寫的?還是基於 .net 平臺的,還是 c++、dephi 等其他語言編寫的?

C呼叫C 的dll庫怎麼傳遞結構體中不定長度的char陣列

marshalas unmanagedtype.u4 public uint nid marshalas unmanagedtype.u1 public byte nctrl marshalas unmanagedtype.byvalarray,sizeconst 8 public byte pda...

如何在c中呼叫另外專案的類,如何在c 中呼叫另外一個專案的類?

在a專案上新增引用,比如你想呼叫b專案的一些類或方法,在a專案上右鍵 新增引內用 add reference 選擇本地專案,找到容b專案後,新增引用.程式中使用using b 這樣就可以使用b中的類和方法了.祝你成功 c 如何呼叫另外一個專案的類 在a專案上新增引用,比如你想呼叫b專案的一些類或方法...

在c語言程式設計中,如何呼叫matlab的繪圖功能

一 呼叫 baimatlab引擎 呼叫matlab引擎可以du在win32 mfc中使用,zhi 它的原理實際上dao相當於開啟一個回精簡版的matlab然後往裡面輸命令答。下面是呼叫matlab中的加法程式add.m的例子。先在matlab的work目錄下建立add.m檔案並編寫程式如下 func...