看板 C_and_CPP 關於我們 聯絡資訊
投機一點的做法... for(int i=0;i<10;i++) { wstring name = to_wstring(i)+L".dll"; CreateHardLinkW(name.c_str(), L"MyLib.dll", 0); HMODULE mod = LoadLibraryW(name.c_str()); printf("%x\n", mod); } 之後記得FreeLibrary和清掉hard link... ※ 引述《Keitaro (動き出す時間...)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : VC2008 : 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) : MFC : 問題(Question): : 請問是否有辦法load同一個dll檔,load儲存的記憶體位置是不同的? : 補充說明(Supplement): : 不好意思小弟上來請教一下各位先進關於dll的問題。 : 我對於dll檔案的觀念不是很清楚,如果問題太過基本還請各位指教。 : 我接手一個project要改,這個project要去load一個dll檔案來做事。 : 這個dll是要跟server連線取得資料,要做的工作全部都寫在dll裡面。 : 原作者將dll的function在project裡面以function pointer來呼叫。 : project只是把UI畫出來,當user點選按鈕時判斷事件, : 呼叫function pointer,指向dll內部真正實作的function。 : 現在這project要做的事是希望可以同時連好幾台server(Multi-Server)。 : 我的想法是如果不要動到這個dll最好, : 有沒有辦法重複去load這個dll,放到不同的記憶體位址, : 這樣我就可以分別對這些位址去做處理, : 甚至把這些function pointer寫一個新的class包起來, : 看要連幾台Server就new幾個class object,這樣就完成了。 : 但是我測試LoadLibrary("XXX.dll")兩次回傳的位址都是一樣的, : 所以我猜想這樣做應該是不行的。 : 請問版上各位先進有沒有更好的作法呢? : 感激不盡。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.172.147 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1446820267.A.312.html
Keitaro: ....這...我跪了(讚 11/08 02:17