wxWidget vs2010 环境配置

引言:

     wxWidget的环境配置其实就是,将wxWidget的库头文件、静态库、动态库、引入你的工程、另外配置一些 wxWidget 特定的预处理宏定义。所以在你看到这个环境配置的时候不要想得太复杂,另外如果你配置完后,编译测试程序是如果出现错误,那么主要是如下两种情况导致:

     1、特定的宏没有预定义, 你要看你自己使用了哪些特殊的库,来判断增加了。

     2、使用的静态库或动态库没有引入,同上根据自己的使用情况去增加。

     3、如果你编译通过了,但是运行提示 xxxx.dll 找不到,那就是由于 dll 文件没有放到 运行目录下(一般release 后 库文件是要和 .exe 在一起的), 当然如果你不想再编码的时候总是去移动的话,可以选择在工程属性 >> 配置属性 >> 调试 >> 工作目录  >> 设置你自己的存放 库文件(*.lib *.dll) 的路径。

   

正文: vs2010 配置最基本的 GUI 环境

     1、wxWidget 下载,

         1.1 可以到wxWidget 官网 http://www.wxwidgets.org/downloads/  下载源码

         1.2 sourceForge 下载现成的编译好的库 http://sourceforge.net/projects/wxwindows/files/2.9.4/binaries/ ,注意这里要下载 一个 头文件的包和一个库文件的包如:wxWidgets-2.9.4_Headers.7z+wxMSW-2.9.4_vc100_Dev.7z

    2、vs2010 创建一个空工程,个人建议工程文件结构:

         wxWidget  

          >>project   //存放工程文件

          >> lib          //存放引用库文件,比如现在的 wxWidget ,我是将 wxWidgets-2.9.4_Headers.7z 包中的include 和wxMSW-2.9.4_vc100_Dev.7z >> vc100_dl 下的所有文件和 放在lib下。

          >> src         //你自己的头文件

          >> out        //工程的输出文件 如 .exe

     3、配置工程

         3.1 工程 >> 属性 >> 配置属性 >> 常规 >> 输出目录 >> 设置上面的 out 目录 ( 可选操作)

         3.2 工程 >> 属性 >> 配置属性 >> c/c++ (如果没有这个选项,请先添加一个cpp文件就有了) >> 常规 >> 附加包含目录 >> 设置 wxWidget 的 头文件所在目录 (include目录)路径、wxWidget库文件所在目录下的 mswu / mswud (多个d代表debug)

         如果你是在第二步中将 wxWidget 包按我的方式放的。就是  添加  1、 你的工程路径/wxWidget/lib/mswu 和 你的工程路径/wxWidget/lib/include

         3.3 工程 >> 属性 >> 配置属性 >> c/c++ (如果没有这个选项,请先添加一个cpp文件就有了) >> 预处理器 >> 预处理定义 添加 _WINDOWS 和  WXUSINGDLL

        3.4  工程 >> 属性 >> 配置属性 >> 连接器 >> 附加库目录 >> 增加 .dll 和 .lib 文件所在目录, 我是   你的工程路径/wxWidget/lib

        3.5 工程 >> 属性 >> 配置属性 >> 连接器 >> 输入 >> 附加依赖项 >> 添加 wxmsw29ud_core.lib  wxbase29ud.lib

        3.6 工程 >> 属性 >> 配置属性 >> 连接器 >> 系统 >> 子系统 >> 窗口系统

   4、测试代码:

// wxWidgets "Hello world" Program
// For compilers that support precompilation, includes "wx/wx.h".
#include <wx/wxprec.h>
#ifndef WX_PRECOMP
#include <wx/wx.h>
#endif
class MyApp: public wxApp
{
public:
    virtual bool OnInit();
};
class MyFrame: public wxFrame
{
public:
    MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
private:
    void OnHello(wxCommandEvent& event);
    void OnExit(wxCommandEvent& event);
    void OnAbout(wxCommandEvent& event);
    wxDECLARE_EVENT_TABLE();
};
enum
{
    ID_Hello = 1
};
wxBEGIN_EVENT_TABLE(MyFrame, wxFrame)
    EVT_MENU(ID_Hello,   MyFrame::OnHello)
    EVT_MENU(wxID_EXIT,  MyFrame::OnExit)
    EVT_MENU(wxID_ABOUT, MyFrame::OnAbout)
wxEND_EVENT_TABLE()
wxIMPLEMENT_APP(MyApp);

bool MyApp::OnInit()
{
    MyFrame *frame = new MyFrame( "Hello World", wxPoint(50, 50), wxSize(450, 340) );
    frame->Show( true );
    return true;
}

MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
    : wxFrame(NULL, wxID_ANY, title, pos, size)
{
    wxMenu *menuFile = new wxMenu;
    menuFile->Append(ID_Hello, "&Hello…\tCtrl-H",
        "Help string shown in status bar for this menu item");
    menuFile->AppendSeparator();
    menuFile->Append(wxID_EXIT);
    wxMenu *menuHelp = new wxMenu;
    menuHelp->Append(wxID_ABOUT);
    wxMenuBar *menuBar = new wxMenuBar;
    menuBar->Append( menuFile, "&File" );
    menuBar->Append( menuHelp, "&Help" );
    SetMenuBar( menuBar );
    CreateStatusBar();
    SetStatusText( "Welcome to wxWidgets!" );
}

void MyFrame::OnExit(wxCommandEvent& event)
{
    Close( true );
}

void MyFrame::OnAbout(wxCommandEvent& event)
{
    wxMessageBox( "This is a wxWidgets' Hello world sample",
        "About Hello World", wxOK | wxICON_INFORMATION );
}

void MyFrame::OnHello(wxCommandEvent& event)
{
    wxLogMessage("Hello world from wxWidgets!");
}
编译运行 就可以看到一个含菜单,状态栏的 frame 了
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值