// 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/