溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C# 調(diào)用C++接口

發(fā)布時(shí)間:2020-06-03 17:22:06 來(lái)源:網(wǎng)絡(luò) 閱讀:2051 作者:fengyuzaitu 欄目:系統(tǒng)運(yùn)維

1 System.DllNotFoundException”類型的未經(jīng)處理的異常在 test.exe 中發(fā)生 其他信息: 無(wú)法加載 DLL“DLL/AR_ALGORITHM.dll”: 找不到指定的模塊。 (異常來(lái)自 HRESULT:0x8007007E)。

該問(wèn)題的原因是程序無(wú)法找到AR_ALGORITHM.dll,通常程序在bin目錄下,system32目錄下,和程序運(yùn)行所處的當(dāng)前目錄查找


2“System.EntryPointNotFoundException”類型的未經(jīng)處理的異常在 test.exe 中發(fā)生 

其他信息: 無(wú)法在 DLL“../../../DLL/AR_ALGORITHM.dll”中找到名為“WGStoGCJ”的入口點(diǎn)。

在C++的函數(shù)聲明中指定了WINAPI,而在C#重新定義相應(yīng)的調(diào)用卻指定了Cdecl,實(shí)際上應(yīng)該指定Winapi,或者簡(jiǎn)單的方式是什么也不用指定

[DllImport("../../../DLL/AR_ALGORITHM.dll", EntryPoint = "WGStoGCJ", CallingConvention = CallingConvention.Cdecl)]

簡(jiǎn)單正確

[DllImport("../../../DLL/AR_ALGORITHM.dll")]


那從應(yīng)用上考慮,注明WINAPI和不注明WINAPI的函數(shù)在使用用上有什么差別或注意的地方?


那就是系統(tǒng)和不是系統(tǒng)函數(shù)的區(qū)別


從應(yīng)用上講,區(qū)別不是很大,只要使用的聲明是正確的。

例如你寫(xiě)了一個(gè)庫(kù)函數(shù)用的是WINAPI聲明的,而別人調(diào)用的時(shí)候用的聲明也要是WINAPI才行,否則運(yùn)行期會(huì)出錯(cuò)


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI