導航:首頁 > 軟體知識 > 如何才能編寫一個桌面程序

如何才能編寫一個桌面程序

發布時間:2023-03-10 13:10:14

⑴ 開發獨立EXE桌面應用程序,用什麼語言、技術合適

您的要求可能看起來很低,但實現起來並不容易。 首先,Windows 本身甚至沒有 C++ 運行時庫,或者 msvcrt 不是 Windows 的一部分。 每個版本的windows可能都自帶了msvcrt的一部分,但是xp vista win8 win10 win11自帶了不同版本的msvcrt,也就是說,一旦依賴了msvcrt庫,就不能保證在所有版本的windows上都能正常工作。換句話說,為了實現您的目標,您至少必須有一種靜態鏈接基本 C/C++ 庫的方法。 

為了解決這個問題,通常需要檢查數據並更改參數。 比如這篇文章就是完整的數據。 甚至,說不定有人把這樣的方法直接做成了工具。 但是你問「沒有額外的第三方工具,沒有代碼和步驟」,那麼好吧,這條路又被你擋住了。 至於高級語言,其實很多高級語言都是用C/C++開發或者執行的,所以Windows下的實際執行也依賴於msvcrt。 需要排除類似的語言方案。 因為,要想完全實現主體的思想,就必須擺脫msvcrt的依賴。 但是如果你想擺脫 msvcrt 依賴,要麼需要一定的代碼和步驟,要麼需要第三方工具。 你不能同時使用兩者,所以你不能這樣做。 

專門開發介面的早期開發語言還有其他早期開發語言。 如果要寫native native exe,也可以使用以下語言的Delphi:Delphi 7,非常不錯。 現在 Free Pascal 對於跨平台開發來說還不錯。  VB6:從未消亡的開發語言,也有大量開發小工具的愛好者。 還是一個非常快的VFP:Visual Foxpro,但不是微軟自己的,現在沒有開發PB:PowerBuilder C++ builder 6.0:Borland的C++程序開發集成平台MASM:Macro assembler。 更加困難。 接近機器語言。優點是運行速度快,比c#快,生成的exe小,不易被破解。

其他開發語言Flex(flash script + java),easy language(中文編碼),單獨的EXE桌面軟體也可以試試aardio,還不錯。如果只針對Windows平台,建議使用c#或VB6。 如果想要更好的界面,可以使用瀏覽器調用html js 界面庫或者WPF。 如果考慮跨平台。  ,上面有很多選項。 主要是根據你的實際需求,再考慮性能、部署等方面。

⑵ 什麼語言寫桌面應用程序好呢

開發桌面程序主流:C#(.net)或者C++。C++通常用於個人應用,大多數的通用商業程序都是C++開發的。而C#更多用於企業應用,更適合快速定製開發。

其他的老VB6(非.net的)、Delphi、C++Builder都不錯,但已經逐漸淘汰了,用的人也是越來越少。至於Flex的AIR桌面程序就更加小眾了,可謂人跡罕至。

此外,還有些企業應用因為後台是Java的,因此也選用Java做桌面。因為Java後台數量龐大,因此用Java做桌面在未來很長一段時間內依然是有一席之地的,但不是最主流的。

⑶ 如何創建一個最簡單的Windows桌面應用程序

三部分:

WinMain(主函數)

WinProc(消息處理函數)

...(自定義的函數)

不知道你是什麼編譯器

如果跟我一樣,歡迎追問告訴你創建步驟!

另外附一個小程序(需要用到外部庫、文件、函數,請勿嘗試編譯)

#include<windows.h>
#include<cstdio>
#include<ctime>
#include<cmath>
#pragmacomment(lib,"msimg32")

#defineWindow_FullWidth864
#defineWindow_FullHeight540
#defineScreen_FullWidthGetSystemMetrics(SM_CXSCREEN)
#defineScreen_FullHeightGetSystemMetrics(SM_CYSCREEN)

#defineGame_Menu
#defineGame_Load
#defineGame_Play
#defineGame_Pause
#defineGame_Over

HDCg_hdc,m_hdc,t_hdc;
HBITMAPbm,bk,bg,background;
HFONThfont;
BLENDFUNCTIONbf;
FILE*fp;
POINTp;

intbTrans,bTrans_add=1;

voidgame_Init(HWNDhwnd);
voidgame_Play(HWNDhwnd);
voidgame_check(HWNDhwnd);
voidgame_Paint(HWNDhwnd);
voidgame_reset(HWNDhwnd);
voidgame_Clear(HWNDhwnd);
LRESULTCALLBACKWndProc(HWNDhwnd,UINTMessage,WPARAMwParam,LPARAMlParam);

intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){
WNDCLASSEXwc; HWNDhwnd;
MSGmsg;

memset(&wc,0,sizeof(wc));
wc.cbSize =sizeof(WNDCLASSEX);
wc.lpfnWndProc =WndProc;
wc.hInstance =hInstance;
wc.hCursor =LoadCursor(NULL,IDC_ARROW);

wc.hbrBackground=NULL;
wc.lpszClassName="WindowClass";
wc.hIcon =LoadIcon(hInstance,"DICO");
wc.hIconSm =LoadIcon(hInstance,"DICO");

if(!RegisterClassEx(&wc)){
MessageBox(NULL,"WindowRegistrationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}

hwnd=CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","",WS_VISIBLE|WS_OVERLAPPEDWINDOW^WS_THICKFRAME^WS_MINIMIZEBOX^WS_MAXIMIZEBOX,
(Screen_FullWidth-Window_FullWidth)/2,(Screen_FullHeight-Window_FullHeight)/2,Window_FullWidth,Window_FullHeight,NULL,NULL,hInstance,NULL);

if(hwnd==NULL){
MessageBox(NULL,"WindowCreationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}

game_Init(hwnd);

ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);

srand(time(NULL));

game_reset(hwnd);

while(msg.message!=WM_QUIT){
if(PeekMessage(&msg,0,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
intstart_clock_count=clock();

game_Play(hwnd);
game_Paint(hwnd);

while(clock()-start_clock_count<30);
}
}
returnmsg.wParam;
}

voidgame_Init(HWNDhwnd)
{
chars[20];HINSTANCEhInstance;

t_hdc=GetDC(hwnd);
g_hdc=CreateCompatibleDC(t_hdc);
m_hdc=CreateCompatibleDC(g_hdc);

background=CreateCompatibleBitmap(t_hdc,Window_FullWidth,Window_FullHeight);

bg=(HBITMAP)LoadImage(GetMoleHandle(0),"res\day.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
bk=(HBITMAP)LoadImage(GetMoleHandle(0),"res\black.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);

bf.BlendOp=AC_SRC_OVER;
bf.BlendFlags=0;
bf.SourceConstantAlpha=bTrans;
bf.AlphaFormat=0;
}

voidgame_Paint(HWNDhwnd)
{
SelectObject(g_hdc,background);

SelectObject(m_hdc,bg);
BitBlt(g_hdc,0,0,100,100,m_hdc,0,0,SRCCOPY);

SelectObject(m_hdc,bk);
BitBlt(g_hdc,0,0,300,300,m_hdc,0,0,SRCCOPY);

BitBlt(t_hdc,0,0,Window_FullWidth,Window_FullHeight,g_hdc,0,0,SRCCOPY);
}

voidgame_Play(HWNDhwnd)
{
if(bTrans==255)bTrans_add=-1;if(bTrans==0)bTrans_add=1;

bTrans+=5*bTrans_add;bf.SourceConstantAlpha=bTrans;
}

voidgame_check(HWNDhwnd)
{

}

voidgame_reset(HWNDhwnd)
{

}

voidgame_Clear(HWNDhwnd)
{
ReleaseDC(hwnd,t_hdc);
DeleteObject(g_hdc);
DeleteObject(hfont);
DeleteObject(m_hdc);
DeleteObject(bm);
}


LRESULTCALLBACKWndProc(HWNDhwnd,UINTMessage,WPARAMwParam,LPARAMlParam){

p.x=LOWORD(lParam);p.y=HIWORD(lParam);

switch(Message){

caseWM_DESTROY:{
game_Clear(hwnd);
PostQuitMessage(0);
break;
}

default:
returnDefWindowProc(hwnd,Message,wParam,lParam);
}
return0;
}

⑷ 怎麼去報電腦編程序

題主是想問怎麼去編寫電腦程序吧?編寫程序簡單步驟如下:
1、桌面空白處右擊2,新建3,文本文檔,4,新建文本文檔的圖標。
2、修改txt文件的擴展名,右鍵-重命名。將.txt改為.vbs,修改成.vbs後看到圖標變了,這就說明你的系統能夠識別他成一個vbs腳本程序。
3、根據需要在裡面寫代碼了,右鍵-編輯文件,直接就可以像編寫文本文件一樣在裡面寫代碼了。
4、然後在裡面輸入一句彈出簡單對話框的代碼。
5、之後關閉文件並且保存,可以在編輯的時候直接按CTRL+S保存再關閉,然後去直接雙擊剛才新建的文件,就會彈出一個對話框來了。這只是系統自帶的一個腳本語言。
6、這只是系統只帶的一個腳本語言,如果要編一些其他的程序就需要裝對應的代碼編輯器了。例如C#就得裝visualstudio,java的、、eclipse等等。

⑸ 用VS2017怎麼寫一個簡單的C#桌面程序,新手提問,不勝感激

1、啟動vs2005。 2、在「最近的項目」欄里單擊「創建」右邊的「項目」,也可以在「文件」菜單里單擊「新建項目」。 3、C#主要用於開發windows應用程序和控制項台應用程序,這里以控制台應用程序舉例。 4、在彈出的窗口裡從左邊的「項目類型」下單擊「Visual

閱讀全文

與如何才能編寫一個桌面程序相關的資料

熱點內容
天津生發產品怎麼選 瀏覽:306
技術文件如何下載 瀏覽:995
深圳牛雜市場有哪些 瀏覽:701
mcgs如何嵌入新的程序 瀏覽:747
數據線有多少a的說法嗎 瀏覽:589
九江五金市場有哪些 瀏覽:519
技術實驗班是什麼意思 瀏覽:700
微信滿多少收不到信息 瀏覽:524
為什麼我的微信掃不成小程序 瀏覽:753
廣東工業產品抄數怎麼樣 瀏覽:756
護膚品代理商怎麼找貨源 瀏覽:289
市場有哪些共同特點從狹義上講 瀏覽:154
淘寶數據包如何精細化 瀏覽:343
壓縮包中哪個是java的程序 瀏覽:114
建築基礎數據怎麼算 瀏覽:358
哪個程序語言好用 瀏覽:511
健身館開發小程序有什麼用 瀏覽:603
台江海鮮市場在哪裡 瀏覽:742
從技術角度如何開發app 瀏覽:623
日職職業技術學院大一開學帶什麼 瀏覽:471