Delphi编译的Dll中声明函数如下:
function ShowForm(PDept: PChar): boolean; stdcall;在PB9.0中声明:FUNCTION boolean ShowForm(ref String PDept) LIBRARY "project1.dll"调用时出现:
PowerBuilder Application Execution Error(R0021)
Applicaton terminated.
Error:Bad runtime function reference at line 1 in clicked event fo object cb_1 of main请问:这是个什么错误。我该如何调用这个函数(在Delphi中调用正常)
function ShowForm(PDept: PChar): boolean; stdcall;在PB9.0中声明:FUNCTION boolean ShowForm(ref String PDept) LIBRARY "project1.dll"调用时出现:
PowerBuilder Application Execution Error(R0021)
Applicaton terminated.
Error:Bad runtime function reference at line 1 in clicked event fo object cb_1 of main请问:这是个什么错误。我该如何调用这个函数(在Delphi中调用正常)
解决方案 »
- 安装了delphi for php ,MYSQL后,还要怎么配置或装什么才能进行PHP的开发?
- 用过Delphi2005的请进来指点一二?
- 编写server 端问题,请高手帮忙!!!分不够再加!
- 请问我在公司使用adsl上网,局域网的,家中也是这种情况,我现在想在公司中控制家中的电脑,使用pcanywhere,请问我如何设置,请详细点,
- 请问大家在Delphi中怎样才能建立一个文件夹,并且这个文件夹是被设定密码,只有知道密码的人才能进入。谢谢!
- 关于TClientDataSet和TDataSetProvider的重用讨论,希望大家多发表意见
- 复制的问题
- 请教各位大虾:如何设置popupmenu的背景颜色?
- 哪里有李维的三本书下啊?
- 《代码大全》下载:http://www.delphidevelopers.com/
- 查找邮件里的某一封信函,比如标题为"Welcome"的这封,然后打开。。
- Application.CreateForm(TForm1, Form1)和Form1:=TForm1.Create(Form1)在应用和原理上有什么区别?
type
ChrArray = array[0..255] of Char
function ShowForm(PDept: ChrArray): boolean; stdcall;
再改PB中的接口调用,也用0..255的Char数组试试PB我不懂大概应该这样吧:
FUNCTION boolean ShowForm(ref Char PDept[256]) LIBRARY "project1.dll"
FUNCTION boolean ShowForm(Char PDept[256]) LIBRARY "project1.dll"
function ShowForm(const PDept: PChar): boolean; stdcall;PB中:
FUNCTION boolean ShowForm(String PDept) LIBRARY "project1.dll"
一个函数传入pchar得到pchar..stdcallPB中调用时,有时候要出错,有时候不出错,
在某些特定的函数之后就要出错,怀疑PB中的string类型跟pchar不完全兼容!
function dosomething(out s:shortstring) :dword ;stdcall;
var
len : integer;
begin
/*对S赋值*/
...
/*获取S的长度*/
len := length(s);
/*从第2个字节将S 前移一位*/
move(s[1],s[0],len);
/*将S 变成null-terminate的字符串*/
s[len] := #0;
result := 1;
end;
参考http://www.china-askpro.com/msg44/qa41.shtml
然后,传入传出的字符串用pchar类型 函数调用类型为stdcall;
是不是要分配好ref string的空间,我不会pb但是听了PB开发人员的介绍好像有这么一条的