c++ com启动进程
时间: 2023-05-11 18:00:24 浏览: 84
C语言的程序在执行时,需要通过启动进程来实现。进程是计算机中执行任务的基本单位,即是正在进行的程序。而在C语言中,启动进程是利用操作系统提供的系统调用函数实现的。
在C语言中,启动进程的主要函数是”system()“函数。这个函数可以调用系统命令,并将命令的结果返回给程序。比如,我们可以用system("ls -l")来执行”ls -l“命令。
当C程序执行system()函数时,操作系统会为其创建一个新的进程,并执行相应的系统命令。该新进程会继承原有进程的环境变量和文件句柄等内容,同样也可以对这些内容进行修改。
在使用system()函数时,需要注意一些安全问题。由于可以执行任意系统命令,所以不当的使用可能会导致系统安全问题,或者存在系统漏洞被攻击的风险。因此使用system()函数时需要谨慎,尽量避免执行未知来源的命令。
总之,启动进程是C语言程序中必要的操作之一,而使用system()函数可以非常方便地实现该操作,但需要注意安全问题。
相关问题
c++ 应用程序获取outlook联系人的详细步骤及代码
获取Outlook联系人的详细步骤及代码如下:
1. 引入Outlook头文件
```c++
#include <afxwin.h>
#include <afxdisp.h>
#include <atlbase.h>
#include <atlcom.h>
#include <atlctl.h>
#include <oleauto.h>
#include <msoutl.h>
```
2. 定义COleException异常类
```c++
class COleException : public CException
{
public:
COleException(HRESULT hr);
virtual ~COleException() throw();
// Attributes
public:
HRESULT m_hr;
// Implementation
public:
virtual BOOL GetErrorMessage(LPTSTR lpszError, UINT nMaxError,
PUINT pnHelpContext = NULL);
};
```
3. 实现COleException异常类
```c++
COleException::COleException(HRESULT hr) : m_hr(hr)
{
}
COleException::~COleException() throw()
{
}
BOOL COleException::GetErrorMessage(LPTSTR lpszError, UINT nMaxError,
PUINT pnHelpContext)
{
CString str;
str.Format(_T("0x%08x"), m_hr);
lstrcpyn(lpszError, str, nMaxError);
return TRUE;
}
```
4. 定义COutlookContacts类
```c++
class COutlookContacts
{
public:
COutlookContacts();
virtual ~COutlookContacts();
// Operations
public:
BOOL CreateDispatch(LPCTSTR lpszProgID);
void CloseDispatch();
COleException m_exception;
_Application m_app;
_NameSpace m_session;
_Items m_items;
_MailItem m_mailItem;
// Implementation
protected:
void ThrowException(HRESULT hr);
};
```
5. 实现COutlookContacts类
```c++
COutlookContacts::COutlookContacts()
{
}
COutlookContacts::~COutlookContacts()
{
CloseDispatch();
}
BOOL COutlookContacts::CreateDispatch(LPCTSTR lpszProgID)
{
COleException e;
if (!m_app.CreateDispatch(lpszProgID, &e))
{
ThrowException(e.m_hr);
return FALSE;
}
m_session.AttachDispatch(m_app.GetNamespace(_T("MAPI")));
try
{
m_session.Logon(_T(""), _T(""), TRUE, TRUE);
m_items.AttachDispatch(m_session.GetDefaultFolder(olFolderContacts)->GetItems(), TRUE);
}
catch (COleException* pEx)
{
ThrowException(pEx->m_hr);
pEx->Delete();
return FALSE;
}
return TRUE;
}
void COutlookContacts::CloseDispatch()
{
m_items.ReleaseDispatch();
m_session.ReleaseDispatch();
m_app.ReleaseDispatch();
}
void COutlookContacts::ThrowException(HRESULT hr)
{
m_exception.m_hr = hr;
THROW(m_exception);
}
```
6. 使用COutlookContacts类获取联系人信息
```c++
COutlookContacts outlook;
if (outlook.CreateDispatch(_T("Outlook.Application")))
{
int count = outlook.m_items.GetCount();
for (int i = 1; i <= count; i++)
{
_ContactItem contactItem = outlook.m_items.GetItem(COleVariant((short)i));
CString name = contactItem.GetFullName();
CString email = contactItem.GetEmail1Address();
// Do something with the name and email
}
outlook.CloseDispatch();
}
else
{
AfxMessageBox(_T("Failed to create Outlook session."));
}
```
注意:需要在项目属性中的“C/C++” -> “预处理器” -> “预处理器定义”中添加“_ATL_APARTMENT_THREADED”宏定义。另外,需要在程序运行时保证Outlook已经启动。
Microsoft Visual C++ 2019安装
Microsoft Visual C++ 2019是一款用于开发C++应用程序的集成开发环境(IDE)。它提供了一系列工具和库,帮助开发人员编写、调试和部署高性能的C++代码。
安装Microsoft Visual C++ 2019的步骤如下:
1. 首先,你需要从Microsoft官方网站下载Visual Studio 2019安装程序。你可以在https://visualstudio.microsoft.com/zh-hans/downloads/ 上找到下载链接。
2. 运行下载的安装程序。在安装程序中,你可以选择安装的组件。确保选择了"C++桌面开发"工作负载,这将包括Visual C++编译器和其他相关工具。
3. 在安装选项中,你可以选择安装位置和其他设置。根据自己的需求进行选择,并点击"安装"按钮开始安装过程。
4. 安装过程可能需要一些时间,取决于你的计算机性能和所选择的组件。请耐心等待直到安装完成。
5. 安装完成后,你可以启动Visual Studio 2019,并开始使用Microsoft Visual C++ 2019进行C++开发。