用BCB開發控制台程式

來源:互聯網
上載者:User

前不久,Inprise公司(原Borland公司)正式公布了Delphi 5.0版,其開發嚮導中支援了“控制台程式(CPL)”架構的產生,利用它可以快速、方便地開發CPL程式。那麼是否能在現有的Borland C++ Builder 中開發CPL程式呢?

CPL程式是動態連結程式庫(DLL)的一種變形,只不過副檔名為.cpl、入口函數為CPlApplet()而不是DllEntryPoint()罷了(並不是不要DllEntryPoint(),不然不能編譯)。我們只需在BCB4.0中選擇“File|New...”開啟開發嚮導,選擇“DLL”產生一個DLL架構,並在其中加入一個函數CPlApplet()就可以了。為了快速地說明問題,筆者先給出一個最簡單的例子程式,然後再來解說。

#include <vcl.h>
#include <cpl.h>
#include <cplext.h>
#pragma hdrstop
USERES("my.res");//這是我加入的資源檔,其中有一個表徵圖
extern"C" __declspec(dllexport) long CALLBACK __stdcall CPlApplet(HWND hwndCPL,UINT uMsg,LPARAM lParam1,LPARAM lParam2);
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
return 1;
}
long CALLBACK __declspec(dllexport) __stdcall CPlApplet(HWND hwndCPL,UINT uMsg,LPARAM lParam1,LPARAM lParam2)
{
LPNEWCPLINFO mycpl;//LPNEWCPLINFO結構可在CPL.H標頭檔中查看
long result=0;
switch (uMsg)//判斷傳來的資訊
  {
  case CPL_INIT:// 第一個資訊,在控制台調入時產生
   result=1;
   break;
  case CPL_GETCOUNT://第二個資訊,在控制台調入時產生
   result=1;
   break;
  case CPL_INQUIRE://第三個資訊,當控制台查詢時產生
   result=0;
   break;
  case CPL_NEWINQUIRE://第三個資訊,當控制台查詢時產生
   mycpl=LPNEWCPLINFO (lParam2);// 將lParam2中的指標傳給mycpl
   mycpl->dwSize=sizeof(NEWCPLINFO);
   mycpl->dwFlags=0;//標誌變數 一般設為0
   mycpl->dwHelpContext=0;//協助控制代碼一般設為0
   mycpl->lData=0;
   mycpl->hIcon=(HICON)LoadIcon(HInstance,"MyIcon");
   mycpl->szHelpFile[0]='\0';//協助檔案
   StrCopy(mycpl->szName,"BCB控制台示範程式");//在表徵圖下顯示的解說文字
   StrCopy(mycpl->szInfo,"用BCB開發自己的控制台程式");// 在控制台狀態列中顯示的說明資訊
   result=0;
   break;
  case CPL_DBLCLK://當表徵圖被雙擊時
   ShowMessage("這是一個CPL實驗程式");
   result=0;
   break;
  case CPL_STOP://當使用者關閉自已的程式時產生
   result=1;
   break;
  case CPL_EXIT:// 當控制台關閉時產生,系統使用FreeLibrary()釋放
   result=0;
   break;
  default:
   break;
  }
return result;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.