我即将开始一个新项目.有些决定是我无法控制的:使用WPF和OpenGL是其中的一部分.
但是,我已将OpenGL选项缩小为两个:OpenTK或SharpGL.SharpGL有一个WPF控件,而OpenTK只有一个Windows窗体控件,这使我必须将它嵌入到Windows窗体主机中: - /虽然我不介意空域限制,但我确实希望有不错的性能,因为我正在构建一个实时应用程序.不是游戏,但仍然是实时.
与使用具有"纯"WPF控件的SharpGL相比,我的程序在Windows窗体上使用OpenTK会带来多少性能影响?
经过一天的文字和隐喻的撞击,我恳求帮助:
我有一个非托管的C ++项目,该项目被编译为DLL。我们称其为CPP Project。当前,它在不受管的环境中工作。此外,我还创建了一个WPF项目,称为WPF项目。该项目是一个简单的项目,目前几乎为空。它包含一个窗口,我希望它使用Project 1中的代码。为此,我创建了一个CLR C ++项目,该项目应称为Interop Project,也可以编译为DLL。
为简单起见,我将附加一些我已经总结为基础的基本测试代码。
CPP项目具有以下两个测试文件:
测试器
#pragma once
extern "C" class __declspec(dllexport) NativeTester
{
public:
void NativeTest();
};
Run Code Online (Sandbox Code Playgroud)
测试器
#include "tester.h"
void NativeTester::NativeTest()
{
int i = 0;
}
Run Code Online (Sandbox Code Playgroud)
Interop项目具有以下文件:
互操作库
#pragma once
#include <tester.h>
using namespace System;
namespace InteropLib {
public ref class InteropProject
{
public:
static void Test()
{
NativeTester nativeTester;
nativeTester.NativeTest();
}
};
}
Run Code Online (Sandbox Code Playgroud)
最后,WPF项目有一个使Interop项目不完整的窗口:
MainWindow.xaml.cs
using System;
using System.Windows;
using InteropLib;
namespace AppGUI
{
public …Run Code Online (Sandbox Code Playgroud)