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

如何讓C++ Builder 2010安裝Delphi 2010的元件呢?

答題得分者是:dllee
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-01-10 11:04:32 IP:118.167.xxx.xxx 訂閱
這兩天在試RAD Studio 2010,在裝TPerlRegEx後,我只能在DELPHI 2010裡看到這個元件,但我開C++專案時卻看不到該VCL圖示

當然,這個組件可以單單把PAS檔放進專案來使用。但其它的三方元件也是這樣比照辦理嗎?

不知道有沒有已經玩過C 2010的仙貝,可以教一下下怎麼把DELPHI 2010的三方元件裝在CB2010上嗎?
編輯記錄
GrandRURU 重新編輯於 2010-01-10 11:04:52, 註解 無‧
dllee
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-01-19 10:44:01 IP:114.32.xxx.xxx 訂閱
如果有元件的 PAS 檔,一定可以加到自己的 BCB 專案。
不論那一版的 BCB 應該都是可以的 (如果不行,就糟了 )。

PAS 檔放在自己的 BCB 專案,元件只能手動 new,手動設定事件,比較麻煩。
如果有 PAS 檔,可以直接新增一個 BCB 的 BPL 專案,把 PAS 加進去,
把元件註冊到 Palette 內,直接由 IDE 建立及設定元件還是會比較方便的

註:我還沒玩 2010,希望 2011 支援雙核及64位元時,再來玩。
------
http://www.ViewMove.com
編輯記錄
dllee 重新編輯於 2010-01-19 10:45:51, 註解 加註‧
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-01-19 12:02:46 IP:203.75.xxx.xxx 訂閱
我也一直以為是這樣的
但是我在build的時候,卻一直出現
Build
[Linker Error] Unresolved external 'pcre_dispose' referenced from C:\TPERLREGEX2008\PERLREGEX.OBJ
[Linker Error] Unresolved external 'pcre_maketables' referenced from C:\TPERLREGEX2008\PERLREGEX.OBJ
[Linker Error] Unresolved external 'pcre_compile' referenced from C:\TPERLREGEX2008\PERLREGEX.OBJ
[Linker Error] Unresolved external 'pcre_get_stringnumber' referenced from C:\TPERLREGEX2008\PERLREGEX.OBJ
[Linker Error] Unresolved external 'pcre_exec' referenced from C:\TPERLREGEX2008\PERLREGEX.OBJ
[Linker Error] Unresolved external 'pcre_study' referenced from C:\TPERLREGEX2008\PERLREGEX.OBJ

搞不定呀!快瘋了 > <

===================引 用 dllee 文 章===================
如果有元件的 PAS 檔,一定可以加到自己的 BCB 專案。
不論那一版的 BCB 應該都是可以的 (如果不行,就糟了 )。

PAS 檔放在自己的 BCB 專案,元件只能手動 new,手動設定事件,比較麻煩。
如果有 PAS 檔,可以直接新增一個 BCB 的 BPL 專案,把 PAS 加進去,
把元件註冊到 Palette 內,直接由 IDE建立及設定元件還是會比較方便的

註:我還沒玩 2010,希望 2011 支援雙核及64位元時,再來玩。
dllee
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-01-19 22:03:42 IP:203.67.xxx.xxx 訂閱
Unresolved external 'ooxx' 表示你的專案內有 unit 使用它(變數或是函式),卻實體。
用 ooxx 字串搜尋一下你的 Source, 可能是少加入了 unit, library 或 package.

用你的 ooxx 字串找到這個:
http://www.mushclient.com/pcre/index.html

是用它嗎? 有它的 API/LIB 嗎?
加入專案也許就 OK 了
------
http://www.ViewMove.com
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-01-20 01:01:41 IP:118.167.xxx.xxx 訂閱
感謝dllee大不吝回覆
它已經把RCRE7.9所用到的dll給包進去了(PCRE官網只提供Source,要自己用gcc去編譯……)
我剛剛在TPerlRegex的Source中有看到readme,看不太懂這邊使用的OBJ和元件有什麼關連,編譯的時候不是會自動產生嗎?

