BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

Similar documents
Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

概述

bingdian001.com

FY.DOC

Microsoft Word - 01.DOC

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

新版 明解C++入門編

提问袁小兵:

untitled

RUN_PC連載_12_.doc

untitled

untitled

第3章.doc

RunPC2_.doc

CC213

四川省普通高等学校

PowerPoint Presentation

概述

Microsoft Word 级第二专业学士学位培养计划.doc

建模与图形思考

The golden pins of the PCI card can be oxidized after months or years

Microsoft Word - CIN-DLL.doc

RUN_PC連載_10_.doc

mvc

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

基于ECO的UML模型驱动的数据库应用开发1.doc


RunPCPB8 new feature.PDF

C 1

EJB-Programming-3.PDF

新・明解C言語入門編『索引』

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

全国计算机技术与软件专业技术资格(水平)考试

基于UML建模的管理管理信息系统项目案例导航——VB篇

用户大会 论文集2.2.doc

untitled

提纲 1 2 OS Examples for 3

untitled

<4D F736F F D D6D0D2BDD7A8D2B5D7D4C6C0B1A8B8E6B5DA3131B8E52DC5C5B0E62E646F63>

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

Java

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

RUN_PC連載_8_.doc

epub83-1

, 即 使 是 在 昏 暗 的 灯 光 下, 她 仍 然 可 以 那 么 耀 眼 我 没 有 地 方 去, 你 会 带 着 我 么 杜 晗 像 是 在 嘲 笑 一 般, 嘴 角 的 一 抹 冷 笑 有 着 不 适 合 这 个 年 龄 的 冷 酷 和 无 情, 看 着 江 华 的 眼 神 毫 无 温

untitled

C++ 程式設計

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

EJB-Programming-4-cn.doc

電機工程系認可證照清單 /7/1

《大话设计模式》第一章

000

untitled

第一章 章标题-F2 上空24,下空24

文档 1

FAQ -PowerDesigner9.5.DOC

untitled

3.1 num = 3 ch = 'C' 2

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操

大连软~1

Microsoft Word 電腦軟體設計.doc

CC213

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID

謙卑的小巨人 文 / 林士涵 印製見證文集是父親在生病後就有的想法 目的是希望更多親朋好友能透 過這些見證認識主耶穌 一起享受屬耶穌那好得無比的生命 我的父親林進聰 民國 42 年 9 月 18 日生於台中縣大肚 鄉 退伍後輾轉來到工業技術研究院化工所上班 認識了他生 命中兩個最愛 信仰耶穌基督以及

untitled

Java 1 Java String Date

Microsoft Word - 11.doc

信息

untitled

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

<4D F736F F D20C9EEDBDACAD0BAA3D4C2CDA8D0C5B6AFCCACC3DCC2EBBDE2BEF6B7BDB0B82E646F63>

在挑选合适的 SDK 的时候需要注意, 标准 windows 平台应用选择 FBX SDK VS2015,windows 应用商店和全平台通用的不用考虑 windows 全平台通用的应用是 windows10 新推出的功能, 可以打通 windows phone windows s

C6_ppt.PDF

2/14 Buffer I12, /* x=2, buffer = I 1 2 */ Buffer I243, /* x=34, buffer = I 2 43 */ x=56, buffer = I243 Buffer I243I265 code_int(int x, char *buffer)

ebook129-9

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

C/C++语言 - C/C++数据

Microsoft Word - Learn Objective-C.doc

<4D F736F F D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63>

範本檔

糖尿病食譜


Microsoft Word 養生與保健_中山大學_講義


萬里社區老人健康照護手冊

Microsoft Word - 強制汽車責任保險承保及理賠作業處理辦法 doc

Microsoft Word - 06.Understanding of Pregnancy and Birth.doc

(➂)11. 炎 炎 夏 日, 即 使 下 起 滂 沱 大 雨, 都 消 除 不 了 令 人 心 煩 的 暑 氣 這 句 話 主 要 想 表 達 什 麼? ➀ 夏 日 裡 經 常 下 著 滂 沱 大 雨, 令 人 心 煩 ➁ 下 著 滂 沱 大 雨 的 日 子, 可 以 消 除 暑 氣 ➂ 夏 日

