- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PBNI 是Powerbuilder 的本机扩展,是很强大的东东,最近因为工作需要,稍作了点研究,希望对未做过PBNI的朋友,有所帮助。
用最简单的的话来讲,(不准确),就是Java ,C++ 里可以加载PB的虚拟机,利用PB的对象,语言,主要是利用PB在某些方面的强大功能,让他们能很好的结合。PB 安装目录 SDK下的文件非常重要,要阅读下PB自带的帮助文档。
Powerbuilder9 的版本只支持 vs6,10.5的最高支持到VS2005 ,如果要想让PBNI 支持到VS2008,并且集成到appwiz里,需要手动来做。%Sybase\Pb105\PowerBuilder 10.5\SDK\PBNI\Wizards\VCWizards\PBNIWizard8,此目录下的deploy.bat 文件有时执行不一定成功,手动就可以,按照里边的步骤做,做完后,%Sybase\Pb105\PowerBuilder 10.5\SDK\PBNI\Wizards\VCProjects 8.0,这个目录下的文件PBNIWizard.vsz 文件用UE打开,将8.0 改为9.0 ,再复制到相应目录,就可以在VS2008里用向导创建PBNI工程了。
还有一点要提醒的是,一定要使用向导来创建PBNI,否则很容易挂哦
PowerBuilder 9开发技术讲座— PowerBuilder Native Interface(PBNI)PowerBuilder 9现在对于其他开发语言的支援,有了全新的突破,在以往使用PowerBuilder开发程式时,要和C++或是Java程式互通有无是有一些折衷的办法,但是总是没有办法做到简易而且全面性的支援。现在只要透过PowerBuilder 9的PBNI技术,就可以让PowerBuilder的程式呼叫Java,或是在一个C++的程式中引用PowerBuilder NVO物件函数。
以往的PowerBuilder程式只能够透过外在函数呼叫的方式来存取C/C++的函数,但在PowerBuilder 9.0之中扩增了一项强而有力的介面-「PowerBuilder Native Interface」,简称PBNI。透过PBNI的开发方式,PowerBuilder开发人员不仅可以使用物件导向的方式来存取C/C++函数,而且还可反向地让C/C++程式呼叫PowerBuilder之中的物件,达到应用程式的整合。更甚者,在藉由JNI与PBNI两者的结合,Java应用程式也可双向地与PowerBuilder程式沟通。
何谓PBNI
在谈什么是PBNI之前,我们先来谈谈下面三个问题:
1.开发人员有办法用PowerBuilder程式呼叫C或是C++的程式吗?
2.开发人员有办法用PowerBuilder程式呼叫一些外部元件像是Java EJB元件、 Web Service元件、Java Class程式等诸如此类的元件吗?
3.开发人员有办法用反过来,用C或是C++呼叫已经使用PowerBuilder开发好的程式吗?
上述三个问题,在过去的PowerBuilder其实都可以做到某种程度的地步,只是都有些问题。传统上使用PowerBuilder开发上述的程式时,如果要呼叫C或是C++ 的程式,是可以使用宣告外部函数的方式来使用一个已经撰写好的DLL函数,
例如:
FUNCTION ulong GetSysColor (int index) LIBRARY USER32.DLL”
FUNCTION boolean sndPlaySoundA (string SoundName, uint Flags) LIBRARY WINMM.DLL
可是如果是下面的程式呢:
BOOL EnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam);
这个可是个大问题了,因为这个Windows DLL Function中会用到所谓的「Callback」 函数的技术,所谓的Callback Function指的是今天有A和B两个物件,在程式中A物件呼叫B物件的Function,而在该B物件的Function又会回头呼叫A物件的其他Function,这就叫「Callback」。在PowerBuilder呼叫C的Function后,在这个C的Function中要再回头呼叫PowerBuilder的函数是不可能用引用外部函数的方式来达到这个目地的。除了Callback Function使用困难之外,使用外部函数也有资料型态的限制,以及没有办法使用物件导向的方式开发等种种的困难及问题。
再来谈谈PowerBuilder呼叫外部的元件的方法,在以前能够让PowerBuilder呼叫EJB元件,就只
您可能关注的文档
最近下载
- 项目一集控运行职业岗位认知课件.pptx VIP
- Nordic 系列:nRF52840 (基于 Cortex-M4)_(25).nRF52840的硬件测试.docx VIP
- Nordic 系列:nRF52840 (基于 Cortex-M4)_(16).nRF52840的硬件设计指南.docx VIP
- 医疗器械说明书:迈瑞麻醉机WATO+EX-55,65_使用说明书V_1.1中文.pdf
- GMC96B钢轨打磨列车手册.pdf VIP
- 南京三合宅课件.ppt VIP
- 猩红热护理查房.pptx VIP
- 中国肺血栓栓塞症诊治、预防和管理指南(2025版).pptx
- 2025年高考数学全国新课标Ⅰ卷试卷评析及备考策略(课件).pptx VIP
- 医疗器械 质量手册 ISO 13485 QRS 820 (通过FDA、NMPA、CE的审批 版.pdf VIP
文档评论(0)