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...