婷婷丁香激情五月,女老师电影全集免费看,天天五月天,九九视频这里只有精品,九九福利视频,聊斋艳谭8陆判性水仙

白云一鍵重裝系統(tǒng)2025 最簡(jiǎn)單好用的系統(tǒng)重裝軟件 全網(wǎng)獨(dú)家技術(shù)/支持GPT-UEFI一鍵裝機(jī) 完美兼容市面所有主板 支持安裝windows XP/7/8/10/11 系統(tǒng)

當(dāng)前位置:主頁 > 系統(tǒng)幫助 > 寫DLL文件失敗顯示找不到指定的模塊怎么解決的教程

寫DLL文件失敗顯示找不到指定的模塊怎么解決的教程

2017-11-06 10:56:16 分類:幫助
  很多用戶在使用開發(fā)程序?qū)慏LL文件時(shí)可能都遇到過“LoadLibrary failed with error126:找不到指定的模塊。”的錯(cuò)誤提示,這是怎么回事呢?有什么方法可以解決這個(gè)問題呢?下面就跟小編一起來看看寫DLL文件失敗顯示找不到指定的模塊怎么解決的教程。

寫DLL文件失敗顯示找不到指定的模塊怎么解決步驟

  一、出現(xiàn)LoadLibrary失敗的原因
  通常LoadLibrary失敗的原因大多是代碼書寫不規(guī)范,編寫dll文件一般不是很難,但關(guān)鍵是在寫dll的時(shí)候代碼不規(guī)范,這樣在調(diào)用時(shí)就有可可能出現(xiàn)這樣那樣的問題,出現(xiàn)LoadLibrary失敗也就不足為怪了,為了保證你使用正確的調(diào)用規(guī)范,要通知編譯器使用stdcall規(guī)范和/或使用在windows.h(及相關(guān)文件)中定義的常量,如WINAPI等。通常DLL的代碼如下:

WORD WINAPI vbShiftRight(WORD nValue, WORD nBits)
{
return (nValue >> nBits);
}

  下一步是與你在微軟文檔中讀到的內(nèi)容相反。你需要?jiǎng)?chuàng)建一個(gè)DEF文件。這是你防止輸出函數(shù)名不出現(xiàn)亂字符的唯一方式(如_vbShiftRight@1)。DEF文件的形式如下:

EXPORTS
vbShiftRight

  下一步是在VB中調(diào)用這個(gè)函數(shù),使用以下聲明:

Declare Function vbShiftRight Lib "MYDLL.DLL" (ByVal nValue As Integer,
ByVal nBits As Integer)
As Integer
Sub Test()
Dim i As Integer
i = vbShiftRight(4, 2)
Debug.Assert i = 1
End Sub
  如果你還想要更容易的方法從VB中調(diào)用,可以創(chuàng)建一個(gè)類型庫。為此你需要?jiǎng)?chuàng)建和編譯ODL(對(duì)象描述語言)文件。這個(gè)文件應(yīng)該包含如下內(nèi)容:
module MyModule {
[
helpstring("Shifts the bits of an integer to the right."),
entry("vbShiftRight")
]
short _stdcall vbShiftRight([in] short nValue, [in] short nBits);
};

  當(dāng)VB加載DLL的類型庫時(shí),函數(shù)名和參數(shù)將出現(xiàn)在VB的對(duì)象瀏覽器中。此外,如果用戶不輸入正確的參數(shù)類型,VB將有可能產(chǎn)生LoadLibrary失敗錯(cuò)誤。
  還有就是你最好用正確的方法調(diào)用dll,以下是我正常調(diào)用dll的函數(shù):