以下是Readme文件內容:
TPerlRegEx is a Delphi VCL wrapper around the open source PCRE library, which implements Perl-Compatible Regular Expressions.
The supplied pcrelib.dll contains PCRE 7.9, compiled with Unicode support.
The supplied OBJ files contain PCRE 7.9, compiled with Unicode support.

By default, the component uses the DLL. Using the OBJ files can trigger an internal compiler error, particularly when installing the component into a package. You can use the OBJ files by editing the compiler directives at the top of the pcre.pas file.

For more information about PCRE, please visit http://www.regular-expressions.info/pcre.html

For more information about regular expressions in general, please visit http://www.regular-expressions.info/

You can download the latest version of TPerlRegEx at http://www.regular-expressions.info/delphi.html

TPerlRegEx is licensed under the Mozilla Public License, version 1.1.

To install this component into Delphi, open the .dpk file for your Delphi version, compile it, and install it into the IDE. The TPerlRegEx component will appear on the JGsoft page in the component palette.

Alternatively, you can create a new package or add the component to an existing package. Simply add the files PerlRegEx.pas and pcre.pas to the package.

If you prefer to instantiate TPerlRegEx at runtime instead of dropping it on a form, you don't need to install its package into the Delphi IDE. Simply add PerlRegEx to the uses clause of the units in which you want to use it. There's no need to add the pcre unit to the uses clause. This unit is used internally by TPerlRegEx.

===================引 用 dllee 文 章===================
Unresolved external 'ooxx' 表示你的專案內有 unit 使用它(變數或是函式),卻實體。
用 ooxx 字串搜尋一下你的 Source, 可能是少加入了 unit, library 或 package.

用你的 ooxx 字串找到這個:
http://www.mushclient.com/pcre/index.html

是用它嗎? 有它的 API/LIB 嗎?
加入專案也許就 OK 了
dllee
站務副站長


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2010-01-20 11:47:12 IP:114.32.xxx.xxx 訂閱
.OBJ, .DLL, .LIB 的關係是什麼?

Unit.cpp/Unit.pas → Unit.obj
Unit1.obj UnitX.obj → Units.lib
Unit1.obj UnitX.obj BCB內建的obj/lib -> Project.exe 或 Project.dll (with or without Project.lib)

你可以把 obj 加到你的專案再試試看,
而 obj 有格式的問題,VC 格式及 BCB 格式不同,
因此要是 for BCB 用的才可以直接加入,
不然,就要用 .cpp/.pas 去 compile 產生。

或是找找看,有沒有 for BCB 用的 .lib 檔。

或是把 .cpp/.pas 加到專案去。

只加入 .dll 到專案是沒有用的,除非,你得自己用 LoadLibrary 去載入各別的 .dll
並各別取得 API 函式,但對於使用套件來說,API 太多,用 LoadLibrary 的方式,
應該會寫到瘋掉吧

看它有提到 TPerlRegEx 元件,如果它只提供 Delphi 的 dpl 專案,就把它轉成 bpl 專案,
把元件加到 package 放到元件 palette 再來使用。

------
http://www.ViewMove.com
編輯記錄
dllee 重新編輯於 2010-01-20 11:50:10, 註解 關於 TPerlRegEx ‧
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2010-01-20 14:30:16 IP:203.75.xxx.xxx 訂閱
真是令人難過,網路上完全沒有與C++ Builder相關的安裝說明文件
看來我只能使用它舊版的元件了

再不然,只好改用Boost Regex了

===================引 用 dllee 文 章===================
.OBJ, .DLL, .LIB 的關係是什麼?

Unit.cpp/Unit.pas → Unit.obj
Unit1.obj UnitX.obj → Units.lib
Unit1.obj UnitX.obj BCB內建的obj/lib -> Project.exe 或 Project.dll (with or without Project.lib)

你可以把 obj 加到你的專案再試試看,
而 obj 有格式的問題,VC 格式及 BCB 格式不同,
因此要是 for BCB 用的才可以直接加入,
不然,就要用 .cpp/.pas 去 compile 產生。

或是找找看,有沒有 for BCB用的 .lib 檔。

或是把 .cpp/.pas 加到專案去。

