从C++自动执行Microsoft项目
Automate Microsoft Project from C++
我们正在尝试读取一个 .使用C++代码序列的 MPP 文件。以下代码引发"访问冲突"异常,尽管它看起来应该可以工作。
#include "stdafx.h"
int main()
{
::CoInitialize(NULL);
_MSProjectPtr pApp;
auto hr = pApp.CreateInstance(__uuidof(Application));
variant_t toOpen = _T("d:\work\Test.mpp");
variant_t readOnly = true;
variant_t merge = false;
auto status = pApp->FileOpen(toOpen, readOnly, merge, vtMissing, vtMissing, vtMissing, vtMissing, vtMissing, vtMissing, vtMissing,
vtMissing, MSProject::pjDoNotOpenPool);
auto pProject = pApp->GetActiveProject();
auto pSummaryTask = pProject->GetProjectSummaryTask();
auto summaryStart = pSummaryTask->GetStart(); // Access violation raised by this instruction
auto pTasks = pProject->Tasks; // This call succeeds.
auto count = pTasks->Count; // Access violation raised by this instruction.
// Fails at this line with MSP 15.0.4805.1001 (in About box, 15.0.4569.1506 in Control Panel)
pApp->Quit(MSProject::PjSaveType::pjDoNotSave);
::CoUninitialize();
}
文件 stdafx.h 的内容如下:
#pragma once
#include "targetver.h"
#include <tchar.h>
#import "C:Program Files (x86)Microsoft OfficeOffice16MSPRJ.OLB" auto_search
using namespace MSProject;
我们缺少初始化步骤吗?
我也有这个问题,最后用"使用可视C++类向导从Microsoft Office 类型库生成"包装类"修复它。
CMSProject app;
app.CreateDispatch(L"MSProject.Application");
auto b = app.FileNew(vtMissing, vtMissing, vtMissing, vtMissing);
app.SetVisible(TRUE);
CIProjectDoc p = (LPDISPATCH)app.GetActiveProject();
CTasks ts = p.get_Tasks();
auto n = ts.get_Count();
ts.Add((variant_t)L"abc", vtMissing);
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法在 CLion 中构建 C++ 项目
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 欧拉项目#8答案是大以获得有效答案
- 如何在视觉c ++项目中添加箭头键作为修饰键Microsoft
- VS 2017 构建工具失败,出现错误 MSB4019:找不到导入的项目"D:Microsoft.Cpp.Default.props"
- 对于我在 Microsoft Visual C++ IDE (2005 或更高版本)的本机 win32 项目中编写的应用
- 未找到导入的项目"C:Microsoft.Cpp.Redirect.14.props"
- 将现有的.h和.c文件添加到Microsoft Visual Studio 2010 c++项目中
- 从C++自动执行Microsoft项目
- 在 Visual Studio 2015 的 dll 项目中包括自己的资源文件时出现链接器错误Microsoft
- Microsoft Visual Studio-项目错误
- Microsoft::VisualStudio::TestTools::UnitTesting来测试c++项目
- Microsoft Visual c++ 6.0销毁项目
- 我如何在Microsoft Visual c++ 2010 Express项目中创建本地数据库
- Microsoft Visual Studio 2008正在并行地构建依赖于它们所依赖的项目
- 在Microsoft Visual C++中,光线跟踪器应该是什么类型的项目
- Microsoft Visual Studio中的项目目录在哪里?