在delphi 中写了个dll,在pb9.0中调用要出错,请大家帮我看看是什么原因?

飞扬残月 2008-02-27 03:13:59
delphi中代码:
library Project1;

uses
SysUtils,
Classes,
ExtCtrls,
Jpeg,
Graphics;

{$R *.res}
procedure setpic(AOwner:TComponent;fromfile:pchar);stdcall;
var
Jpeg:TjpegImage;
tmpBmp:TBitmap;
image1:TImage;
image2:TImage;
begin
image1:= TImage.Create(AOwner);
image2:= TImage.Create(AOwner);
jpeg:=TjpegImage.Create();
tmpBmp:=TBitmap.Create;
try
image1.picture.LoadFromFile(fromfile);
Image2.Height:= 425;//新图像高度
Image2.Width := 512;//新图像宽度
Image2.Canvas.StretchDraw(Image2.ClientRect,Image1.Picture.Graphic);
image2.picture.savetofile(fromfile);
tmpbmp.loadfromfile(fromfile);
jpeg.Assign(tmpbmp);
jpeg.SaveToFile(fromfile);
finally;
Image1.Free;
Image2.Free;
jpeg.Free;
tmpbmp.Free;
end;
end;

exports
setpic;
begin
end.
pb中申明:SUBROUTINE SetPic(string fromfile) Library "project1.dll" Alias
For "setpic;ansi"//申明function也不行
pb中调用,setpic(ls_pathname)
pb中报错
怎么解决这个问题啊
...全文
155 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
feixianzhi 2008-03-13
  • 打赏
  • 举报
回复
注意引用时的大小写、参数的传递方式、参数类型!
xiaoHitler 2008-03-09
  • 打赏
  • 举报
回复
PB申明中注意大小写试试,setpic
moonlighter 2008-03-01
  • 打赏
  • 举报
回复
你的Dephi的setpic(AOwner:TComponent;fromfile:pchar);是两个参数啊,PB中怎么申明成一个参数了?
moonlighter 2008-03-01
  • 打赏
  • 举报
回复
问题是第一个参数怎么传?它是Dephi的一个在,在PB中这个参数怎么定义?而且它一定是引用型,应加ref的。
Dephi已有两年多没使用了,全忘了。
飞扬残月 2008-03-01
  • 打赏
  • 举报
回复
申明成两个也不行
SKY_4K_PPM 2008-03-01
  • 打赏
  • 举报
回复
没玩过DELPHI ,如果是楼上所说,楼主真该...........
提供给第三方软件,调用COM组件DLL方式进行实现,如delphi、PB等。调用方法与黑龙江省医保社保卡调用方式一致。各软件调用方法也可自行网上查询,如“delphi调用C#的COM组件DLL”。 基于C#编写的COM组件DLL,可实现SM2签名验签,SM4加解密,100%适用于黑龙江省国家医保接口进行应用。 1、调用DLL名称:JQSM2SM4.dll 加解密类名:JQSM2SM4.SM2SM4Util CLSID=5B38DCB3-038C-4992-9FA3-1D697474FC70 2、GetSM2SM4函数说明 函数原型public string GetSM2SM4(string smType, string sM2Prikey, string sM4Key, string sInput) 1)参数一smType:填写固定字符串,识别功能,分别实现SM2签名、SM4解密、SM4加密。SM2签名入参填写“SM2Sign”、SM4解密入参填写“SM4DecryptECB”、SM4加密入参填写“SM4EncryptECB”. 2)参数二sM2Prikey:SM2私钥 3)参数三sM4Key:SM4密钥 4)参数四sInput:当smType=SM2Sign,则sInput入参填写SM4加密串;当smType=SM4DecryptECB,则sInput入参填写待解密SM4密文串;当smType=SM4EncryptECB,则sInput入参填写待加密的明文串; 5)函数返回值:当smType=SM2Sign,则返回SM2签名信息;当smType=SM4DecryptECB,则返回SM4解密信息;当smType=SM4EncryptECB,则返回SM4加密信息;异常时,则返回“加解密异常:详细错误说明” 3、购买下载后,可加QQ65635204、微信feisng,免费提供技术支持。 4、注意事项: 1)基于.NET框架4.0编写,常规win7、win10一般系统都自带无需安装,XP系统则需安装;安装包详见压缩包dotNetFx40_Full_x86_x64.exe 2)C#编写的DLL,需要注册,解压后放入所需位置,使用管理员权限运行“JQSM2SM4注册COM.bat”即可注册成功,然后即可提供给第三方软件进行使用,如delphi、PB等。

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