導航:首頁 > 軟體知識 > vc寫個程序如何用vc編

vc寫個程序如何用vc編

發布時間:2023-01-01 20:55:03

❶ 用VC++6.0編寫C語言程序具體步驟

1.首先是打開軟體,進入界面後,單擊"文件",選擇"新建",在工程一欄中選擇"Win32ConsoleApplication",點擊"確定",直到回到原來的界面;
2.繼續單擊"文件",選擇"新建",然後在彈出的窗口中選擇"文件",在下面的欄目中選擇"C++SourceFile",單擊"確定";
3.完成代碼的書寫;
4.在"組建"一欄中選擇"編譯",繼續在"組建"一欄中選擇"全部重建",最後選擇"執行";
這樣就是一個簡單的在空白工程下建立的一個小程序^希望對你有些幫助.

❷ 怎麼用VC2010編寫一個C程序

我們編寫C程序一般都是用Tubro C編輯器,那麼如何用VC2010編寫C程序呢?下面我給大家分享一下。

工具/材料

VC2010

❸ 如何用vc編寫程序

第一篇

為Non-COM程序添加對象模型(2)

初始化對象模型

創建一個新的組件實例,調用Load方法來獲得一對結果。首先,連接到記事本運行中的拷貝。其次,在記事本窗口中打開一個已存在的文檔或創建一個空文檔。

與記事本相結合,需要奪取主窗體的句柄和覆蓋了整個客戶端區域的編輯控制項的句柄。可以用C++ FindWindow API函數檢索第一個打開的並且和記事本的Windows類名「notepad」相匹配的窗口(此後台信息已經可以由Spy++提供,它是一個Visual Studio工具,可以透視Windows的隱私),可以使用以下的C++代碼:

STDMETHODIMP

CNotepadApplication::Load(BSTR bstrFile)

