線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1474
推到 Plurk!
推到 Facebook!

關於 standalone的疑問?

尚未結案
tpchen
一般會員


發表:3
回覆:7
積分:2
註冊:2003-08-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-26 23:43:21 IP:61.64.xxx.xxx 未訂閱
要把 project compiler 成 standalone,需要更改Project/Options 設定: (1) 選擇 Packages TAB 把 Build with runtime packages 這個打勾取消 (2) 選擇 Linker TAB 把 Use dynamic RTL 這個打勾取消 原文說明在此 http://bdn.borland.com/article/0,1410,19388,00.html    我寫了一個測試程式,是不具備有Form的Project; 但在程式中使用了VCL的元件TADOConnection。最後照著上面的步驟,想編譯一個standalone的程式。卻發現在編譯時期就會出現一大堆錯誤了!因此,推論想要編譯一個standalone的程式。是不是有先決條件,也就是說在程式當中,不能使用VCL的元件在自己的程式當中??? 不知哪位先進能解決我的疑問~ 發表人 -
dllee
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-21 11:06:20 IP:203.204.xxx.xxx 未訂閱
請問一下,不知道您是否有試過在 Build with runtime packages 打勾 Use dynamic RTL 打勾 的請況下去 compile 您的 project,是正常的, 而只將 Build with runtime packages Use dynamic RTL 打勾取消,就一大堆錯誤呢?    通常自寫程式時,都使用預設選項,都寫完測試完 ok 後,要 release 前,才將上述的選項取消,從來沒遇到過因為選項取消而產生錯誤訊息... 可能是我都只有用基本的元件寫程式吧...    沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
tpchen
一般會員


發表:3
回覆:7
積分:2
註冊:2003-08-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-21 11:49:01 IP:61.64.xxx.xxx 未訂閱
引言: 請問一下,不知道您是否有試過在 Build with runtime packages 打勾 Use dynamic RTL 打勾 的請況下去 compile 您的 project,是正常的, Ans: 是正常的. 而只將 Build with runtime packages Use dynamic RTL 打勾取消,就一大堆錯誤呢? Ans: 要看情況,只要我不用任何的VCL元件,compiler就沒問題。 用了VCL再去compilier 就會產生問題。 通常自寫程式時,都使用預設選項,都寫完測試完 ok 後,要 release 前,才將上述的選項取消,從來沒遇到過因為選項取消而產生錯誤訊息... 可能是我都只有用基本的元件寫程式吧... Ans: 我的條件是想要做成 Standalone program。 如果沒有這個限制之下,我當然都用預設選項。我之所以想要這樣,是希望編譯完後的執行檔(只有執行檔)拿到另外一台沒有裝任何boralnd的Runtime dll電腦時執行時,仍然可以執行,這是我的目的。 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
dllee
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-22 08:14:28 IP:61.224.xxx.xxx 未訂閱
我很好奇... 有可能把您的程式簡化上傳到    ■ 會員求助程式檔案上傳區 http://delphi.ktop.com.tw/forum.asp?FORUM_ID=97    因為我是覺得不太可能,如果連 VCL 都不能放,那我還用 BCB 幹麼  ■【>沒空更新的網頁... href="http://dllee.adsldns.org">http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
tpchen
一般會員


發表:3
回覆:7
積分:2
註冊:2003-08-24

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-22 21:07:33 IP:61.64.xxx.xxx 未訂閱
基本上我的程式是一個Console mode的形式。 程式位置在: http://us.f1f.yahoofs.com/users/7cb59015/bc/Share/4d7a.zip?bfwgvb_AQf.cJAZe
dllee
站務副站長


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-22 22:04:35 IP:61.224.xxx.xxx 未訂閱
引言: 基本上我的程式是一個Console mode的形式。 程式位置在: http://us.f1f.yahoofs.com/users/7cb59015/bc/Share/4d7a.zip?bfwgvb_AQf.cJAZe
無法下載... 如果是 console 的程式,如果在一開始沒有勾選 Use VCL 而您真的有使用 VCL 可能會有問題吧... 如果在一開始有勾選就不會有問題,如: ■【BCB】Console Mode TestProgram http://delphi.ktop.com.tw/topic.php?TOPIC_ID=37776 是個簡單的測試程式,所產生的 project1.exe 在沒有 BCB 的電腦中也可以執行,其程式碼如下:
//---------------------------------------------------------------------------    #include 
#include 
#include 
#pragma hdrstop    //---------------------------------------------------------------------------    #pragma argsused
int main(int argc, char* argv[])
{
  TStringList *list=new TStringList;
  list->Add("CCC");
  list->Add("XXX");
  list->Add("BBB");
  list->Add("YYY");
  list->Add("AAA");
  list->Sorted=true;
  for(int i=0;iCount;i++)
    printf("%s\n",list->Strings[i].c_str());
  getch();
  return 0;
}
//----------------------------------------------------------------------------//
沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell.... 發表人 - dllee 於 2003/09/22 22:07:25
------
http://www.ViewMove.com
tpchen
一般會員


