导航:首页 > 软件知识 > 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编相关的资料

热点内容
玉石交易大厅系统开发需要多少钱 浏览:685
医疗信息交换标准是什么意思 浏览:937
如何提高叉车技术 浏览:97
欠钱最少多少可以走法律程序 浏览:583
哪个行业小程序比较多 浏览:16
楚留香新衣服为什么不能交易 浏览:958
招投标信息在哪些地方发布 浏览:72
如何将程序员说的高大上 浏览:390
海鲜鱿鱼仔零食批发市场都有哪里 浏览:973
什么叫aig技术 浏览:505
上海阿里法拍房信息在哪里查询 浏览:899
新产品商标怎么处理 浏览:65
房产交易二套商贷额度是多少 浏览:571
产品透明度如何检测 浏览:618
什么产品能提高性功能 浏览:263
宁波租房信息哪个网站最好 浏览:929
怎么强行关闭状态栏程序 浏览:150
看不懂程序代码怎么回事 浏览:951
什么东西不是实际交易信息 浏览:197
如何获得数据的公式 浏览:254