论文库
  • 首页
  • 论文发表
  • 论文宝库
  • 期刊大全
  • 新闻中心
  • 著作出书
  • 发表流程
  • 关于我们
  • 诚心通道
  • 联系我们
  • 当前位置:主页 ->论文库 ->计算机论文
  • C++语言下的跨平台软件开发

    2015年5月19日 16:32 作者:罗云青


    ^w Z3V/g8z$Nx-D @0C++
    语言下的跨平台软件开发中国论文网R8Y6Y#]*|

    罗云青

    'T%Vpd MrG0

    (贵阳护理职业学院  贵州省贵阳市  550081 )中国论文网'jB ^D"Xdu

    摘要:本文通过归纳总结目前C++程序设计语言下跨平台软件开发的相关技术,介绍了C++语言在计算机编程设计领域的优势和跨平台设计思想的提出与实现,运用几个实例说明跨平台软件开发在实践中的广泛应用。C++语言的可移植性和跨平台开发的项目部署,在当下主流的编程软件中已经被广泛采用,最后结合笔者见解对跨平台软件开发提出新的展望。中国论文网3T-Vc@z%Z_+U

    关键词:C++ 开发 跨平台 软件

    !x4\.K3@dP0

    一、C++语言的优势领域

    &F0o1mq3O ml0

    C++语言在某些领域有着很高的地位,像科学数值计算中的数据挖掘,游戏开发里面的图形图像设计,以及在高级系统设计中的电子邮件系统,数据库系统等等都有C++语言的身影。同时,混合系统的设计和通用系统的设计问题都是C++所要解决的高层次的程序设计问题。更重要的是,Microsoft公司的很多产品都是用C++程序设计语言设计出来的,像Windows XP,Windows NT,Internet Explorer 和Visual Studio版本下的Visual C++,Visual Basic,.NET Framework等等。这些产品在不同程度上都奠基了C++程序设计语言在程序开发中的不可磨灭的地位。中国论文网[1D~)_ Yn\Yv

    二、跨平台开发

    4ccO8Bb{,k&['S0

    跨平台开发是程序设计领域在近些年提出的新的要求,它源自于现代软件工程的发展。跨平台的主要目的就是要让所开发的应用程序可以在不同类型的平台上顺利运行,跨平台项目的软件在开发的时候,必然要想到软件的移植性。中国论文网Ez+p@N-cz

    在实际的软件开发过程中,C++语言的跨平台开发项目,与具有可移植性的代码,他们的核心都是高度一致的。只需要一次编写,多次编译,这样就实现了既可以在不同的设备和产品上顺利运行,又不会产生功能损失的现象。因此,跨平台软件开发几乎可以运行在不同的平台上而不需要做出其他任何的调整和修改。

    )` Qs xK!C0

    目前在市面上流行的几大系统软件的厂家,像Windows,Linux,Unix等在应用程序接口的实现中存在着较大的差异,同时,它们实现的细节和原理也存在着较大的差别。就连目前开源的操作系统代码Linux也与其他类似的软件差别甚远,那么,跨平台软件开发就迫在眉睫,只有能适应所有的操作系统应用程序的软件才有生存的价值。相对而言,要实现程序设计语言在不需要修改代码的情况下做到跨平台,就需要更加抽象的语言表达能力和较低的硬件控制力。那么,是如何实现能在多种系统中运行的软件呢?C++语言下跨平台软件开发就是一个很好的实例。

    ta5e ~6XS0v.bFCo0

    三、C++语言跨平台软件开发的实现

    RW }0u+C0

    (一)跨平台设计思想与整体思路

    w8Y#V8A4D0

    任何一个好的跨平台软件开发的实现,主要还是对整体设计的把握,跨平台程序设计要求实现与平台无关的代码,在设计和编写的过程中,还要对软件的架构和整体配置的合理性问题作出考虑。中国论文网!cQ8@S+P8|y5P.O

     

    Y q^&GY+J9~S,U0

     中国论文网r0c:r8p2ld

     中国论文网#p#?}:uX'WR?;U

     

    `;A R&Z4E0

     

    TN^c9y4lAc0

     中国论文网U;Ipj?4c

     中国论文网4j!b(E}mb [

     

    3Z!onuu X6}R\0

     中国论文网 M2U!w*U7nPvf

     

    2N[WH"M.L/Jq0

     中国论文网H#t)y knw f(Zd;[1Tz

     中国论文网 }O:U.IvQE;w*h

     

    |~oH|1S2s9~0

     中国论文网*p0U*\M$c

     中国论文网/|]k&h8O;V

     中国论文网 @`1TZ:~.T E

     中国论文网3o;p HX/Ee!{/K

     

    f6q+XB,Y:\0

     中国论文网(k8q bA3[&S c

     中国论文网0{rd0sQBQQ C

     中国论文网-}+iK$nr9X2P

     

    nu_qy0

     中国论文网k7?G,S2D7V

     

    :[)dq6wx5t%f'A9V9m0

     中国论文网,Gv E(j}I[,\4d

     中国论文网)gZ1f1zOZ_g

     中国论文网EH {6nhr gZ

     中国论文网&U\/~kb

     中国论文网0I,zmA)Ds,Os

     

    %I\R R6o*F,i-|{0

    上面的流程图清晰的说明跨平台软件开发的设计思路,我们可以结合自身学习和实践经验在程序设计方面充分利用开源的代码和程序,就可以让跨平台的设计更加地趋于成功。

    aL/Bi5x/N hCr"[0

    (二)C++程序设计语言跨平台开发的策略

    \$zA9M5q%FJe)esJ0

    我们在编写程序代码的时候,总是要把编辑策略放在首位,针对于不同的OS,在其上创建和编辑文本文件,就要遵循不同的规则。比如行结束符,在Windows操作系统和DOS操作系统中普遍采用回车键,而在Unix中却使用的是换行符号。这种细微的差别就是跨平台软件开发必须考虑的问题。那么当我们要想把其中一个平台上编写的代码放在另一个操作系统上运行,极有可能出现不被正确解释的现象。另外,对于不同的操作平台其tab键的功能也有很大的区别,主要体现在间距上。那么我们在编程的时候要注重这些差别,保证代码的书写和阅读对于不同的操作平台都是一致的,增加程序的可读性,进而也就实现了跨平台的思想。所以在每次开发之前都需要针对开发策略制定相应的规则:统一使用四个空格键来代替tab,也就是\t格式。Windows下的源文件代码需要存储在UNIX的文件格式,或者说是在Windows下的文件编写完成之后,通过DOS2UNIX命令实现文本格式的转换。中国论文网9O!L }]dn

    (三)处理器差异的控制

    B'I_Qip Ez*~%I9Wn0

    鉴于C++语言自身语言的特点,建立了一个跨平台的抽象代码库,在不同的平台和编译器上进行合理的规划代码。C++语言里普遍使用了抽象,像BOOST和Stardard Template Library 。Boost标准类在不断的发展和改进过程中,完全能够帮助跨平台操作中的软件和程序来适应OS系统库的内部接口的不同,可惜这些不足以解决全部问题,主要是因为目前Boost没有包含所有的库函数的类库,又会出现不确定的情况,那么关于C++语言的部分也应该及时的维护和更新。中国论文网*X8_^0uq%| b

    在平台上,利用库封装代码,又在不同的平台下调用已达到统一代码的目的。中国论文网,{ I aeL|Z9zM:r

    # if define(_WIN 32) || define(WIN 64)

    hQ`*rt1V%i C CcG[0

    // ! 针对Windows 平台下的关键字_declspec (dlexport)的定义中国论文网(f7F3Z Cxd TW

    # define AD_EXPORTCALL1_declspec (dllexport)中国论文网1wer[d4B,I,r

    // ! 针对Windows 平台下的关键字_stdcall

    9^5t`9Pbh$}#q0

    # define AD_EXPORTCALL2_stdcall中国论文网.nX(uP |4n#E

    # else中国论文网;I r9uxFi

    # define AD_EXPORTCALL1

    :`|o][ G/s?'M1j0

    # define AD_EXPORTCALL2

    7Z1B3v F9n n:r{/Q0

    # endif            中国论文网z }yA"J i5qy7zh

    (四)利用wxWidgets开发跨平台软件中国论文网)E*x!bS~/`_

    wxWidgets 是一种跨平台开发的软件包,目前使得在跨平台的图像设计方面使用自身的程序。因为其兼容性相当的好,对于Windows,Linux,Unix等都兼容。而且,wxWidgets的底层是用C++程序设计语言实现的。下面用一个实例将说明wxWidgets的跨平台问题。

    .u@$m"^\.~Q.U0

    首先创造一个wxFrame的实例,并制定长宽和屏幕上的位置。然后,新建一个垂直的size widget和顶层窗口的子sizer。然后,再创建一个垂直sizer widget和一个水平子sizer。最后创建wxStatic实例以及为这个敞口应用中添加事件响应。以下将展示一部分核心代码。

    q&f I)BDb!q&A;H b8IC0

    class myframe : public wxframe

    qvL [(CxK8}0

    {    中国论文网1S#G `X,g _$J

          public:

    d}^w8[)wA0

               Myframe (const wxstring & title);中国论文网zZ m n!lG

    }

    `o gl?[c0

    Myframe::myframe(const wxstring & title):wxframe(null,wxid_any,title)中国论文网9_!|6]6xGX5b

    {

    S8Oo,VaU ` }0

          wxmenu *filemenu = new wxmenu;

    TEb8MUO-X0

          Wxmenu *helpmenu = new wxmenu;

    A"?&r,K,h*y#Q(] k3s0

              helpmenu->append(wxid__about,_t(“关于“tfl”),_t(“显示关于对话框”));

    1E ^"g~l&x0pA0

              filemenu->append(wxid_exit,_t(“退出”talt-x”),_t(“退出应用程序”));中国论文网 v9DJ s(E

              wxmenubar*menubar=new wxmenubarO;

    #l'XlC6Xd$x0

              menubar->append(filemenu,—K“文件”));

    )dYn kM1`*j p0

              menubar->append(helpmenu,_t“帮助”));

    NT n |*^"~w[0

              Setmenuba(menubar);中国论文网lI's} WdF

    }

    L [h%fk+ZC\%a0

    在设置完这个窗口之后,还需要新建一个类实现一写功能。中国论文网:jo`*`"f$GJ!c

    class MyApp:public wxApp中国论文网P+\&H8m5U#N-dNT-m

    {

    1}5Qi9F[7kGg8\0

         public:

    -F p!v\&R)S r)[SOE|0

            virtual bool OnInitO;

    #J!u"C,G!kr"Si0

    }

    )T.wi cp0}e5_i0

         bool MyApp::OnInit 0

    *W4bR#ABg0

    {中国论文网'h [4l:S ?VRc(f9P

         myFrame * flame=new myframe(_t(‘wxwidgets程序”));中国论文网2|~/t1JNer?E

         frame->show(true);中国论文网6u NT$P'K#?|8g9Y

         return ture;

    !Q U)[6mwl Mf!u v0

    }中国论文网n}MRt6j`xe%V

     中国论文网7XZ+ZcGZ l(r

    四、结论中国论文网2n6P/I(A+{.q Wm

    伴随着跨平台开发方式的不断发展,以及C++语言的不断壮大,在设计和开发项目的时候,工程师要想一次性完成能在不同的设备上通用执行的代码是比较困难的,我们要不断的借鉴自身和别人开发的经验,从各种各样的设计思想和软件工程中汲取知识,进行相对应的调整和修改。在实际的开发过程中,利用多线程的实现为实例和实际软件项目的需求,配合C++程序设计语言提供的日志管理的具体说明来意义解决出现的问题。中国论文网Th4j"W2lu

    C++程序设计语言在未来有着巨大的市场潜力,并伴随着计算机科技的不断发展,跨平台软件开发在C++程序设计语言的支持下,可以在不同的软件工程师和开发人员的操作中呈现出许多之前从未有过的功能,因此,我相信,C++语言下的跨平台软件开发前程似锦。

    cJATe y0

    参考文献:中国论文网?^`%g$I0F v

    [1] Brian Hook,《跨平台软件开发.C&C++》,[M]. 清华法学出版社,2006年11月

    s2{ Lh2W#m|7C!e v(W0

    [2] 熊凯 高茂庭 于仁师,C++语言开发跨平台程序的研究与实现,[J]. 《电脑知识与技术》, 2006年第02期

    Z8W wwy d"D,e0

     

    -}} }3LnYWj0
  • 上一篇             下一篇
发给朋友 分享到朋友圈
  • 回顶部
中国论文网|微信客服:15295038855
本站提供论文发表发表论文核心论文发表
免费论文发表资源,文章只代表作者观点,并不意味着本站认同,部分作品系转载,版权归原作者或相应的机构;若某篇作品侵犯您的权利,请来信告知:lunwenchina@126.com