a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁(yè) > 編程 > C > 正文

如何編寫跨平臺(tái)應(yīng)用程序

2023-06-09 12:08:05
字體:
供稿:網(wǎng)友

本文介紹了編寫跨平臺(tái)應(yīng)用程序的方法。

我們使用的許多著名的應(yīng)用程序,比如VC,WINRAR,SVN等等,都既能在WIN下運(yùn)行,也支持ming令行操作。這是很爽的,習(xí)慣在可視化下操作的同志,可以使用GUI界面操作,習(xí)慣懷舊或者喜歡ming令行操作的同志,可以使用ming令操作。同時(shí)我們也可以根據(jù)不同情況靈活運(yùn)用,如果你要把硬盤上多于一百個(gè)的影視文件分別壓縮成壓縮包,并加入說明文件,使用可視化操作顯示是一件費(fèi)時(shí)費(fèi)力的工作,但使用ming令行寫一個(gè)簡(jiǎn)單的批處理循環(huán),就可以輕松完成。這時(shí)你會(huì)十分感激那些提供操作系統(tǒng)的大佬們,他們?cè)诓僮飨到y(tǒng)里集成的一個(gè)簡(jiǎn)單的SHELL的英明的決策使你輕松了多少呀。

這里簡(jiǎn)單介紹一下如何寫一個(gè)程序,使我們的程序可以支持跨平臺(tái)操作,既帶ming令行,又可以可視操作。

要寫一個(gè)簡(jiǎn)單的跨WIN和DOS的程序是很簡(jiǎn)單的,要是還想能在LIUNX上運(yùn)行,那可能會(huì)復(fù)雜一些。

由于對(duì)LIUNX知之不多,這里只對(duì)制作WIN和DOS程序做一些簡(jiǎn)單的介紹。制作DOS和WIN下運(yùn)行的程序,有兩種方法。

第一種方法:

先用標(biāo)準(zhǔn)C或者C++寫一個(gè)DOS程序,然后使用其他可視化編程工具如VC,VB或者DELPHI編寫一個(gè)界面,然后使用BUTTON通過調(diào)用函數(shù)WinExec或者ShellExecute或者CreateProcess來執(zhí)行寫的DOS程序。

這里使用轉(zhuǎn)載來的別人的例子來說明如何調(diào)用:

三個(gè)SDK函數(shù): WinExec,ShellExecute ,CreateProcess可以實(shí)現(xiàn)調(diào)用其他程序的要求,其中以WinExec最為簡(jiǎn)單,ShellExecute比WinExec靈活一些,CreateProcess最為復(fù)雜。

WinExec 兩個(gè)參數(shù),前一個(gè)指定路徑,后一個(gè)指定顯示方式。

ShellExecute 可以指定工作目錄,并且還可以尋找文件的關(guān)聯(lián)直接打開不用加載與文件關(guān)聯(lián)的應(yīng)用程序,ShellExecute還可以打開網(wǎng)頁(yè),啟動(dòng)相應(yīng)的郵件關(guān)聯(lián)發(fā)送郵件等等。

CreateProcess  一共有十個(gè)參數(shù),不過大部分都可以用NULL代替,它可以指定進(jìn)程的安全屬性,繼承信息,類的優(yōu)先級(jí)等等。如果我們要得到足夠多的關(guān)于新的進(jìn)程的信息,控制新的進(jìn)程的細(xì)節(jié)屬性,若要達(dá)到這些目的,我們就需要使用CreateProcess函數(shù)了。

三個(gè)SDK函數(shù)( WinExec、ShellExec、CrateProcess )的語法:

(一)WinExec

這個(gè)函數(shù)最簡(jiǎn)單,只有兩個(gè)參數(shù),原型如下:

 UINT WinExec(

LPCSTR lpCmdLine,   // ming令路徑

UINT uCmdShow      // 顯示方式

 );

使用方法如下:

WinExec("Notepad.exe", SW_SHOW);  // 打開記事本

WinExec("D://Program Files//Test//Test.exe",SW_SHOWMAXIMIZED); // 以最大化的方式打開Test.exe

需要注意的是若用 SW_SHOWMAXMIZED 方式去加載一個(gè)無最大化按鈕的程序,譬如Neterm,Calc 等等,就不會(huì)出現(xiàn)正常的 窗體,但是已經(jīng)被加到任務(wù)列表里了。

這個(gè)函數(shù)只能打開exe文件。

需要的頭文件:windows.h,winbase.h(前者是試驗(yàn)出來,后者是msdn上說明),另外,這兩者的先后順序不能變。

msdn上的說明:http://msdn.microsoft.com/en-us/library/ms687393(VS.85).aspx

(二)ShellExecute

原型如下:

HINSTANCE ShellExecute(

HWND hwnd,           //父窗口句柄

LPCTSTR lpOperation,   //操作, 打開方式 "edit","explore","open","find","print","NULL"

LPCTSTR lpFile,         //文件名,前面可加路徑

LPCTSTR lpParameters,   //參數(shù)

LPCTSTR lpDirectory,    //默認(rèn)文件夾

INT nShowCmd          //顯示方式

);

使用方法如下:

ShellExecute(NULL,"open","C://Test.txt",NULL,NULL,SW_SHOWNORMAL); // 打開C:/Test.txt 文件

ShellExecute(NULL, "open", http://www.5lwq4hdr.cn/,  NULL, NULL, SW_SHOWNORMAL); // 打開網(wǎng)頁(yè)www.5lwq4hdr.cn

ShellExecute(NULL,"explore", "D://C++",NULL,NULL,SW_SHOWNORMAL); // 打開目錄D:/C++

ShellExecute(NULL,"print","C://Test.txt",NULL,NULL, SW_HIDE); // 打印文件C:/Test.txt

ShellExecute不支持定向輸出。

這個(gè)函數(shù)可以打開任意文件,會(huì)調(diào)用系統(tǒng)注冊(cè)的程序來打開對(duì)應(yīng)后綴名的文件。

需要的頭文件:windows.h,shellapi.h(前者是我試驗(yàn)出來的,后者是msdn說需要的)。另外這兩者的先后順序不能變。

msdn上說明:http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx

(三)CreateProcess

原型如下:

BOOL CreateProcess(

LPCTSTR lpApplicationName, //執(zhí)行程序名

LPTSTR lpCommandLine,  // 參數(shù)行

//下面兩個(gè)參數(shù)描述了所創(chuàng)建的進(jìn)程和線程的安全屬性,如果為NULL則使用默認(rèn)的安全屬性

LPSECURITY_ATTRIBUTES lpProcessAttributes,  // process security attributes

LPSECURITY_ATTRIBUTES lpThreadAttributes,   // thread security attributes

BOOL bInheritHandles,  // 繼承標(biāo)志

DWORD dwCreationFlags, // 創(chuàng)建標(biāo)志

LPVOID lpEnvironment,  // 環(huán)境變量

LPCTSTR lpCurrentDirectory,   // 運(yùn)行該進(jìn)程的初始目錄

LPSTARTUPINFO lpStartupInfo,  // 用于在創(chuàng)建子進(jìn)程時(shí)設(shè)置各種屬性

LPPROCESS_INFORMATION lpProcessInformation //在進(jìn)程創(chuàng)建后接受相關(guān)信息

);

使用方法如下:

PROCESS_INFORMATION pi;

STARTUPINFO si;

memset(&si,0,sizeof(si));

si.cb=sizeof(si);

si.wShowWindow=SW_SHOW;

si.dwFlags=STARTF_USESHOWWINDOW;

bool fRet=CreateProcess("D://putty.exe",NULL,NULL,FALSE,NULL,NULL,NULL,NULL,&si,&pi);

這個(gè)函數(shù)可以打開任意文件,會(huì)調(diào)用系統(tǒng)注冊(cè)的程序來打開對(duì)應(yīng)后綴名的文件。

需要的頭文件:windows.h,winbase.h(前者是試驗(yàn)出來,后者是msdn上說明),另外,這兩者的先后順序不能變。

msdn上的說明:http://msdn.microsoft.com/en-us/library/ms682425](VS.85).aspx

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 9久9久9久女女女九九九一九 | 日韩一二三四 | 在线色网址 | 欧美肉体xxxx肉交高潮 | 亚洲黄色大片在线观看 | 日日爱886 | 一区二区三区 在线 | 一级黄色大片在线 | 精品亚洲永久免费精品 | 免费a爱片猛猛 | 久在线视频| 精品成人 | 91精品国产一区二区 | 久久精品一级 | 久久精品久久久 | 亚洲一区二区三区观看 | 欧美日韩精品 | 销魂美女一区二区三区视频在线 | 精品毛片| 欧美爆操 | 自拍第一页 | 成人久久18免费观看 | 国产精品一区二区三区在线 | 91精品国产综合久久婷婷香蕉 | 久久精品免费观看视频 | 秋霞在线一区 | 日韩精品在线网站 | 欧美全黄| 成人午夜视频在线观看 | 中文 日韩 欧美 | 国产美女在线观看精品 | 欧美一区永久视频免费观看 | 久久国产精品免费一区二区三区 | 日韩专区一区二区三区 | 欧美a在线| 日韩成人免费视频 | 国产一区二区三区免费 | 99精品欧美一区二区三区综合在线 | 青青草狠狠操 | 久草资源在线视频 | 美女午夜视频 |