只加入 .dll 到專案是沒有用的,除非,你得自己用 LoadLibrary 去載入各別的 .dll
並各別取得 API 函式,但對於使用套件來說,API 太多,用 LoadLibrary 的方式,
應該會寫到瘋掉吧

看它有提到 TPerlRegEx 元件,如果它只提供 Delphi 的 dpl 專案,就把它轉成 bpl 專案,
把元件加到 package 放到元件 palette 再來使用。

rackbr
一般會員


發表:1
回覆:6
積分:1
註冊:2010-01-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2010-01-25 10:48:06 IP:61.171.xxx.xxx 訂閱
一般的情况下,如果有BCB的package,
你需要暂时在Delphi注销此组件的安装,然后打开BCB的package安装到BCB中

如果没有BCB的package,
你需要自己建立package然后加入所以pas源文件,
保存package后安装

但是不是所有的delphi组件都可以无修改的在bcb中使用哦
参见小弟的问题,呵呵

obj是其他二进制格式的library,很多delphi/bcb组件会调用obj形式的library
最常见的比如zlib...

具体到你的问题,好像是要把pcre.pas中相应的声明(台湾叫“宣告”?)修改一下以适应c 的要求
下载pcre的源文件看看,就知道该怎么加了,跟pcre的c/ 源文件里面是一致的就行了
編輯記錄
rackbr 重新編輯於 2010-01-25 10:51:52, 註解 無‧
rackbr 重新編輯於 2010-01-25 11:04:49, 註解 無‧
rackbr 重新編輯於 2010-01-25 11:08:31, 註解 無‧
dllee
站務副站長


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2010-01-25 12:33:21 IP:114.32.xxx.xxx 訂閱
rackbr 說得沒錯, .pas 加入 BCB 的專案可能還需要手動調整一下宣告的部分。
關於此部分, 如果對 Delphi 也熟一些, 就能很順利改好, 如果不熟, 就只能用試的了。
像我就是亂試,試到 compile/link OK 就 OK 了。

短期內, 應該不會玩 2010, 等 2011 再來玩囉
------
http://www.ViewMove.com
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#10 引用回覆 回覆 發表時間:2010-01-25 12:46:49 IP:203.75.xxx.xxx 訂閱
小弟e文實在不好,看很久還找不到問題在哪邊
pcre的source內沒有上述的函式,那是TPerlRegEx元件的函式

小弟也下載了pcre-7.9
也用make了TPerlRegEx下的makefile.mak檔案,好像也沒生出什麼lib

另外,pcre.pas其中有一句話是…
Calling pcre_free in the DLL causes an access violation error; use pcre_dispose instead

看起來是修正了什麼,但跟我出現上述的錯誤有什麼關聯嗎?

暈倒了…
難道全世界只剩我想用TPerlRegEx這個元件了嗎………

===================引 用 rackbr 文 章===================
一般的情况下,如果有BCB的package,
你需要暂时在Delphi注销此组件的安装,然后打开BCB的package安装到BCB中

如果没有BCB的package,
你需要自己建立package然后加入所以pas源文件,
保存package后安装

但是不是所有的delphi组件都可以无修改的在bcb中使用哦
参见小弟的问题,呵呵

obj是其他二进制格式的library,很多delphi/bcb组件会调用obj形式的library
最常见的比如zlib...

具体到你的问题,好像是要把pcre.pas中相应的声明(台湾叫“宣告”?)修改一下以适应c 的要求
下载pcre的源文件看看,就知道该怎么加了,跟pcre的c/ 源文件里面是一致的就行了
編輯記錄
GrandRURU 重新編輯於 2010-01-25 13:21:44, 註解 無‧
dllee
站務副站長


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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2010-02-02 10:01:42 IP:114.32.xxx.xxx 訂閱
用 TPerlRegEx 去 google 找, 大多找到是 Delphi 2009 的資料。
Delphi2010 與 2009 差很大嗎


BCB5 如果可以用的話, 我再來試試看

------
http://www.ViewMove.com
編輯記錄
dllee 重新編輯於 2010-02-02 10:03:55, 註解 無‧
系統時間:2024-03-29 21:15:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!