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

2021-05-02 22:10:17 字數 2223 閱讀 4082

1樓:匿名使用者

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

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

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

2樓:

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

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

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

3樓:旁笑槐

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

4樓:匿名使用者

利用反射呼叫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;}}}}

5樓:然後去遠足

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

c#動態呼叫dll庫,方法返回型別是dll中定義的一個類,該如何引用

6樓:

還是跟引用物件一樣的

7樓:匿名使用者

無法直接引用,一般是通過反射去呼叫返回的類例項的方法或者或者獲取成員的值

C無法呼叫C 編的DLL,C 中如何呼叫DLL檔案?

就跟你說一下吧來,你源 這種是缺少dll依賴的mainifest導致的 為什bai麼你安裝了vcredist還不行du,這是zhi因為從vc2005 vc2008,crt和mfc庫都有好幾dao個版本,你們開發用的版本跟你安裝的vcredist是不同的版本 那怎麼解決這個問題,很簡單,從你的開發機器...

在C語言中用遞迴呼叫的方法如何求n

include int func int n int main 執行過程 func 5 5 func 4 5 4 func 3 5 4 3 func 2 5 4 3 2 func 1 當n為0的時候停止遞迴,返回結果 由於遇到1的時候返回1,那麼func 1 1所以結果是5 4 3 2 1 120 ...

js裡有兩個方法,怎麼實現其中方法呼叫另方法中的變數

第一種方法。1.首先準備好兩個js檔案。2.然後寫一個html檔案,通過方法,將兩個js引用到html檔案中。3.處於內下方的js檔案,就可容以直接呼叫上方js檔案中的內容了。比如我們在html中先載入了jquery,在第二個js可以使用dollar來對物件進行直接操作。4.因為js本身是不能執行的...