PBNI 环境设置与使用

PBNI  环境设置与使用


版本: Visual C + +的6.0 , PowerBuilder的9.0


1 。 “ pbext.awx ”文件更改
 将"C:/Program Files/Sybase/PowerBuilder 9.0/SDK/PBNI/wizards"下的“ pbext.awx ”文件 复制到“C:/Program Files/Microsoft Visual Studio/Common/MSDev98/Template”目录中.
 
2 。 设置环境变量
( 1 )  Visual C++ 的 菜单栏 选择 "Tools > Options..." 然后移动到
“"Directories"”标签页(选项卡) 。

( 2 )在  “Show directories for:: ” 下拉列表中


( 2-1 ) “Includes files” ,新增 “ ... POWERBUILDER 9.0SDKPBNIINCLUDE ”选择的路径。

( 2-2 ) “Library files” ,新增“ ... PowerBuilder 9.0SDKPBNIlib ”选择 的路径。
“ < PBNI 关于使用> ”

*整体步骤: Visual C + +中DLL的建立-〉 “ PBD文件 ”-〉PB 9使用。

1 。 Visual C + +中产生的DLL
( 1 ) 运行Visual C + +,“File > New...“ 在选择“Projects” 标签页(选项卡)选择 “ PBNI Extension App Wizard ”

“Project name: ”建立一个适当的名称的项目。 (后该dll中使用的名称)
“Location: ”项目可以默认(例如:pbni_test )

( 2 ) 在“ PBNI Extension App Wizard - Step 1 of 2 ”窗口输入适当的名称此名称是以后作为PB NVO 名称使用的.

( 3 )下一步, “完成” ,并选择“New Project Information”窗口“确定”点击。
在项目里建立你自己的类和函数方法等,例如“ SampleMethod1 ( ) , ... 2 ( ) ” 2级将建立与两种方法。

( 4 ) “Dll “is to Build MiniBar” (F7)” (按F7 ) ” ,点击图标创建的DLL 。
例如:“ …Microsoft in Visual Studio/MyProjects/pbni_hwang/Debug ”文件夹下的“ pbni_hwang.dll ” 将建立一个dll文件。

2 。 DLL文件到PBD
( 1 ) 上面在Visual C + +中生成了所需的dll文件,例如:“ pbni_test.dll ”在一份程序,然后用“C:/Program Files/Sybase/PowerBuilder 9.0/SDK/PBNI”文件夹下的pbx2pbd90.exe生成“pbni_test.pbd”文件
在dos窗口下使用:C:/ 〉pbx2pbd90  pb9demopbni_hwang.pbd  pb9demopbni_hwang.dll
 pbni_hwang.pbd 文件将建立。

( 2 ) 生成的dll文件必须放在系统的搜索路径,且不能删除,因为 PB实际还是调用dll文件。

3 。 PB 9中使用 生成的dll文件
 
将这个pbd文件加入PB的 “Target Library Search Path ”中就可以像使用PB NVO 一样使用这个NVO,此外还可以继承这个NVO。   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
服务端(jsxserver),采用c++ + iocp + pbni + zlib编写而成,支持PB长连结(提供pb客户端demo),支持http get post调用,pbni调用pbcall里的nvo_pbnicall(服务端业务代码全由PB编写),具体请看demo客户端代码中的说明; 实现的功能:1.pb客户端调用功能,可实现类似easerver iiop的功能,比easerver多了服务端心跳,客户端自动判断是否断网,自动重连,客户端单开线程序通迅,前端界面不会卡死(用eserver不管是iiop还是ws高锋期经常未响应卡半天),传输码流比easerver小,程序总体运行效率也高一些,支持http get post调用,做接口很容易实现;2.客房端点对点发消息(由服务端转发),可以实现类似在线聊天的功能,响应http post也可以通过服务端即时转发给PB的客户端,PB客户端生成响应数据返回http调用端,客户如果用的局域网系统,又想做移动端的远程查询(小数据量),软件供应商有公网服务器的话,可用本框架打通实现,我们用此框架实现过医生手机远程连入门诊内部查询修改自已的预约、患者资料;3.服务端即时通知功能,pb长连结客户端、http调用,服务端处理完成后,可以给在线的pb长连结客户端发通知消息,客户端收到通知后可即时做出相应操作,例如:酒店系统,前台开房后,全系统房态即时刷新,门诊系统患者前台挂号后,医生端即时就看的到,等等,比客户端轮询来的效果好。
PB9以上的PB版本适用。 使用只有三个函数,很简单。 这是用PBNI编写的控件,VC6的IDE,VC2003的编译器编译,UNICODE版本。 三个函数的使用说明: of_addtip(unsignedlong winhandle, string tip) 添加一个tip。这是必须首先调用的函数,即:在使用其他两个函数前,必须先调用此函数。 winhandle:窗口句柄,操作tip的窗口的句柄,tip的图标即用此窗口的图标。 tip: tip的字符内容。 of_modifytip(string title, string info) 修改tip的内容,并且动态将修改的内容立即显示。参数的含义明显。 of_deletetip() 删除tip. 对tip图标上的鼠标操作的处理: 原理是:图标上的所有windows消息,都会转发到参数winhandle所代表的窗口,作为该窗口的WM_USER消息,即触发该窗口的pbm_custom01事件。pbm_custom01事件的lparm参数指定tip图标的windows消息号。 具体作法:在参数winhandle所代表的窗口的pbm_custom01事件中写代码,检测lparm的值,以判断鼠标进行了哪种操作,如:lparm为517(WM_RBUTTONUP),表示鼠标弹起。 pbm_custom01中的示例代码: //start CONSTANT long WM_MOUSEMOVE = 512 CONSTANT long WM_LBUTTONDOWN = 513 CONSTANT long WM_LBUTTONUP = 514 CONSTANT long WM_LBUTTONDBLCLK = 515 CONSTANT long WM_RBUTTONDOWN = 516 CONSTANT long WM_RBUTTONUP = 517 CONSTANT long WM_RBUTTONDBLCLK = 518 CONSTANT long WM_USER = 1024 CONSTANT long NIN_BALLOONSHOW =(WM_USER + 2) CONSTANT long NIN_BALLOONHIDE =(WM_USER + 3) CONSTANT long NIN_BALLOONTIMEOUT =(WM_USER + 4) CONSTANT long NIN_BALLOONUSERCLICK =(WM_USER + 5) m_base lm_menu CHOOSE CASE lparam CASE WM_MOUSEMOVE // CASE WM_LBUTTONDOWN //鼠标左键按下 CASE WM_LBUTTONUP //鼠标左键弹起 CASE WM_LBUTTONDBLCLK //鼠标左键双击 CASE WM_RBUTTONDOWN // SetFocus ( this ) lm_menu = CREATE m_base lm_menu.PopMenu(PointerX(),PointerY()) DESTROY lm_menu CASE WM_RBUTTONUP // CASE WM_RBUTTONDBLCLK // CASE NIN_BALLOONSHOW // CASE NIN_BALLOONHIDE // CASE NIN_BALLOONTIMEOUT // CASE NIN_BALLOONUSERCLICK // CASE ELSE Beep(0) END CHOOSE //end 注意事项: 经测试,本PBNI如果与其他非UNICODE版的PBNI同用时,会显示乱码。无解。 如有BUG,敬请及时告知。 本控件的讨论贴: http://topic.csdn.net/u/20090510/20/14a57e09-02ca-44df-8f9b-e3811678360d.html

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值