C ++程序E0079期望类型说明符

时间:2017-12-14 15:09:36

标签: visual-studio c++-cli

我有一个来自USB 3.0接口供应商的c ++示例项目,名为来自cypress fx3的流光应用程序。我想先让它运行,然后看看应用程序背后的潜力,但是当我在Visual Studio 2017中构建时,我得到了一整套错误。

我在主文件streamer.cpp中收到错误,向我显示错误:

  

错误(活动)E0079期望类型说明符第26行   错误(活动)E1986指向C ++ / CLI ref类或接口>类的普通指针不允许第28行

代码中的

#include "stdafx.h"
#include <windows.h>

// windows.h includes WINGDI.h which
// defines GetObject as GetObjectA, breaking
// System::Resources::ResourceManager::GetObject.
// So, we undef here.
#undef GetObject

#include "Streamer.h"

#undef MessageBox

using namespace System::Windows::Forms;  
using namespace Streams;

int APIENTRY _tWinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPTSTR    lpCmdLine,
                   int       nCmdShow)
{
System::Threading::Thread::CurrentThread->ApartmentState = 
System::Threading::ApartmentState::STA;

try
{
    Application::Run(new Form1());   // THIS IS LINE 26
}
catch (Exception *e)  // THIS IS LINE 28
{
    MessageBox::Show(e->StackTrace,e->Message);
}

return 0;
}

表格1是streamer.h的一部分。在流媒体中,误差量超过400。 大多数情况下,即使对于私有和公共语法,编译器也会告诉我标识符(E0040)。然后“this”运算符导致错误:

  

错误(有效)E0258'this'只能在非静态成员中使用&gt;功能

我试图让它运行起来:
- 通过Windows系统控制中的安装例程安装缺少的Windows sdk版本8.1 - 将公共语言运行时支持更改为/ clr
- 包括所有缺少的头文件,编译器现在找到这些头文件。

在我看来,源项目中缺少一些东西。你能把我推向正确的方向吗?

1 个答案:

答案 0 :(得分:0)

catch (Exception *e)

这是一个非托管的例外。您需要捕获托管例外:

catch (Exception^ e)