發表:3
回覆:7
積分:2
註冊:2003-08-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-09-23 18:44:56 IP:61.64.xxx.xxx 未訂閱
Console wizard我都用預設值,所以VCL 的選項我有打勾勾。    我的範例程式碼如下: //---------------------------------------------------------------------------    #include  #include #include #include #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[]) { CoInitialize(NULL); TADOQuery *Query1 = new TADOQuery(0); printf("test!!!"); return 0; } //--------------------------------------------------------------------------- 錯誤碼如下: [Linker Error] Unresolved external 'Adodb::TADOQuery::' referenced from D:\TEMP\TEST\UNIT1.OBJ [Linker Error] Unresolved external '__fastcall Adodb::TADOQuery::TADOQuery(Classes::TComponent *)' referenced from D:\TEMP\TEST\UNIT1.OBJ
dllee
站務副站長


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-09-23 23:40:35 IP:61.224.xxx.xxx 未訂閱
引言: Console wizard我都用預設值,所以VCL 的選項我有打勾勾。 我的範例程式碼如下:
//---------------------------------------------------------------------------    #include 
#include 
#include 
#include 
#pragma hdrstop    //---------------------------------------------------------------------------    #pragma argsused
int main(int argc, char* argv[])
{
    CoInitialize(NULL);
    TADOQuery *Query1 = new TADOQuery(0);
    printf("test!!!");
    return 0;
}
//---------------------------------------------------------------------------
錯誤碼如下: [Linker Error] Unresolved external 'Adodb::TADOQuery::' referenced from D:\TEMP\TEST\UNIT1.OBJ [Linker Error] Unresolved external '__fastcall Adodb::TADOQuery::TADOQuery(Classes::TComponent *)' referenced from D:\TEMP\TEST\UNIT1.OBJ
花了一些時間測試,找到解決方法了 只需要將您新增的 class="code"> #include #include ■ Unit1.cpp
//---------------------------------------------------------------------------    #include 
#include 
#include 
#include "Unit1.h"    #pragma hdrstop    //---------------------------------------------------------------------------    #pragma argsused
int main(int argc, char* argv[])
{
  TStringList *list=new TStringList;
  list->Add("CCC");
  list->Add("XXX");
  list->Add("BBB");
  list->Add("YYY");
  list->Add("AAA");
  list->Sorted=true;
  for(int i=0;iCount;i  )
    printf("%s\n",list->Strings[i].c_str());      CoInitialize(NULL);
  TADOQuery *Query1 = new TADOQuery(0);
  if(Query1->Prepared)
    printf("Query1 is prepared!");
  else
    printf("Query1 is not prepared!");      getch();
  
  delete Query1;
  return 0;
}
//----------------------------------------------------------------------------//
好玩的是,把 Unit.h 內放到 Unit1.cpp 就會出現同樣的錯誤訊息,但放到 Unit1.h 內就不會。 記得把 unit1.h 放到 unit1.cpp 的目錄中,rebuild 就 ok 了。 沒空更新的網頁... http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
tpchen
一般會員


發表:3
回覆:7
積分:2
註冊:2003-08-24

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-09-27 00:52:20 IP:61.64.xxx.xxx 未訂閱
再此感謝您的協助~
dllee
站務副站長


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-09-27 08:28:05 IP:61.224.xxx.xxx 未訂閱
問題解決了就好  說真的,我實在不了解 > 我也不知道是為什麼 < > 只是正好被我朦對了 < > 另外,要提醒您,日後如果有提問或回應需要附上原始碼時,記得使用 <>[<>><>] // // 您的原始碼 // <>[<>/><>] 將您的原始碼包起來,這樣,那些 #>沒空更新的網頁... href="http://dllee.adsldns.org">http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com
系統時間:2024-05-09 4:22:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!