c# - 在我的 CLR 项目中添加包含使得 WLR 无法在启用/clr 的情况下进行编译

标签 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++,代码片段来 self 的解决方案中的 c++/clr 项目。

我的问题是我不太了解 WRL 错误?所以我不明白如何让它运行。而且我需要游戏包含来初始化引擎以使其在 Windows 窗体中运行。

最佳答案

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

使用 WRL 编译需要 /ZW选项。而且这种语言扩展与 /CLR 完全不兼容。这是使用 .NET 所必需的。

WRL 比 .NET 更接近 COM。

关于c# - 在我的 CLR 项目中添加包含使得 WLR 无法在启用/clr 的情况下进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45693915/

相关文章:

c++ - 如何将 ASCII char 转换为其 ASCII int 值?

c++ - 反转 x 轴的透视投影 (glm::perspective)

c++ - 哪个 C++ 单元测试框架不需要我将应用程序构建为库?

c# - LuaInterface - RegisterFunction 对象引用

c# - 修改属性后列出顺序更改

c# - 从测试单元显示 WPF 窗口

c++ - 隐藏自动完成弹出窗口的最正确方法是什么?

c# - Visual Studio 2008 中 C# 项目中的 C++ 项目引用

visual-studio - 如何在 Visual Studio 中关闭构建定义的缓存

c# - 如何在 C# 中用它打开特定文件?