typedef void __declspec(dllimport) StartQueryForm(TDispatchConnection*,TApplication*);
StartQueryForm* query;
char buf[256];
if (!GetSystemDirectory(buf,256)) {
Application->MessageBox("讀取系統(tǒng)目錄錯(cuò)誤","錯(cuò)誤",MB_OK+MB_ICONERROR);
return ;
}
AnsiString sCmd=AnsiString(buf)+"\\QueryEnh.dll";
復(fù)制代碼
HINSTANCE Package = LoadLibrary(sCmd.c_str());
if (Package)
{
try {
query = (StartQueryForm *)GetProcAddress((HINSTANCE)Package, "_StartQueryForm");
if (query) {
TDispatchConnection* conn=(MainForm->ConnectionWay==1 ?
(TDispatchConnection*)MainForm->dcomConnect:
(TDispatchConnection*)MainForm->sockConnect);
query(conn,Application);
}
else {
AnsiString str="加載函數(shù)失敗,失敗原因:\n\r";
str+=SysErrorMessage(GetLastError());
Application->MessageBox(str.c_str(),"錯(cuò)誤",MB_OK+MB_ICONERROR);
}
}
__finally {
FreeLibrary(Package);
}
}
else
{
AnsiString str="加載庫失敗,失敗原因:\n\r";
str+=SysErrorMessage(GetLastError());
Application->MessageBox(str.c_str(),"´íÎó",MB_OK+MB_ICONERROR);

  二、出現(xiàn)LoadLibrary失敗解決辦法
  方式一:采用LoadLibraryEx
  若DLL不在調(diào)用方的同一目錄下,可以用LoadLibrary(L“DLL絕對(duì)路徑”)加載。但若調(diào)用的DLL內(nèi)部又調(diào)用另外一個(gè)DLL,此時(shí)調(diào)用仍會(huì)失敗。
  解決辦法是用LoadLibraryEx:
  LoadLibraryEx("DLL絕對(duì)路徑", NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
  通過指定LOAD_WITH_ALTERED_SEARCH_PATH,讓系統(tǒng)DLL搜索順序從DLL所在目錄開始。
  方式二:采用SetCurrentDir
  跨目錄調(diào)用dll,你應(yīng)該這樣
  1、用GetCurrentDir保存當(dāng)前的工作目錄
  2、用SetCurrentDir將當(dāng)前的工作目錄,設(shè)置為你的DLL所在的路徑,需要使用絕對(duì)路徑
  3、用LoadLibrary你的DLL
  4、使用SetCurrentDir恢復(fù)到原來的工作路徑
  以上就是寫DLL文件失敗顯示找不到指定的模塊怎么解決的教程,一般有問題都可以在網(wǎng)上查找解決方法,有需要的用戶可以保存這篇教程。更多教程請(qǐng)繼續(xù)關(guān)注白云幫助中心
標(biāo)簽: 系統(tǒng)教程
重裝系統(tǒng)幫助
U盤裝系統(tǒng)
優(yōu)白云U盤裝系統(tǒng)

聯(lián)系我們 | 關(guān)于我們 | 網(wǎng)站地圖 | 白云一鍵重裝系統(tǒng)QQ群

提供一鍵重裝系統(tǒng)win7旗艦版,一鍵重裝xp系統(tǒng),以及重裝win10專業(yè)版的重裝系統(tǒng)軟件以及系統(tǒng)重裝的相關(guān)教程
Copyright@2019-2025白云系統(tǒng) 版權(quán)所有. All Rights Reserved. ?備案號(hào):粵ICP備20000429號(hào)
白云一鍵重裝系統(tǒng)唯一網(wǎng)址:www.8e8u.cn

主站蜘蛛池模板: 99久久精品国产一区二区三区 | 五月婷婷六月爱 | www.五月.com| 国产色婷婷精品综合在线 | 国产精品网址在线观看你懂的 | 久久精品国产91久久综合麻豆自制 | 国产精品视频分类 | 欧美在线成人午夜影视 | 国产福利一区二区三区在线观看 | 毛片免费网 | 成人精品一区久久久久 | 久久国产免费 | 爱爱帝国亚洲一区二区三区 | 国内精品免费一区二区三区 | 殴美性生活视频 | 丁香花在线电影小说观看 | 五月婷婷激情综合 | 欧美一级日韩在线观看 | 久99久热只有精品国产男同 | 日韩69视频| 久久国产精品亚洲77777 | 欧洲高清一区二区三区试看 | 四房开心蜜桃 | 九月丁香激情综合婷婷玉立 | 99国产精品热久久久久久夜夜嗨 | 国产一级性生活片 | 国语视频在线观看免费 | 99久久免费国产精品 | 久久99久久99精品观看 | 亚洲精品午夜国产va久久 | 国产美女精品久久久久中文 | 欧美11一12周岁a在线观看 | 精品视频99 | 中文字幕日本亚洲欧美不卡 | 99久久精品免费看国产一区二区 | 第一页亚洲 | 国产羞羞 | 国产在线精品一区二区三区 | 毛片在线看片 | 欧美午夜一区二区福利视频 | a级毛片免费高清视频 |