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

請問一下, 如何把.dll包入.exe中 ?

答題得分者是:carstyc
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-05-20 10:06:56 IP:61.220.xxx.xxx 訂閱

請問一下, 如何把.dll包入.exe中
小弟想將某些 SSL 相關程式要用到的
ssleay32.dll
libeay32.dll
包入 .exe 中
謝謝 ^_^

我的經驗分享--將dll包裝在單一執行檔並且可以自動對os註冊dll
http://delphi.ktop.com.tw/board.php?cid=30&fid=72&tid=38012
這篇小弟不知道如何建立 rc 檔案 ? Delphi 有提供工具 ?
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-05-20 10:36:13 IP:118.169.xxx.xxx 訂閱
前輩您好:
請參考
http://delphi.ktop.com.tw/board.php?cid=168&fid=923&tid=27605

RC file可由VC產生出來





===================引 用 pcboy 文 章===================

請問一下, 如何把.dll包入.exe中
小弟想將某些 SSL 相關程式要用到的
ssleay32.dll
libeay32.dll
包入 .exe 中
謝謝 ^_^

我的經驗分享--將dll包裝在單一執行檔並且可以自動對os註冊dll
http://delphi.ktop.com.tw/board.php?cid=30&fid=72&tid=38012
這篇小弟不知道如何建立 rc 檔案 ? Delphi 有提供工具 ?
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-05-20 13:43:12 IP:61.220.xxx.xxx 訂閱
請問一下, 有其它 Freeware 工具可以做 RC File ?

===================引 用 taishyang 文 章===================
RC file可由VC產生出來



------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-05-20 15:48:55 IP:203.79.xxx.xxx 訂閱
pcboy 大大

小弟最近剛好有需求,並實作成功。把過程跟大大分享一下


1.首先先建立一個文字檔 如 my.rc 內容如下

MYDLL TESTDLL C:\TEST.DLL


2.然後就用 Delphi 內建的 brcc32.exe 去製作 my.res

brcc32 my.rc

這樣就會長出 my.res


3.在程式內再去引用

{$R my.res }


4.把它取出來存檔囉

with TResourceStream.Create( Hinstance, 'MYDLL','TESTDLL') do
begin
SavetoFile(TEST.DLL');
end;


5. 打完收工


以上說明,謝謝




===================引 用 pcboy 文 章===================
請問一下, 有其它 Freeware 工具可以做 RC File ?

===================引 用 taishyang 文 章===================
RC file可由VC產生出來
?
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-05-21 14:27:53 IP:61.220.xxx.xxx 訂閱
請問要包的 .dll 有兩個, .rc 該如何寫 ?
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-05-21 14:32:04 IP:203.79.xxx.xxx 訂閱

my.rc 內容如下即可

MYDLL TEST0DLL C:\TEST0.DLL
MYDLL TEST1DLL C:\TEST1.DLL




===================引 用 pcboy 文 章===================
請問要包的 .dll 有兩個, .rc 該如何寫 ?
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-05-21 14:38:19 IP:61.220.xxx.xxx 訂閱
成功了
OpenSSL.rc 檔案內容
[code delphi]
OpenSSL1 ssleay32 ssleay32.dll
OpenSSL2 libeay32 libeay32.dll
[/code]

Unit1.pas 程式中加上

[code delphi]
with TResourceStream.Create( Hinstance, 'OpenSSL1','ssleay32') do
begin
SavetoFile('ssleay32.dll');
end;
with TResourceStream.Create( Hinstance, 'OpenSSL2','libeay32') do
begin
SavetoFile('libeay32.dll');
end;
[/code]
但是執行的時候會解出 ssleay32.dll 和 libeay32.dll
如果不想解出來, 可以直接調用嗎? 謝謝
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#8 引用回覆 回覆 發表時間:2009-05-21 14:49:22 IP:203.79.xxx.xxx 訂閱
pcboy 大大

這....這....這....這....這....要從 Stream 裡面去調用 dll ....,可能要以大大您的功力才有辦法研究出來吧。


我們這種『肉腳』能想到的就是,用的時候存到『遙遠』的目錄下,比如 Syste32 底下。再不保險,就呼叫完後把檔案也刪掉。下次要用時再產生出來。



===================引 用 pcboy 文 章===================
成功了
OpenSSL.rc 檔案內容
[code delphi]
OpenSSL1 ssleay32 ssleay32.dll
OpenSSL2 libeay32 libeay32.dll
[/code]

Unit1.pas 程式中加上

[code delphi]
with TResourceStream.Create( Hinstance, 'OpenSSL1','ssleay32') do
begin
SavetoFile('ssleay32.dll');
end;
with TResourceStream.Create( Hinstance, 'OpenSSL2','libeay32') do
begin
SavetoFile('libeay32.dll');
end;
[/code]
但是執行的時候會解出 ssleay32.dll 和 libeay32.dll
如果不想解出來, 可以直接調用嗎? 謝謝
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2009-05-21 15:36:09 IP:61.220.xxx.xxx 訂閱
> 存到『遙遠』的目錄下,比如 Syste32 底下

這不保險, 因為這兩個 .dll , 給 Delphi 7 和 Delphi 2009 程式用的檔案名稱相同, 但是檔案內容不同
呼叫到錯誤的 .dll , 程式會無法跑, 存到和自己程式相同的目錄是最保險的
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#10 引用回覆 回覆 發表時間:2009-05-21 16:19:03 IP:203.79.xxx.xxx 訂閱
嗯,pcboy大大考慮的沒錯。

當然存到自己的目錄也是ok的


===================引 用 pcboy 文 章===================
> 存到『遙遠』的目錄下,比如 Syste32 底下

這不保險, 因為這兩個 .dll , 給 Delphi 7 和 Delphi 2009 程式用的檔案名稱相同, 但是檔案內容不同
呼叫到錯誤的 .dll , 程式會無法跑, 存到和自己程式相同的目錄是最保險的
系統時間:2024-04-20 16:39:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!