C#調(diào)用dll報(bào)錯(cuò):無(wú)法加載dll,找不到指定模塊的解決
C#調(diào)用dll報(bào)錯(cuò):無(wú)法加載dll,找不到指定模塊
最近在做一個(gè)swmm模型的項(xiàng)目,在swmm源碼上進(jìn)行改寫了兩個(gè)函數(shù),結(jié)果調(diào)用的時(shí)候就報(bào)錯(cuò)了,C#報(bào)錯(cuò)之說(shuō)找不到指定模塊,就是不說(shuō)具體問(wèn)題,在網(wǎng)上排查了很久,在這里記錄一下。
如果確定自己的dll函數(shù) 沒(méi)有問(wèn)題的話,那可能就是你這個(gè)dll需要依賴其它的dll,而你的系統(tǒng)正好缺失了某些dll,所以運(yùn)行就報(bào)錯(cuò)了,在網(wǎng)上看要下載Depends,查看缺少什么依賴,結(jié)果我一查,好家伙,一大串,照它這個(gè)邏輯,我得一個(gè)個(gè)下載缺失的dll,補(bǔ)回去,問(wèn)題是我之前還調(diào)用過(guò)其它dll,那些dll能運(yùn)行,但是放到Depends中查看依賴,依然報(bào)錯(cuò)一大堆,所以我就沒(méi)按照這種方法來(lái)。
后來(lái)我下載了eXeScope,在這里查看dll信息,如下圖:

導(dǎo)出項(xiàng)為這幾個(gè)函數(shù),我調(diào)用的也是這幾個(gè)函數(shù),說(shuō)明沒(méi)有調(diào)用錯(cuò)。

而導(dǎo)入項(xiàng)需要依賴這兩個(gè)dll,所以我就嘗試在System32中找到這兩個(gè)dll(沒(méi)有的去網(wǎng)上下載),拷貝到項(xiàng)目debug里面,就可以成功運(yùn)行了
C#調(diào)用dll報(bào)錯(cuò):試圖加載格式不正確的程序
這個(gè)上網(wǎng)查了一下,網(wǎng)上說(shuō)是:

所以我找了一下,發(fā)現(xiàn)我的VS里面C#沒(méi)有的設(shè)置64還是86,最后找到了,操作如下截圖:



再去選擇配置管理器,就有了64和86。選擇自己調(diào)用DLL的類型是32還是64再去選擇運(yùn)行時(shí)是86還是64,就不會(huì)報(bào)錯(cuò)了。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#實(shí)現(xiàn)用于操作wav聲音文件的類實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)用于操作wav聲音文件的類,實(shí)例分析了C#操作wav音頻文件的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
Unity實(shí)現(xiàn)倒計(jì)時(shí)組件
這篇文章主要介紹了Unity實(shí)現(xiàn)倒計(jì)時(shí)組件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05
基于集合的子集與集合的全排列的相關(guān)問(wèn)題
本篇文章介紹了,集合的子集與集合的全排列的相關(guān)系列問(wèn)題說(shuō)明,需要的朋友參考下2013-05-05

