社区
PowerBuilder
帖子详情
如何调用PB生成的Dll中的函数?
qufo
2006-04-11 08:43:15
在一PB程序的pbl中有如下:
function string pf_converstr(string instr)library "strproc.dll"
据猜是Powerbuilder的Function的意思,名称是 pf_converstr,
现在,这个dll已经好了,我在delphi中要如何调用他?好心人写段代码吧。
...全文
277
3
打赏
收藏
如何调用PB生成的Dll中的函数?
在一PB程序的pbl中有如下: function string pf_converstr(string instr)library "strproc.dll" 据猜是Powerbuilder的Function的意思,名称是 pf_converstr, 现在,这个dll已经好了,我在delphi中要如何调用他?好心人写段代码吧。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hygougou
2006-04-11
打赏
举报
回复
该strproc.dll文件
不象是pb的dll文件呀
先弄清楚再说了
lzheng2001
2006-04-11
打赏
举报
回复
pb必须以COM的形式建DLL才能被其它开发工具调用. 精通编译的DLL都不能.
如何在pb中创建COM组件,并在asp中调用并返回结果集? online(原作)
关键字 pb,com
启动pb7.0,创建一个不可视的用户对象"uo_customer",新建"object",选择"custom class"
类型,点击"ok"。
在新创建的用户对象中编写如下程序:
1.声明实例变量"instance variables",对于com中不支持的类型,请声明为protected类型。protected:
datastore ds_datastore
2.新建三个成员函数:
int uf_connect()//用于连结数据库与创建datastore对象。
代码:
sqlca.dbms="odbc"
sqlca.database="webdw"
sqlca.autocommit=false
sqlca.dbparm="connectstring=''dsn=webdw;uid=dba;pwd=sql''"
connect using sqlca;
ds_datastore =create datastore
if sqlca.sqlcode=0 then
return 1
else
return -1
end if
void uf_disconnect()//用于断开数据库连结和释放datastore对象。
if isvalid(ds_datastore) then destroy ds_datastore
disconnect using sqlca;
resultset uf_retrieve()//读取客户信息
resultset lrs_customers
ds_datastore.dataobject="d_customer"
ds_datastore.retrieve()
ds_datastore.generateresultset(lrs_customers)//生成结果集
return lrs_customers//返回结果集
最后,保存改对象为"uo_customers"。
制作一个com组件的工程
新建"project",选择"Com/mts component wizard",确定。
给工程定义一个名字"p_recordset_com"
接下来,选择要生成com的用户对象"uo_customer"
设置生成com组件后的接口属性,这里可以使用缺省。
然后自己定义组件的program id为"pb70.uocustomer",
然后选择该com组件的dll文件名,单击"new",生成"component server appid",
同样生成"type library id",最后,选择pb资源文件名,以及注册方式,之后,系统会
给出用户设置的大致信息,然后选择生成"to do list"
这样就完成一个生成com组件的工程,名为"p_test_com"。
编译工程并注册组件
打开已经生成的工程,选择相应的pbl文件及用户对象,编译就可以了
下面我们创建asp网页来调用这个pb com
<head><title>pb com</title></head>
<body>
<%
set customers=server.createobject("pb70.uo_customers")
iflag=customers.uf_connect()
set rs=customers.uf_retrieve()
%>
<table>
<%rs.movefirst
do while not rs.eof
%>
<tr>
<td><%=rs("lname")%></td>
<td><%=rs("address")%></td>
<td><%=rs("city")%></td>
</tr>
<%rs.movenext
loop
rs.close
customers.uf_disconnect()
%>
</table>
</body>
保存成asp文件
最后,在浏览器中就可以浏览这个asp文件了
说明:pb7.0和pb8.0基本上差不多,读者可以自己实践。
qufo
2006-04-11
打赏
举报
回复
不像,那是标准dll?
C#
中
调用
PB
的
DLL
本文详细介绍了如何在C#项目
中
调用
PowerBuilder
生成
的
DLL
。首先了解
DLL
提供的方法声明,如ShowRPMenuList和GetRPMenuList。接着在C#项目
中
设置
DLL
拷贝路径,确保
Dll
Import能正确找到。通过使用
Dll
Import特性,静态方法和extern关键字来声明
PB
函数
,例如get_file和CreateRecordObject。最后,可通过类名
调用
这些静态方法进行实际
调用
。
PB
调用
DLL
的常见问题及处理方法
本文详细介绍了PowerBuilder(
PB
)
调用
DLL
过程
中
遇到的各类问题,包括
调用
约定、
DLL
依赖、路径搜索、
函数
声明错误、
函数
使用错误、
DLL
开发者错误以及32/64位兼容性问题。针对这些问题,提供了相应的处理方法,如检查
调用
约定、解决
DLL
依赖、管理当前目录、正确声明和使用
函数
、预分配内存以及确保使用正确的
DLL
版本。此外,还讨论了COM类
DLL
的挑战,建议避免在
PB
中
使用。最后提醒,
PB
是32位程序,务必使用32位
DLL
。
【原创】
PB
调用
SAP的Web Service结构体数组参数方法详解(使用C#
调用
Web Service
生成
dll
)
本文详细介绍了如何使用C#
调用
具有结构体数组参数的SAP Web Service,并
生成
DLL
供PowerBuilder(
PB
)
调用
。通过在C#
中
处理结构体数组并转换为字符串数组,解决了
PB
对结构体数组支持不足的问题。文章包括创建C#类库、引用Web Service、
生成
DLL
、初始化
DLL
环境以及在
PB
中
调用
DLL
的步骤。
C#
调用
PB
生成
dll
详解
本文详述了使用C#
调用
PowerBuilder编写的
DLL
的全过程,包括常见错误及解决策略,如处理内存损坏错误,以及如何正确
调用
带有ref或out参数的方法。
PB
调用
VS2005
生成
的
DLL
本文介绍了如何在PowerBuilder
中
调用
Visual Studio 2005创建的
DLL
。关键步骤包括创建
DLL
项目,定义__stdcall
函数
,添加DEF文件以指定导出
函数
,以及在
PB
中
正确
调用
。注意__stdcall
调用
约定与
PB
兼容,DEF文件用于保持
函数
名称的一致性。
PowerBuilder
1,111
社区成员
66,454
社区内容
发帖
与我相关
我的任务
PowerBuilder
PowerBuilder 相关问题讨论
复制链接
扫一扫
分享
社区描述
PowerBuilder 相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章