CPlusPlus之DLL分析

使用vcpkg安装各类C++库很方便,但是在使用vcpkg安装osg、osgearth后,使用如下程序测试osg和osgearth,出现了一个小问题,3D模型不显示,说是找不到插件。

刚开始以为是vcpkg安装osg、osgearth出了问题,后面发现将vcpkg中编译生成的osg的plugin放到测试程序所在目录,发现能加载3D模型了,但是渲染纹理失败。

于是自己编译osg源码,发现测试程序能加载3D模型。最终结论是vcpkg编译安装osg了问题。此外,可参考process explorer 查看句柄或者加载的dll,分析测试程序加载的osg插件。

1
2
3
4
5
6
7
8
9
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>

int main(int argc, char *argv[])
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
return viewer.run();
}

参考链接

  1. process explorer 查看句柄或者加载的dll,by yasi_xi.
  2. osg程序中osgDB::writeNodeFile和osgDB::readNodeFile总是失败,by 妙为.