在我的CLR项目中添加包含无法使用/ clr启用WLR编译

时间:2017-08-15 13:31:36

标签: c# c++ visual-studio c++-cli clr

// This is the main DLL file.

#include "stdafx.h"

#include "Tga2DCLI.h"
//#include <Game.h>
#include <Windows.h>
Tga2DCLI::Tga2DGame::Tga2DGame()
{
    //myGame = new CGame();
}

void Tga2DCLI::Tga2DGame::Init(System::String ^ aVersion, System::IntPtr aHWND)
{
    HWND convertedHWND = reinterpret_cast<HWND>(aHWND.ToInt64());
    //myGame->Init(L"", convertedHWND);
}

如果未注释#include <Game.h>,则会导致错误  C1189 #error:无法使用/ clr选项启用WRL

我试图创建一个Windows窗体(C#),它显示游戏引擎在C ++中运行的游戏引擎,代码snippit来自解决方案中的c ++ / clr项目。

我的问题是我真的不了解WRL错误吗?所以我不明白如何让它运行。我需要Game include来启动引擎以使其在Windows窗体中运行。

1 个答案:

答案 0 :(得分:1)

Windows运行时C ++模板库(WRL)与C ++ / CLI完全不兼容。

使用WRL进行编译需要/ZW选项。此语言扩展与使用.NET所需的/CLR完全不兼容。

WRL比COM更接近COM。