第一次使用Pocket-PowerBuilder和开发DLL的经历
有位朋友使用Pocket-PowerBuilder(以下简称PPB)开发PDA上使用的APP,遇到一个问题,找我帮忙:DLL在PDF上调用失败。以前听闻过这个版本,以为在 windows CE上跑,和windows平台没多大差别,结果是我想简单了。特此记录一下这次经历。
1.常规操作,打开虚拟机,安装windows xp sp3。顺利!
2.安装PPB。顺利!
3.找到wince 6.0 模拟器。
4.安装 vs2008 + sp1.
5.安装wince SDK.
以上折腾了一整天时间
所需要的东西全部安装完后,打开PPB,界面很熟悉,和PB11.5版本的界面差不多,各种用法也一样,很亲切。
用PPB写了一个test程序,编译:
红框中的钩我都去掉了,要不然找不到它把编译结果放哪去了。然后开始编译。
把test.exe test.pkd 复制到wince模器的虚拟SD里面。当然,按照常规,还得把运行时DLL复制过去。
进入模拟器,运行 test.exe ,报找不到pkvm25.dll,怎么都行,很奇怪,明明这个文件在的啊。
回到项目源码程序目录,双击运行 test.exe
竟然xp下编译出来的exe不能在XP下运行!!!
这时,我才充分认识到wince 和 windows不完全是那么一回事。应该pkvm25.dll的问题相似。于是又去研究运行库,发现它还有个WinCE目录,点开它,果然在arm和sparm子目录里还有不同的运行库。把arm里的DLL全部复制到虚拟SD里,再到wince模拟器里,双击test.exe,成功弹出了第一个测试窗口!!!
回到前面,对于朋友那个问题,我现在是明白了,windows平台上的DLL,在PDA上肯定是不能运行的,需要另外编译。
于是打开vs2008,创建新项目:
注意不能选Win32,而应该选 Smart Device,即智能设备。
然后根据向导一步一步创建出wince的项目。
然后开始写代码,生成第一个wince DLL。过程就不细说了,PPB里声明,调用,到wince模拟器里一切正常。
这里要注意的是,给wince 写DLL,比较难受,许多windows平台下用惯的API,wince不支持,感觉束手束脚 ,挺难受的。
大自在,QQ群:624409252
2022/3/3