在软件可移植性环境中,这三个概念有什么区别?
所以例如,我想使用ncurses库,原始的ncurses库是用C语言编写的,但我的应用程序是用C ++编写的,然后我找到了“ncurses wrapper”,“绑定到ncurses”和“ncurses”港口”。我应该使用哪一个?
每个人的利弊是什么?
答案 0 :(得分:44)
wrapper是一些代码,它位于其他代码之上,以回收它的功能但具有不同的接口。这通常意味着使用相同语言编写的接口。还应该注意的是,当技术上意味着它具有约束力时(包括我自己),人们有时会说包装纸。
优点:
缺点:
binding是另一段代码,它位于其他代码之上以回收它的功能,除了这个时间绑定是用不同于它们绑定的东西的语言编写的。一个值得注意的例子是PyQt,它是QT的python绑定。
优点:
缺点:
当您翻译某些代码以在其他环境中工作时,Port就是这样。常见的比喻包括说出来的游戏...... XBox,后来发布给PS3。
优点:
缺点:
答案 1 :(得分:1)
Which one should I use?
您应该使用bindings to ncurses
。绑定是应用程序,库等的特定版本,它与原始版本不同,因为您可以将它与其他语言一起使用。常见的例子包括Windows管理器(gtk + = C,gtkmm = C ++; Qt = C ++,PyQt = Python; ecc。)。但是,人们经常使用包装器或端口等其他词来引用绑定,因此很容易让自己感到困惑。