加入會員
登錄
論壇
搜索
幫助
導航
NCIS資訊中心討論區
»
REALbasic討論板
» [分享]REALbasic 2008 R2 在 Windows 中編譯的程式無法執行?
返回列表
回復
發帖
發新話題
發佈投票
發佈懸賞
發佈辯論
發佈活動
發佈視頻
發佈商品
男丁格爾
發短消息
加為好友
男丁格爾
當前離線
UID
25
帖子
178
精華
16
積分
3267
威望
1645
金錢
399
供獻
608
閱讀權限
100
在線時間
276 小時
註冊時間
2007-1-9
最後登錄
2009-11-9
版主
1
樓
打印
字體大小:
t
T
發表於 2008-5-16 09:58
|
只看該作者
[分享]REALbasic 2008 R2 在 Windows 中編譯的程式無法執行?
REALbasic
REALbasic
官方秉持著
每 3 個月
發佈一個新的版本的原則,在
2008 年 5 月
中發佈了
REALbasic 2008 R2 版
。有興趣的人可以看一下它的
Realse Notes
。
在
REALbasic 2008 R2
中有個比較大的改變就是,現在編譯後除了產生
單一的執行檔
之外,還有可能會有
其它的 DLL 檔
。如果在您的程式中沒用到其它
plugins
的話,編譯後還是單一的執行檔;但如果有到的話,那編譯後除了執行檔之外,還有會有
必要的 DLL 檔
。
假設您專案中
App
的
WindowAppName
值為
My Application.exe
的話,那輸出的結構將會變成
My Application
My Application.exe
My Application Libs
Appearance Pak.dll
(假設有用到)
My Custom Plugin.dll
(假設有用到)
其中
存放 DLL 的資料夾名稱
會是
WindowsAppName
+ "
Libs
"
讓我們來看產生後的實例:
暫時先撇開為什麼要分成這樣及這樣的好處跟壞處。先來看這樣的改變產生了什麼問題。
在
REALbasic
專案中
App
的
WindowsAppName
值就是編譯後的執行檔名稱。但在
REALbasic 2008 R2
中若是用
非
ASCII
碼
的
WindowsAppName
且有用到其它
plugins
時,那麼輸出時
Libs
資料夾中將不會有任何的
DLL 檔
,而該
執行檔本身也是有問題
的。
來做個簡單的實驗:
先把
App
的
WindowsAppName
設為
範例.exe
然後在
Window1
中放上一個
PushButton
及
EditField
然後把它編譯成執行檔,因為我們沒用到其它
plugins
,所以就只會有單一的執行檔:
範例.exe
。接著我們執行看看
看來是很正常;接著我們在
PushButton1
的
Action事件
中加入程式
這邊我們用了
MD5 函式
,雖然它是
REALbasic
中有提供的方法,不過也是透過
外部的 DLL
來作用的,因此在編譯時會有一個
MD5.dll
的檔案。
接下來再編譯成執行檔,看一下輸出的結構
乍看之下好像是正常的,不過進到
範例 Libs
資料夾中來看的話,就會發現裡面什麼檔案都沒有
硬是去執行
範例.exe
時就會發生錯誤
就算我們再把
MD5.dll
放到
範例 Libs
資料夾中也是一樣的問題。
目前的解決方法就是不要用
非
ASCII
碼
來設定
App
的
WindowsAppName
值。
所以,我們把
App
的
WindowsAppName
改為
Sample.exe
然後再來編譯一次,此時的執行檔名就會變成
Sample.exe
其中的
Sample Libs 資料夾
也有
MD5.dll
檔了
而程式也能正常的執行
如果在這邊把
執行檔名
跟
Libs
資料夾名稱
改為其它的話,一樣是會出現錯誤的喔!
除了這個問題之外,若
REALbasic
專案的
儲存路徑
有
非
ASCII
碼
時,也會有同樣的問題。暫時的解決方法就是把
REALbasic
專案的
儲存路徑改成全為 ASCII 碼
的囉。
REALbasic
官方已經知道這問題並修正了,但好像是要在
2008 R3
中才要發佈修正,現在各位就只能自己先避開這些問題囉!
以上內容於2008-05-15 15:55 發表在小弟的Blog
http://blog.xuite.net/abgne/diary1/17158453
收藏
分享
評分
回復
引用
訂閱
TOP
返回列表
回復
發帖
硬體操控
ASP討論板
站務公告
VB2005討論板
VBA6討論板
精華區
VB2008討論板
VC++2008討論板
VB6 討論板
VC6討論板