{

m_hwnd = FindWindow(_T("notepad"), NULL);

if (!IsWindow(m_hwnd))

_StartApp(OLE2T(bstrFile));

Load方法嘗試找到一個運行中的記事本實例。如果成功,它忽略輸入的文件名。否則,它產生nodepad.exe,並用命令行傳遞bstrFile參數。

這是僅有的可能的方法來做到這些了。可以更改Load方法的行為遵守其他的規則。然而,需要注意的是,在程序的用戶介面中隱蔽地載入一個文本文件是通過命令行來實現的。否則,必須求助File菜單中的Open命令,但這就不是自動和隱蔽的了。

一旦找到了記事本主窗體的句柄,就可以利用它並使用C++代碼檢索子編輯控制項。

m_hwndEdit = FindWindowEx(

m_hwnd, NULL, _T("edit"), NULL);

記事本的結構提供了一個類名為「notepad」的窗口,它的客戶區域被一個編輯控制項占據——一個類名為「edit」的窗口。FindWindowsEx API函數檢索第一個類名為「edit」的窗口,它是m_hwnd的子女。

下一步,在COM對象中創建一個屬性,它描述子編輯控制項的內容。調用名為Text的可讀寫屬性。給它一個文本內容,它將會立即影響到記事本的緩沖區。

Set npad = CreateObject("NotepadOM.Application")

npad.Load ""

npad.Text = "Sample text"

在前面的代碼中,我們建立了一個新的未明名的文本文檔,它的內容已經被賦予了某個字元串。當然,可以使用Text屬性連接文本到其他變數中。

npad.Text = "Sample text"

npad.Text = npad.Text & vbCrLf & "for the article"

即使記事本是個SDI程序,也可能需要像清晰的對象調用過程那樣公開文本內容,例如文檔操作。這符合更清楚、更雅緻的模型設計,但是它仍需要為架構設計帶來多餘的復雜性。為什麼創建一個新的ATL對象僅僅是為了優化一些文本相關的功能呢?

在實現Text屬性時,利用了Windows32編輯控制項的一個鮮為人知的特性。所有Windows32控制項不能跨進程訪問。例如,不能請求另一個應用程序的rich edit box以字元串類型返回它的內容。產生這個問題的原因是,任何內存地址只在進程管理范圍內才有效。這個規則有少部分例外。

所有的Windows標准控制項buttons、listboxes、和edit controls或者其他控制項都不違背這項規則。它們的內容以在進程間被任意地讀或寫。這功能在Windows 95時為了保持向後兼容現存的Windows3x程序就出現了,它用進程間子類化。此同樣存在於Windows XP和Windows 2000中。

可以使用一些消息,如WM_GETTEXT和WM_SETTEXT來獲得或寫入文本框的內容而不顧實際進程的相關情況。同樣,當運行VBS腳本時,實際上已涉及到兩個不同的進程,記事本和wscript.exe,它們控制著VBS腳本。用C++實現此Text屬性,代碼如下:

STDMETHODIMP

CNotepadApplication::get_Text(BSTR *pVal)

{

USES_CONVERSION;

int nLen = 1 + SendMessage(m_hwndEdit, WM_GETTEXTLENGTH, 0, 0);

LPTSTR pszBuf = new TCHAR[nLen];

SendMessage(m_hwndEdit, WM_GETTEXT, nLen, (LPARAM) pszBuf);

*pVal = SysAllocString(T2OLE(pszBuf));

delete [] pszBuf;

return S_OK;

}

STDMETHODIMP

CNotepadApplication::put_Text(BSTR newVal)

{

USES_CONVERSION;

SendMessage(m_hwndEdit, WM_SETTEXT, 0, (LPARAM) OLE2T(newVal));

return S_OK;

}

添加編輯函數

訪問編輯控制項的句柄可以弄清編輯所需的一串函數——特別是關於文本選擇的部分。可以很容易地添加方法選擇所有的緩沖區中的文本或限制為某個區域選擇。SelectAll和SelectText用C++實現,方法如下:

STDMETHODIMP

CNotepadApplication::SelectText(

int nFrom, int nTo) {

SendMessage(m_hwndEdit, EM_SETSEL, nFrom-1, nTo-1);

return S_OK;

}

通過EM_SETSET消息可以很容易地在編輯控制項中實現文本選擇。在Windows32中,第一個可選的字元是在0位置,但是相關方法使它從1開始。而指定-1~0的范圍可以選擇整個文本。

編輯框中正文的字體名稱由某個注冊值lfFaceName決定,在以下位置可以找到此鍵值:

HKEY_CURRENT_USER

\Software

\Microsoft

\Notepad

將它設為想要用的鍵值。記事本在啟動之前讀取這個設置。為了使它生效,請記住在調用Load之前設置好它。

set npad = CreateObject("NotepadOM.Application")

npad.Font = "Lucida Console"

npad.Load "readme.txt"

當一個互動式的用戶單擊菜單時,例如「File | Open」,主窗體發送WM_COMMAND消息,其中WPARAM參數被賦予串聯的兩個字。低位字是命令的ID,高位字包含消息碼或表示觸發的值——鍵盤加速鍵或菜單。用C++調用一個菜單命令、發送一個WM_COMMAND消息到記事本,代碼如下:

SendMessage(m_hwnd, WM_COMMAND,

MAKELONG(nCommand,0), 0);

必須用特殊的工具為nCommand參數指出正確的值,就像Spy++。既然這樣,我稍微修改文章中所描述的DLL版本。「Hook,Line and Sinker」〔Visual C++ Developers Journal February 2001〕。此常式產生並鉤住,然後創建記事本的子類。它過濾窗口接收到的所有消息,並在命令代碼是WM_COMMAND時彈出對話框顯示command ID。

if (uiMsg == WM_COMMAND) {

// Get the value of LOWORD(wParam)

}

需要添加的僅僅是存儲或顯示命令代碼的程序。檢驗主記事本的菜單命令ID。只要給出了這個,調用菜單命令就很簡單了,代碼如下:

const NOTEPAD_FILE_OPEN = 10

Set npad = CreateObject("NotepadOM.Application")

npad.InvokeMenu NOTEPAD_FILE_OPEN

如果要編程關閉運行中的實例,需要想到在記事本窗口上調用DestroyWindows。然而,DestroyWindows只能在屬於同一進程的窗口的進程中調用。要卸載記事本,用C++簡單的發送一條退出代碼的WM_COMMAND消息:

SendMessage(m_hwnd, WM_COMMAND,

MAKELONG(28,0), 0);

有些功能是無法從非自動化的程序中獲得的。例如,打開文件和另存為是不可能實現的,因為程序並不通過消息或API暴露這些代碼,需要編寫代碼來存儲它。舉個例子來說,在記事本中,存儲運行時結果需要響應Save或Save As命令,但是它們都是互動式的命令,需要用戶單擊OK按鈕或輸入一個新的文件名。這是原解決方案固有的限制。

最近,在一個客戶中碰到一個相似的問題,我應要求在不同環境處理一些傳統的Windows程序(其中一個是記事本)。本質上來說,Win32 made-to-measure應用程序獲得TCP/IP通道指令並轉換它們以執行本地的Windows應用程序。通過Windows32消息請求服務的方式和在此所做的很相似。下一目標是用COM對象模型封裝此通信模式。

關於作者

Dino Esposito是Wintellect的ADO.NET專家和培訓師並且在羅馬當咨詢師。Dino是《Building Web Solutions With ASP.NET and ADO.NET》(微軟出版)一書的作者,是VB-2-The-Max (http://www.vb2themax.com <http://www.vb2themax.com>)的創始人。可通過[email protected]聯繫到Dino。

❹ 如何用Microsoft Visual C++6.0編寫程序

用Microsoft Visual C++6.0編寫程序的具體步驟如下:

1、首先,我們打開Microsoft Visual C++6.0軟體,在菜單欄中選擇文件,然後選擇新建,在彈出的新窗口中,選擇文件欄下的C++ Source File,接著輸入文件名,最後點擊確定,如下圖所示。

參考資料

網路-Microsoft Visual C++ 6.0

❺ 怎樣使用VC軟體編譯並運行C語言程序

使用VS2008編譯C程序,本文中使用VS2008 professional版本。
1.打開VS2008,這就不用多說了吧
2.打開了VS2008的主界面,然後選擇,文件→新建→項目
彈出如圖對話框

3、在項目類型中選擇VC++→win32 然後在右側模板中選擇win32控制台應用程序,再在下面輸入一個名稱(項目名稱,不用帶.C)選擇保存位置後確定好了,彈出個對話框,不管它,下一步

❻ 怎樣使用VC軟體編譯並運行C語言程序

大致步驟如下:

1、打開軟體,界面為

10、至此一次編寫執行結束了

希望可以幫到你,如果滿意請採納!

❼ 如何用vc++6.0製作一個用c++編譯的程序

下面的例子是用string對象的
如果想要用數組,你可以參考下面的來改
不懂在追問

#include
<string>
#include
<iostream>
using
namespace
std;
int
check(string
str,char
c);
void
main()
{
string
str;
char
c;
cin>>str;
cin>>c;
cout<<check(str,c);
}
int
check(string
str,char
c)
{
int
num=0;
for(string::size_type
i=0;i!=str.size();i++) //string::size_type
也是相當於
int型
{
if
(str[i]==c)
num++;
}
return
num;
}

❽ 怎麼用VC++編寫C語言的程序

進入主程序,點擊FILE(也就是新建)點擊工程,選擇win32application,輸入工程名字;下一步選擇空工程,最後點擊OK。這樣就新建一個工程了。C++是兼容C程序的,也就是說C程序都可以以C++的文件編譯運行,寫源文件就用C++source
file寫C程序即可

閱讀全文

與vc寫個程序如何用vc編相關的資料

熱點內容
全程陪同領導信息怎麼發 瀏覽:815
有什麼識別菌的小程序 瀏覽:850
附近人如何群發信息 瀏覽:653
福建玉器市場什麼地方 瀏覽:202
如何強行停止某程序 瀏覽:752
9針數據線介面是什麼 瀏覽:950
棗庄技術員證書怎麼考有用嗎 瀏覽:634
有正負的波動數據用什麼分析 瀏覽:309
湛江有哪些水產品種 瀏覽:384
數學十幾減九的數學信息是什麼 瀏覽:874
產品銷售分享會怎麼開頭 瀏覽:380
錯版幣怎麼鑒定拍賣交易 瀏覽:699
信息化建設是一個什麼樣的工作 瀏覽:666
怎麼看塑料產品能不能降解 瀏覽:51
如何整合金融資產交易所 瀏覽:974
物聯網發展核心技術是什麼 瀏覽:494
什麼是電網企業代理購電 瀏覽:304
玉石交易大廳系統開發需要多少錢 瀏覽:687
醫療信息交換標準是什麼意思 瀏覽:939
如何提高叉車技術 瀏覽:99