附 件 一 : 办 理 集 中 式 银 期 转 账 业 务 网 点 名 单 序 号 地 区 网 点 名 称 地 址 联 系 人 电 话 23 工 商 银 行 安 徽 省 铜 陵 百 大 支 行 铜 陵 市 长 江 东 路 50 号 鲁 桂 珍 工 商 银 行 安 徽

2. 二 年 級 吳 毓 秀 老 師 : 感 謝 午 餐 公 司 平 時 均 能 準 時 送 餐, 但 希 望 能 不 要 使 用 加 工 品, 且 學 生 反 映 希 望 能 多 加 蛋 品 的 食 物 3. 三 年 級 柯 阿 青 老 師 : 雞 肉 有 血 水 味, 請 午 餐 公 司 能 調

高雄市立五福國民中學九十四學年度第一學期第三次段考二年級本國語文學習領域試題卷

人 物 春 秋 杨 永 泰 将 其 削 藩 策 略 概 括 为 : 以 经 济 方 法 瓦 解 冯 玉 祥 的 第 二 集 团 军, 以 政 治 方 法 解 决 阎 锡 山 的 第 3 集 团 军, 以 军 事 方 法 解 决 李 宗 仁 的 第 四 集 团 军, 以 外 交 方 法 对 付 张 学

台北老爺校外實地參訪結案報告



,,,,,,, (,, ),,,,,,,,,,,,,,, ,,, 4 11,, ( ),,,, ( ), :, ( ),,, 1995, 66 ; ( ),, 1996, , 3-4,,


2002 4,,, 1941,,,,,,,,,,,,,,,,,, : ;:, 1991,

c_cpp

Transcription:

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 PowerBuilder 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" 1

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

PBNI 3

PBNI PBNI PBNI PBNI PBNI PBNI PB extensions PB marshaler extensions PB visual extensions PBVM C++ PB extensions 4

PBNI C C++ DLL PBNI PowerBuilder PBD PB Extensions PB Extensions PBD C++ C++ PBNI PBD PBD Funtion Function C++ Function C++ 1. C++ 2. C++ PBNI SDK C++ (h ) 3. C++ Globle Function 4. Globle Function C++ Function 5. C++ DLL 6. PBNI pbx2pbd90.exe DLL PBD 7. PowerBuilder PBD Library Search Path 8. PowerBuilder PBD Globle Function 5

PBXEXPORT PBXRESULT PBXCALL PBX_InvokeGlobalFunction ( 6

) IPB_Session* pbsession, LPCTSTR functionname, PBCallInfo* ci if ( strcmp( functionname, "getusername" ) == 0 ) CWinAPI *WinAPI = new CWinAPI( pbsession ) ; WinAPI->PBNIGetUserName ( ci ) ; if ( WinAPI!= NULL ) delete WinAPI ; return PBX_OK ; ; return PBX_E_NO_SUCH_CLASS ; PB Extension PB PBVM IPB_Session C++PowerBuilder 7

pbniwinapi.cpp CWinAPI Class PBNIGetUserName() Windows API main.cpp PB Globle Function GetUserName() pbniwinapi.cpp #include <WINDOWS.H> #include <stdio.h> #include "PBNIWINAPI.h" CWinAPI::CWinAPI( IPB_Session * psession ) : m_psession( psession ) CWinAPI::~CWinAPI(void) void CWinAPI::PBNIGetUserName ( PBCallInfo *ci ) LPTSTR lpszsysteminfo; DWORD cchbuff = 256; TCHAR tchbuffer[1024]; lpszsysteminfo = tchbuffer; GetUserName ( lpszsysteminfo, &cchbuff) ; ci->returnvalue->setstring ( lpszsysteminfo ) ; void CWinAPI::Destroy() 8

