一、osg环境
osg3.4.0版本
64位
使用VS2015编译的库
编程使用VS2019环境
二、封装dll步骤
1、新建CLR空项目(.net framwork),此处注意不是.net core版本,建议选择.net framework 3.5框架,此处框架近可能选择低一点,否则后期调用容易出错
2、新建头文件mytest.h
#pragma once #include<osgViewer/Viewer> #include<osgDB/ReadFile> #include<osgViewer/ViewerEventHandlers> #include<osgGA/StateSetManipulator> #include<osg/Material> #include<osg/Light> #include<osg/LightSource> namespace mytest { public ref class View { public: int setSceneData(); }; }
3、新建源文件mytest.cpp
#include "mytest.h" int::mytest::View::setSceneData() { osgViewer::Viewer* viewer = new osgViewer::Viewer; osg::Group* group = new osg::Group; group->addChild(osgDB::readNodeFile("cow.osg")); viewer->setSceneData(group); return viewer->run(); }
4、右键项目-属性(接下来是osg的常用配置,以下配置根据osg版本选择平台,本文是64位osg,所以配置X64平台)
(1)VC++目录,录入osg的包含目录和库目录
(2)C/C++,预处理-预处理器定义-添加 WIN32; 此处务必添加,否则生成失败
(3)链接器-输入-附加依赖项,输入
OpenThreadsd.lib osgd.lib osgDBd.lib osgUtild.lib osgGAd.lib osgViewerd.lib osgTextd.lib
(4)常规-配置类型,选择动态库(.dll)
(5)OK,生成dll文件
5、新建C#控制台程序,建议选择.net framework4.5版本及以上,否则报错(据说此处的版本必须高于C++/CLI项目的版本)。添加引用上步dll,入口文件Process.cs文件添加下列代码,注意引用命名空间
View view = new View(); view.setSceneData();
6、生成,结束。
已有 4501 位网友参与,快来吐槽:
发表评论