全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5465
推到 Plurk!
推到 Facebook!

gdiplus.dll 找不到

答題得分者是:dllee
suntea
一般會員


發表:18
回覆:16
積分:6
註冊:2006-12-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-20 10:40:53 IP:59.105.xxx.xxx 未訂閱
寫了一個小程式用到xp的gdiplus.dll , 
可是在win2000中並沒有這個檔案
所以自己嘗試將gdiplus.dll用資源檔包在執行檔,
執行時再釋出放在硬碟
可是結果似乎不行
程式在win2000一開始執行時就出現錯誤, 找不到gdiplus.dll
資源檔根本還來不及放入硬碟
是不是哪邊觀念錯了呢?
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-20 21:15:08 IP:59.105.xxx.xxx 訂閱
如果是使用資源檔的方式,那您必需使用 LoadLibrary 的方式去載入它,
而不能使用 .lib 的方式去 compile/link 否則,程式一載入系統(都還沒執行)時,
系統就會把它執行需要的 .dll 都一併載入,如果此時 .dll 不存在,就無法執行。
使用資源檔就必需程式已開始執行才能由程式把資源檔解出 .dll 並存檔,再
LoadLibrary 載入 .dll 再 GetProcAddress 去取得 .dll 內的函式,這樣才能
作到您想要的運作方式。



Seednet ShareMe 至少 2G 免費網路硬碟, 最大特點:放檔後不使用不會砍檔dllee's blog
------
http://www.ViewMove.com
suntea
一般會員


發表:18
回覆:16
積分:6
註冊:2006-12-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-10-03 16:53:24 IP:59.105.xxx.xxx 未訂閱
想了很久 ,觀念上想請問資深前輩....若在win2000上, 想執行具有gdi功能的效果,程式不做安裝檔,並內附gdiplus.dll檔案, 是不是真的沒有辦法呢?
編輯記錄
suntea 重新編輯於 2007-10-03 17:22:24, 註解 無‧
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-10-03 18:22:53 IP:220.134.xxx.xxx 訂閱
如果不要用 gdiplus.dll 自然就可以在不需要它的系統下運行,
如果要用 gdiplus.dll 又要在不需要它的系統運行... 除非您把 gdiplus.dll 您要的功能
自己另外實作出來,那就不需要它了。

只是 COPY 或是下載而已,就算是綠色軟體,也沒有要求只能單一檔,
除非有非技術性的問題,例如擔心讓人知道我用了什麼技術。

一個程式載入了那些 dll 檔,有太多工具可以看了,例如dllee's StatPlus
在 工具->釋放應用程式 勾選 專家模式,就可以看到每個程式載入了多少 dll,
這在本站也有人提供 C/Delphi 的原始碼。

基本上,要用的 .dll 就是要有,不然,一執行就會出現錯誤訊息視窗。
VMASK - ViewMove Automation Software KernelVMIO-Server/SECS/GEMdllee's blogdllee's StatPlus
------
http://www.ViewMove.com
suntea
一般會員


發表:18
回覆:16
積分:6
註冊:2006-12-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-10-04 08:46:10 IP:59.105.xxx.xxx 未訂閱
驚訝..原來一個很普通的小程式,居然隱藏需用到這麼多windows dll....自己觀念真是井底之蛙

看來要做出不安裝的單一執行檔是不可能了

再請問資深前輩 , 若安裝檔將XP所需要的全部dll 檔copy進去 , 這樣是不是win2000,winme,win98都可執行了?

這樣將XP的dll檔放入自己的安裝檔, 這樣會不會有版權的問題呢?

dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-10-04 12:36:32 IP:220.134.xxx.xxx 訂閱
不是 COPY 過去就可以執行,要看系統相容性。
2K/XP 可用的程式,就算把系統 .dll COPY 去 Win98 也不一定能在 Win98 跑得起來。
不然,就不必分 98/Me 版,2K/XP 版,Vista 版...
以 GDIPlus 來說,也許 MS 本身就有提供不同系統的 .dll 這要去 MS 查,
許多 .dll 在不同的系統有不同的版本。
把系統的 .dll 放在自己的安裝檔是否有版權的問題,那就要問 MS 了,
基本上是有的。就如同使用 BCB 開發,BCB 的授權也有那些是可以放在安裝系統的
可參考安裝目錄的 DEPLOY.TXT 檔案內容。

VMASK - ViewMove Automation Software KernelVMIO-Server/SECS/GEMdllee's blogdllee's StatPlus
------
http://www.ViewMove.com
suntea
一般會員


發表:18
回覆:16
積分:6
註冊:2006-12-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-10-05 11:32:56 IP:59.105.xxx.xxx 未訂閱
非常謝謝指導 , 觀念真是前進一大步阿...
系統時間:2024-05-03 20:16:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!