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

關於轉移 自己原本的Unit.c 中的函式到新的.c檔

尚未結案
rik
一般會員


發表:40
回覆:81
積分:24
註冊:2004-09-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-11 19:58:52 IP:211.76.xxx.xxx 未訂閱
現在的情形是 Unit.cpp [就是一開始 開新視窗FORM時那個] 裡面 自己寫的函式 漸漸增加-口-" 想轉移一些常用的部分 到其他檔案 Unit.cpp 裡面已經拉好長了@@" 剛剛自己有試過 開新的.cpp檔 和.h檔 有用自己的方式移部分程式過去 結果....失敗-口-"" 請問要怎麼移@@? 有哪些部分要注意@@"
------
時與不時的撿起身旁的拼圖碎片

不懂的部分 半解的部分 就像一塊拼圖
留於腦中 等待拼出完美解答的一天

這就是我的思路 我的創作方法
而我也接受 這作法所帶來的"代價" - 時間
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-11 20:42:00 IP:61.64.xxx.xxx 未訂閱
引言: 現在的情形是 Unit.cpp [就是一開始 開新視窗FORM時那個] 裡面 自己寫的函式 漸漸增加-口-" 想轉移一些常用的部分 到其他檔案 Unit.cpp 裡面已經拉好長了@@" 剛剛自己有試過 開新的.cpp檔 和.h檔 有用自己的方式移部分程式過去 結果....失敗-口-"" 請問要怎麼移@@? 有哪些部分要注意@@"
要注意如果有使用到Unit1裡的一些全域變數, 在移植時若無法(或是懶的用)將這些東西參數化, 則在新的Unit裡要記得include Unit1.h. 例如: 在Unit1.cpp裡有一個function原型為 void test(), 會用到Form1這個全域變數, 則在移植test()時你可以有兩種方法, 1. 在新的Unit裡 #include "Unit1.h", 前提是使用到的全域變數有在Unit1.h裡宣告為extern(例如: extern TForm* Form1). 2. 在新移植的funtcion裡, 把會用到的Unit1的部份參數化, 例如: void test(TForm* form), 在Unit1使用 test(Form1) 來呼叫. 最後記得在Unit1.cpp include 新的.h檔(例如: #include "Unit2.h") 現在只有想到這些, 看有沒有人幫忙補充
rik
一般會員


發表:40
回覆:81
積分:24
註冊:2004-09-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-12 17:40:28 IP:211.76.xxx.xxx 未訂閱
抱歉 還是有點不懂@@" 因此我舉個例子 請幫我改看看^^    現在的檔案有 Unit1.cpp, Unit2.cpp, Unit1.h    Unit1內容 ToAdd 希望主函式內容不出現在Unit1.cpp #include #pragma hdrstop #include "Unit1.h" #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } void __fastcall TForm1::Button1Click(TObject *Sender) { EditC->Text=ToAdd(StrToInt(EditA->Text),StrToInt(EditB->Text)); } Unit1.h 程式內容 #include #include #include <Forms.hpp> class TForm1 : public TForm { __published: // IDE-managed Components TEdit *EditA; TEdit *EditB; TLabel *Label1; TLabel *Label2; TButton *Button1; TEdit *EditC; void __fastcall Button1Click(TObject *Sender); private: // User declarations public: // User declarations __fastcall TForm1(TComponent* Owner); }; extern PACKAGE TForm1 *Form1; #endif Unit2.cpp程式內容 int __fastcall ToAdd(int A,int B) { int C; C=A B; return(C); } 就這麼短@@" 程式當然是不會動的= =' 請問要怎麼改@@? 此外 需要新增Unit2.h 來放ToAdd格式嗎@@? (因該問 該怎麼寫^^") 不希望格式放在Unit1.h 中
------
時與不時的撿起身旁的拼圖碎片

不懂的部分 半解的部分 就像一塊拼圖
留於腦中 等待拼出完美解答的一天

這就是我的思路 我的創作方法
而我也接受 這作法所帶來的"代價" - 時間
Zard
尊榮會員


發表:24
回覆:396
積分:539
註冊:2003-11-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-12 19:49:39 IP:61.64.xxx.xxx 未訂閱
Unit2.cpp程式內容
int __fastcall ToAdd(int A,int B)
{
  int C;
  C=A B;
  return(C);
}     Unit2.h加上下面這行宣告
int __fastcall ToAdd(int A,int B);    Unit1.cpp加上
#include "Unit2.h"    
系統時間:2024-07-03 1:44:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!