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

BCB 使用 CxImage MFC

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


發表:23
回覆:20
積分:8
註冊:2007-08-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-17 14:42:20 IP:220.130.xxx.xxx 訂閱
原本在VC中用的 .lib 
我有用coff2omf.exe, 將它轉成 BCB.lib
並且已經加入 project 中
.H 也已經把 CxImage 的標頭檔 include 進來
#include "CxImage\ximage.h"
#include "CxImage\ximajpg.h"

compiler 時會發生很多錯誤
[C Error] ximadef.h(115): E2238 Multiple declaration for 'tagRECT'
[C Error] windef.h(295): E2344 Earlier declaration of 'tagRECT'
[C Error] ximadef.h(120): E2146 Need an identifier to declare
[C Error] ximadef.h(123): E2238 Multiple declaration for 'tagPOINT'
......

請問這樣是BCB裡不能用, 還是我少了什麼步驟嗎?
dllee
站務副站長


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-18 08:33:57 IP:59.105.xxx.xxx 訂閱
在 BCB 中使用 VC 的 code 沒有那麼容易,不是轉好 .lib 加入 .cpp/.h/.hpp 就可以順利 build 的。
您必需要了解每個錯誤訊息,並一個一個去修正,才可能完成 compile (但即可順利 compile/link 出來的也不一定可以用)。
基本上,您了解 .lib 的不同也作了轉換,再來就是 .h/.hpp 檔的修正(此部分您還沒作)。
以您的錯誤訊息:
[C Error] ximadef.h(115): E2238 Multiple declaration for 'tagRECT'
-> 看一下 ximadef.h 檔是否宣告了 tagRECT, 若有, 把它 remark 掉再試, 因為已重覆定義

[C Error] windef.h(295): E2344 Earlier declaration of 'tagRECT'
-> 上面的修正了,這可能就不會出現了

[C Error] ximadef.h(120): E2146 Need an identifier to declare
-> 查看一下 120 行用了什麼特別的變數或Class,那個 Class 可能沒有定義(還少 .h/.hpp)

[C Error] ximadef.h(123): E2238 Multiple declaration for 'tagPOINT'
-> 看一下 ximadef.h 檔是否宣告了 tagPOINT, 若有, 把它 remark 掉再試, 因為已重覆定義
在 BCB 引用 VC 的程式在 .lib 解決後,大部分需要處理的就是 .h 宣告的衝突(如上),
因為在 VC 中用的 include 與 BCB 用的 include 可能不同,而現在要把兩者放在一起,
就會出現重覆定義,或少定義之類的問題,這些都只能一個一個手動去修改 .h 宣告或定義,
而且每個狀況不同,除非有人處理過,同時又願意分享出來,才可能由網路取得,
不然的話,就只有自已慢慢 Try 了。

Good Luck



Seednet ShareMe 九月底前以 MSN SubTitle 幫她打廣告可增加 10G 免費網路硬碟dllee's blog
------
http://www.ViewMove.com
licheer
一般會員


發表:23
回覆:20
積分:8
註冊:2007-08-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-18 17:26:41 IP:220.130.xxx.xxx 訂閱
我將其中有重覆宣告的改名, 
同時也宣告了 CxImage *o_ImageSource, *o_ImageResult;
complier可以過了

不過要用他就有問題
o_ImageSource = new CxImage(1024, 768, 24);

這樣大概就沒辦法用了

[Linker Error] Unresolved external 'CxImage::Destroy()' referenced from C:\DOCUMENTS AND SETTINGS\BCB6-SAMPLE\MAIN.OBJ
[Linker Error] Unresolved external 'CxImage::CxImage(unsigned long, unsigned long, unsigned long, unsigned long)' referenced from C:\DOCUMENTS AND SETTINGS\BCB6-SAMPLE\MAIN.OBJ
dllee
站務副站長


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-18 20:37:11 IP:59.105.xxx.xxx 訂閱
要直接使用 MFC 在 BCB 中不是那麼容易... 除了 Try 還是 Try...

CxImage http://www.codeproject.com/bitmap/cximage.aspCxImage
有完整原始碼及範例程式(for VC)。

官網應該是這個 http://www.xdp.it/projects.htm
它有提供 BCB3, BCB6, VC,VB 等版本 http://www.xdp.it/download.htm
請您直接試試 BCB6 的版本,或許會比較快。



Seednet ShareMe 九月底前以 MSN SubTitle 幫她打廣告可增加 10G 免費網路硬碟dllee's blog
------
http://www.ViewMove.com
系統時間:2024-11-04 13:09:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!