青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

LoadLibrary的路徑問題

有人說 反射反射,程序員的法寶。這句話一點也沒有錯。如果能夠動態的加載類和方法,就等于徹底的解除了類和類,方法和方法的耦合。

當然,這樣編譯器就無法幫你檢查出其中的錯誤了,還是有一定的風險的。

總的來說,反射是一位好同志。他可以讓程序的擴展變得如此方便,免除了重新編譯之苦。

 

近來在玩C++,被其中的種種細節問題搞得暈頭轉向。

LoadLibrary實現動態加載類,花了很多時間在dll的路徑問題上。

在傳入相對路徑時,文件的查找順序比較詭異,在XP sp2以后首先是系統目錄開始搜索,以前是首先從當前目錄開始搜索。微軟認為當前目錄是不安全的。所以如果很不巧你的System32下有一個同名的dll時,會造成dll版本的混亂。

解決這個問題,要改用LoadLibraryEx(path,NULL,LOAD_WITH_ALTERED_SEARCH_PATH);

另一種方法是先調用SetDllDirectory方法,將要設置的目錄會優先開始搜索。

 

以上兩種方法是權宜之計,最值得推薦的方法是用絕對路徑而不是相對路徑。要獲得絕對路徑就要知道當前程序的目錄。問題來了,怎么獲得當前目錄呢?

我當時是一拍腦袋,用了GetCurrentDirectory方法。用了才發現,得到的路徑并不穩定,有時候會得到莫名其妙的路徑,甚至在不同電腦上有不同的結果。

正確的解決方法麻煩了許多,要先AfxGetInstanceHandle()得出模塊句柄,然后得到當前模塊包含路徑的全名GetModuleFileName,最后通過字符串操作,去掉最后一個 / 后的內容,才得到當前路徑。

 

解決了這些問題,LoadLibrary路徑沒問題,得到結果卻是0GetLastError得到126,找不到指定的模塊。我和同事一致認為是dll的其他依賴缺失。用depends打開這個dll,所有依賴都沒問題啊,Why

后來我試著把dll和依賴放的滿磁盤到處都是,終于找出了問題所在:

我的程序主模塊app.exe和要加載的模塊 plugins/plgn1.dll不是在同一級目錄下,在用depends打開plgn1.dll時,會在當前目錄(/plugins/)下尋找其他依賴,這些依賴都在。

LoadLibrary加載的模塊 plugins/plgn1.dll時,他認為的當前路徑是相對主模塊app.exe來說的,是程序根目錄(/)而不是/plugins/,所以就找不到相關依賴,導致plgn1.dll加載失敗。

解決方法:SetDllDirectory方法,設置為plgn1.dll所在的絕對路徑。

 

