导航:首页 > 源码编译 > vc编译程序怎么用

vc编译程序怎么用

发布时间:2022-03-08 15:47:13

⑴ 如果用 VC++ 编译 C++ 程序

win32 Console Application
剩下的 正常操作即可

⑵ 如何用 VC++ 编译 C++ 程序

File->New->Files->C++ Source File,写好文件名,OK.
然后在右边的空白地方写程序

⑶ 怎样用vc++2008编译C程序

新建工程,选择Win32控制台程序.
再点添加新项目.新建一个cpp文件,打代码,就行了.
按ctrl+5编译执行

⑷ vc2010怎么进行c语言编译

1,在windows桌面中Visual Studio打开软件并新建项目。

⑸ 请问如何用VC++的编译器编译C的程序

启动VC++6.0新建一个Win32 Console Application工程,建好后,新建-文件-C++ source File,在头部加上
#include <stdio.h>
#include <stdlib.h>
然后就可以编译C语言写的了

⑹ 如何用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。

⑺ 怎么用vc来编译c语言程序

和TC有点区别,要先建工程才可以运行

文件-> 新建->工程(project)下的->win32 console Application
输入文件名和路径

在点 文件->新建->文件(file)下的->C++ source file

就可以写了,其他和TC没区别了

⑻ 怎样使用VC软件编译并运行C语言程序

使用VS2008编译C程序,本文中使用VS2008 professional版本。
1.打开VS2008,这就不用多说了吧
2.打开了VS2008的主界面,然后选择,文件→新建→项目
弹出如图对话框

3、在项目类型中选择VC++→win32 然后在右侧模板中选择win32控制台应用程序,再在下面输入一个名称(项目名称,不用带.C)选择保存位置后确定好了,弹出个对话框,不管它,下一步

⑼ vc++程序在c的编译器中如何执行

c程序是可以直接在vc++中编译的,你保存为**.c然后用vc打开编译就行了.
c++程序不可以在c环境中运行!!

⑽ 怎么用VC++2008编译C语言程序

你可以用C++的编译器的~

阅读全文

与vc编译程序怎么用相关的资料

热点内容
电火花线切割怎么编程 浏览:772
linux查看驱动命令 浏览:992
苏州车辆解压代办大概多少钱 浏览:585
租房app什么比较靠谱 浏览:672
运动app如何测量运动心率 浏览:778
苹果手机文件夹图标背景图透明度 浏览:728
辽宁省解压旅游 浏览:269
pdf怎么把部分图纸拷到文件夹 浏览:697
让程序员崩溃的40个瞬间 浏览:545
macbookair修改文件夹名称 浏览:431
iphone如何快速删除所有app 浏览:237
java高级编程pdf 浏览:884
编译的时候报错 浏览:387
安卓音量键怎么锁定 浏览:29
把pdf合并在一起 浏览:659
编程需要啥样的电脑 浏览:968
把word2003转换成pdf 浏览:469
androidbitmap显示图片 浏览:294
工具栏打印命令大全 浏览:784
铜仁人工智能编程 浏览:396