delete this ; main.cpp #include <windows.h> #include <pbext.h> #include "pbniwinapi.h" BOOL APIENTRY DllMain( HANDLE hmodule, DWORD reasonforcall, LPVOID lpreserved ) switch( reasonforcall ) case DLL_PROCESS_ATTACH: case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; return TRUE; PBXEXPORT LPCTSTR PBXCALL PBX_GetDescription() static const TCHAR desc[] = "globalfunctions \n" "function string GetUserName()\n" "end globalfunctions \n" ; return desc ; PBXEXPORT PBXRESULT PBXCALL PBX_InvokeGlobalFunction ( 9

) IPB_Session* pbsession, LPCTSTR functionname, PBCallInfo* ci if ( strcmp( functionname, "getusername" ) == 0 ) ; CWinAPI *WinAPI = new CWinAPI( pbsession ) ; WinAPI->PBNIGetUserName ( ci ) ; if ( WinAPI!= NULL ) delete WinAPI ; return PBX_OK ; return PBX_E_NO_SUCH_CLASS ; PowerBuilder C++ DLL DLL PowerBuilder PB Extension DLL PBD DLL PowerBuilder PowerBuilder PBD DLL PowerBuilder9 %Sybase9%\PowerBuilder 9.0\SDK\PBNI pbx2pbd90.exe DLL PBD pbx2pbd90.exe pbx2pbd90 your.pbd your.dll DLL pbniwinapi.dll PBD 10

pbx2pbd90 pbniwinapi.pbd pbniwinapi.dll pbniwinapi.pbd C++ PBX_GetDescription() PBD PowerBuilder PowerBuilder PowerScript PBD PowerBuilder PB Extension PB Extension PBD DLL? PBD DLL PBD PowerBuilder DLL PB Extension? PB Extension PowerBuilder 1..PBD PowerScript Target PBD Library Search Path 2. PB extension DLL 11

3. PowreScript PB Extension Library Search Path PBD NVO SimpleExt hello() PowerBuilder SimpleExt ext ext = create SimpleExt String str Str = ext.hello( Hello, what s your name? ) Messagebox( hello, str); PB Extension PBVM PBNI C C++ PB Extensions PBD C++ PBVM PBVM 12

Java DataWindow PowerBuilder C++ PBVM PBNI C++ PowerBuilder 1. C++ PBVM 2. C++ IPB_VM C++PB 3. PBL PBD Library Session( IPB_Session ) 4. C++ NVO 5. NVO Function trypbni.pbl PBL NVO n_ben foo() C++ PBVM C++ C++ n_ben.foo() trypbni.cpp 1. int main(int argc, char* argv[]) 2. 3. HINSTANCE hinst = LoadLibrary("pbvm90.dll"); 4. P_PB_GetVM getvm = (P_PB_GetVM)GetProcAddress(hinst, "PB_GetVM"); 5. IPB_VM* vm = NULL; 6. getvm(&vm); 7. static const char *liblist[] = "trypbni.pbl" ; 8. IPB_Session* session = NULL; 9. vm->createsession("trypbni", liblist, 1, &session); 10. pbgroup group = session->findgroup("n_ben", pbgroup_userobject); 11. pbclass clz = session->findclass(group, "n_ben"); 12. pbmethodid mid = session->getmethodid(clz, "foo", PBRT_FUNCTION, "IS"); 13. pbobject obj = session->newobject(clz); 14. PBCallInfo ci; 15. session->initcallinfo(clz, mid, &ci); 16. ci.pargs->getat(0)->setstring("calling PowerScript from C++"); 17. session->invokeobjectfunction(obj, mid, &ci); 18. session->freecallinfo(&ci); 13

19. session->release(); 20. FreeLibrary(hinst); 21. return 0; 22. C++ PBVM LoadLibrary() pbvm90.dll C++ trypbni.pbl n_ben n_ben.foo() C++ PowerBuilder Java PowerBuilder? PBVM Java PowerBuilder Java PowerBuilder Java C++ Java JNI C++ PowerBuilder DLL PBNI PBVM JNI Java C++DLL PowerBuilder Native Interface PowerBuilder9 PowerBuilder PBNI PowerBuilder C++ Java PowerBuilder 14