delphi 调用 vc 生成的 dll 问题 ( 积分: 100 )

  • 主题发起人 主题发起人 liwenbin
  • 开始时间 开始时间
L

liwenbin

Unregistered / Unconfirmed
GUEST, unregistred user!
在vc中生成dll
在delphi中如何调用vc中声明如下的函数:主要是参数转换问题!谢谢!!!
// 图像镜像导出函数
int _stdcall MirrorBmp(HDC hdcSrc,HBITMAP hbmpSrc,HDC hdcDest,BOOL bDirection)
//图像细化函数
BOOL WINAPI ThiningDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight)
 
在vc中生成dll
在delphi中如何调用vc中声明如下的函数:主要是参数转换问题!谢谢!!!
// 图像镜像导出函数
int _stdcall MirrorBmp(HDC hdcSrc,HBITMAP hbmpSrc,HDC hdcDest,BOOL bDirection)
//图像细化函数
BOOL WINAPI ThiningDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight)
 
function MirrorBmp(hdcSrc,hbmpSrc:THandle;bDirection:Integer):Integer;stdcall;
function ThiningDIB(lpDIBBits:PChar;lWidth,lHight:Integer):Integer;stdcall;
 
function MirrorBmp(hdcSrc: HDC
hbmpSrc: THandle
hdcDest: HDC
bDirection: BOOLean): boolean
stdcall;
function MirrorBmp
external 'GeoTrans.dll' name 'MirrorBmp';
var
SrcDC, DestDC: HDC;
begin
SrcDC := Image1.Picture.Bitmap.Handle;
DestDC := Image2.Picture.Bitmap.Handle;
if MirrorBmp(SrcDC, Image1.Picture.Bitmap.Handle, DestDC, false) then
ShowMessage('True')
else
ShowMessage('false');
end;
结果显示true;但没输出任何东西!!!
 
SrcDC := Image1.Picture.Bitmap.canvas.Handle;
DestDC := Image2.Picture.Bitmap.canvas.Handle;
 
to flamboyant
我试过了,还是不行!!!
 
int _stdcall MirrorBmp(HDC hdcSrc,HBITMAP hbmpSrc,HDC hdcDest,BOOL bDirection)
改成
int _stdcall MirrorBmp(HDC *hdcSrc,HBITMAP *hbmpSrc,HDC *hdcDest,BOOL bDirection)看看
 
function MirrorBmp(hdcSrc: HDC
hbmpSrc: THandle
hdcDest: HDC
bDirection: BOOLean): boolean
stdcall;
函数返回值不是整型么?怎么变boolean了?
 
function ThiningDIB(lpDIBBits:PChar;lWidth,lHight:Integer):Integer;stdcall;
lpDIBBits:PChar可能这样定义有问题,你最好传一个lpDIBBits: array[0..31] of char给它最好
还有HBITMAP和HDC是两个不同的概念,你最好这样写
SrcDC := Image1.canvas.Handle;
DestDC := Image2.canvas.Handle

如果你更保险一点的话,在p1和p2中加入图片,哈哈
 
to gongyuzhuo
还是不行,出错!!!
大家留个email,我把vc的源代码和dll说明传过来大家看看!!怎么在delphi中调用。
要是成功的化,就可意在delphi中调用任何vc中比较好的算法了!!!
 
我看了一下,是调用你自定义的DIBfromBitmap失败,因为没有VC,我在Delphi中跟踪
的结果是调用GetDIBits时参数错误,错误码是$57,参数错误,如果你能用VC写个调用
DLL的例子,估计能知道错误的原因
 
谢谢!!!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部