posted on 2012-05-31 15:59 肥仔 閱讀(6742) 評論(0)  編輯 收藏 引用 所屬分類: Windows開發

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            一区二区成人精品 | 久久在线91| 国产精品一区二区在线观看不卡| 亚洲视频播放| 午夜精品一区二区三区四区 | 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 久久九九久久九九| 久久香蕉精品| 亚洲国产欧美在线| 欧美成人午夜激情在线| 欧美高清视频一区二区| 9人人澡人人爽人人精品| 欧美日韩一区二区在线观看视频| 99成人在线| 欧美亚洲系列| 在线欧美电影| 欧美日本三区| 亚洲自拍偷拍色片视频| 久久综合色88| 亚洲精品偷拍| 国产精品久久久久一区二区三区| 亚洲嫩草精品久久| 欧美96在线丨欧| 亚洲天堂免费观看| 国产欧美一区二区三区视频 | 在线欧美小视频| 欧美成人免费全部| 亚洲无限av看| 欧美96在线丨欧| 一本大道久久精品懂色aⅴ| 国产精品久久久久三级| 久久久久久久久一区二区| 亚洲电影免费| 亚洲欧美视频| 最新国产成人在线观看| 国产精品美女久久| 美女图片一区二区| 亚洲欧美精品suv| 亚洲福利国产精品| 久久国内精品视频| 一本一本a久久| 1769国产精品| 国产欧美一区二区三区久久 | 欧美三级电影一区| 久久亚洲欧美| 欧美在线你懂的| 亚洲私人影吧| 亚洲精品国产精品国产自| 久久久久久9| 午夜精品亚洲一区二区三区嫩草| 亚洲精品久久久久久久久| 国产一区二区成人| 国产精品第2页| 欧美人妖另类| 欧美91大片| 久久亚洲精品一区二区| 性色av一区二区三区| 一区二区久久| 亚洲最新视频在线播放| 亚洲国产免费看| 欧美韩日视频| 欧美成人久久| 美国成人毛片| 久久天天躁狠狠躁夜夜av| 午夜伦理片一区| 亚洲欧美激情视频| 亚洲图中文字幕| 亚洲手机视频| 亚洲一级影院| 亚洲午夜精品| 亚洲性人人天天夜夜摸| 在线一区二区三区四区五区| 日韩午夜激情| 99精品欧美一区| 这里是久久伊人| 亚洲一二三四区| 亚洲综合视频1区| 亚洲尤物视频网| 午夜伦欧美伦电影理论片| 午夜精品电影| 欧美一区二区在线免费播放| 欧美一级欧美一级在线播放| 欧美一区视频在线| 久久久久久91香蕉国产| 久久影视精品| 亚洲成色精品| 亚洲精品婷婷| 亚洲影音一区| 久久精品夜夜夜夜久久| 久久天堂精品| 欧美激情久久久久久| 欧美日韩国产电影| 欧美性一区二区| 国产日韩欧美不卡| 亚洲电影免费观看高清完整版在线| 在线免费观看成人网| 亚洲久久一区| 亚洲欧美一区二区视频| 久久久www免费人成黑人精品| 久久婷婷影院| 亚洲另类自拍| 午夜国产精品影院在线观看| 久久久久久穴| 欧美精品www在线观看| 国产精品久久久久永久免费观看| 国产欧美激情| 91久久综合亚洲鲁鲁五月天| 亚洲夜晚福利在线观看| 久久人人爽人人爽爽久久| 欧美激情女人20p| 亚洲午夜一区二区三区| 久久精品亚洲| 欧美新色视频| 在线高清一区| 香蕉久久国产| 亚洲国产高潮在线观看| 亚洲一区尤物| 欧美高清不卡在线| 国产亚洲视频在线| 一个色综合av| 美日韩精品视频| 在线亚洲观看| 欧美成人精品福利| 国产精品综合视频| 日韩亚洲综合在线| 久久人体大胆视频| 国产精品99久久99久久久二8| 久久国内精品视频| 国产精品久久久久久久久免费桃花| 尤物九九久久国产精品的特点| 中日韩美女免费视频网址在线观看| 久久只有精品| 亚洲欧美区自拍先锋| 欧美人与禽猛交乱配视频| 在线免费观看成人网| 欧美有码在线视频| 一本大道久久a久久精品综合| 久久久久国产精品人| 国产精品午夜在线| 亚洲午夜电影网| 亚洲国产成人在线| 久久蜜臀精品av| 国产一区二区三区电影在线观看| 亚洲亚洲精品三区日韩精品在线视频| 欧美电影免费观看高清完整版| 午夜在线电影亚洲一区| 国产精品海角社区在线观看| 亚洲精品乱码久久久久久黑人 | 欧美一级视频一区二区| 欧美午夜理伦三级在线观看| 日韩亚洲欧美高清| 欧美电影免费观看大全| 久久久久9999亚洲精品| 国产午夜精品在线| 欧美与黑人午夜性猛交久久久| 一区二区免费在线播放| 欧美日韩精品一区二区| 日韩一级不卡| 亚洲日本一区二区| 欧美激情精品久久久六区热门 | 欧美人与禽猛交乱配视频| 亚洲黄色片网站| 免费在线成人| 麻豆精品91| 亚洲国产导航| 欧美高清在线精品一区| 免播放器亚洲一区| 亚洲日本国产| 亚洲国产日韩精品| 欧美日韩精品一区| 亚洲欧美日韩精品久久久久| 中文网丁香综合网| 国产精品一区二区你懂得| 久久精品99国产精品日本| 欧美一区91| 伊人成年综合电影网| 欧美成人在线免费视频| 欧美福利电影在线观看| 在线一区二区三区四区| 亚洲一区二区三区四区视频| 国产精品网站在线| 久久久久久网址| 理论片一区二区在线| 亚洲精品免费在线观看| 9久re热视频在线精品| 国产精品入口| 美玉足脚交一区二区三区图片| 麻豆乱码国产一区二区三区| 亚洲精品一二区| 一区二区久久| 韩国三级电影一区二区| 日韩亚洲欧美在线观看| 在线观看视频一区二区| 免费视频一区| 欧美精品久久99| 亚洲自啪免费| 欧美怡红院视频| 亚洲开发第一视频在线播放| 一区二区欧美国产| 国产在线欧美|