Qt dxlib 调用与简单应用

        百度了很多都没找到,国内很少用这个库的,dxlib作者给出的g++配置不会用,dxlib库是静态库,各个库之间还有调用顺序,qt是动态库,两者共同调用出现各种错误,自己瞎弄了半个多月,才配置好.


qt5.5+vs2010+dxlib库


dxlib库      http://homepage2.nifty.com/natupaji/DxLib/


我是小白,说的好多不对的,这样配置很麻烦,应用时还有好多错误,希望有大神把简单的配置方法告诉一下。


具体配置如下:

1.静态编译qt,这一步最重要,解决动态库与静态库之间的问题,把他们都变成静态库(实在不会写代码正确调用dxlib静态库)

先安装要求的那几个软件,再检测有没有在系统变量中,具体网上有,本人安装了vs版的和mingw,两个版本,运行时找不到qmake,又重新设置了qmake,自学真是处处碰壁

配置的代码,好像少编译了很多,i5的本子用了也就两个小时

configure -confirm-license -opensource -platform win32-msvc2010 -debug-and-release -static -prefix "D:\QT\5.5-static-vs2010" -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit   

2.编译完成后在.pro文件中加入库的路径,各个静态库(有顺序!!!!!!!)

LIBS += "C:\Users\Desktop\vsku\Dxlib.lib"
LIBS += "C:\Users\Desktop\vsku\DxDrawFunc_d.lib"
LIBS += "C:\Users\Desktop\vsku\DxLibW_d.lib"
LIBS += "C:\UsersDesktop\vsku\DxUseCLibW_d.lib"
LIBS += "C:\Users\Desktop\vsku\libbulletcollision_vc6_d.lib"
LIBS += "C:\Users\Desktop\vsku\libbulletdynamics_vc6_d.lib"
LIBS += "C:\Users\Desktop\vsku\libbulletmath_vc6_d.lib"
LIBS += "C:\Users\Desktop\vsku\libtiff_d.lib"
LIBS += "C:\Users\Desktop\vsku\libpng_d.lib"
LIBS += "C:\Users\Desktop\vsku\zlib_d.lib"
LIBS += "C:\Users\Desktop\vsku\libjpeg_d.lib"
LIBS += "C:\Users\Desktop\vsku\ogg_static_d.lib"
LIBS += "C:\Users\Desktop\vsku\vorbis_static_d.lib"
LIBS += "C:\Users\Desktop\vsku\vorbisfile_static_d.lib"
LIBS += "C:\Users\Desktop\vsku\libtheora_static_d.lib"


3.最后可以导入并显示pmd,mqo,x,模型,具体调用函数里面有实例



导入的模型在qt下有的不能正常显示,但在vs却可正常显示,不知道怎么处理了,本来想把mmd的模型显示窗口单独出来,再加上一个音乐播放器,实现类似桌面宠物类的功能,再加上一个网站,上传pmd模型和vmd动作数据的这样一个想法,本人技术水平有限,只做出了大体功能,遇到上面的问题,实在不想做了,只能暂时放弃了,有想做的大神带我一下.......................................................



贴上我做的代码:

#ifndef MMMWINDOW_H
#define MMMWINDOW_H
 
#include <QMainWindow>
#include <QMainWindow>
#include<QDragEnterEvent>
#include<QMimeData>
#include<QDebug>
#include<QMediaPlayer>
#include<QDebug>
#include<QListWidgetItem>
#include<QTime>
#include<QUrl>
#include<QTimer>
#include"modeldisplaywindow.h"
 
 
 
namespace Ui {
 
class MmmWindow;
}
 
class MmmWindow : public QMainWindow
{
 
    Q_OBJECT
 
public:
    explicit MmmWindow(QWidget *parent = 0);
    ~MmmWindow();
protected:
 
    void dragEnterEvent(QDragEnterEvent *e);
    void dropEvent(QDropEvent *e);
    void getplaytimeandplay();
 
 
private slots:
    void on_pauseOrplayButton_clicked();
 
    void on_songlistWidget_itemDoubleClicked(QListWidgetItem *item);
 
    void on_nextButton_clicked();
 
    void on_lastButton_clicked();
 
    void on_timeSlider_sliderMoved(int position);
 
    void on_voiceSlider_valueChanged(int value);
 
    void timesliderchange(qint64 value);
    void timesliderrange(qint64 value);
 
    void on_modellistWidget_itemDoubleClicked(QListWidgetItem *item);
 
    void on_motionlistWidget_itemDoubleClicked(QListWidgetItem *item);
 
    void on_modeldisplayButton_clicked();
 
private:
    Ui::MmmWindow *ui;
    QStringList songlist,modellist,motionlist;
    bool playflag;
    QMediaPlayer *player;
    QListWidgetItem *lastsongitem,*lastmodelitem,*lastmotionitem;
    int lastsongnum, lastmodelnum,lastmotionnum;
    double interval;
    QTimer *test;
    QString tempdir,tempdir1,tempdirchange;
    ModelDisplayWindow *modelplay1;
    int clicknum;
    bool modeldisplayflag;
    QString a;
    QFile *temp;
 
 
};
 
#endif // MMMWINDOW_H
 
#ifndef MODELDISPLAYWINDOW_H
#define MODELDISPLAYWINDOW_H
 
#include <QWidget>
#include"DxLib.h"
#include<QString>
 
class ModelDisplayWindow : public QWidget
{
 
    Q_OBJECT
public:
    explicit ModelDisplayWindow(QWidget *parent = 0);
 
 
    void getmodel(QString modelname);
 
    int ModelHandle, AttachIndex ;
    float TotalTime,PlayTime;
    void clear();
public slots:
      void modelplay();
 
 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值