疯猪 发表于 2008-6-26 08:31:45

如何翻译.h直接封装dll
求教

无心人 发表于 2008-6-26 09:47:29

你下载的目录有win32api 目录
里面两个问题件
hugecalc.c
hugecalc.h

对照hugecalc.h和hugecalc.c

HHUGEINT HI_generatePrime( HHUGEINT hHugeInt, const UINT32 u32Bits );

你这么写
function HI_generatePrime(HHUGEINT hHugeInt, const UINT32 u32DecDigits): HHUGEINT; stdcall; external 'hugecalc.dll';

这时,缺少个UINT32的定义
type
    UINT32 = integer;
    HHUGEINT = ^integer;

然后把需要的#define转换成const定义

再编译,肯定缺少一堆定义,你再想法子一个个照上面的转化

疯猪 发表于 2008-6-26 17:08:28

谢谢,努力进行中

无心人 发表于 2008-6-26 17:20:06

:loveliness:

呵呵,工作量很大哦

疯猪 发表于 2008-6-26 17:30:38

还是不懂,烦恼

疯猪 发表于 2008-6-26 17:32:02

就没有办法简单调用吗?越简单越好

无心人 发表于 2008-6-26 17:37:05

应该是最简单的了

gxqcn 发表于 2008-6-26 21:41:13

帮楼主搜到一篇文章:计算机世界网-Delphi中如何调用VC++创建的动态链接库
里面有在Delphi中调用VC++创建的动态链接库的实例,包括隐式调用和显式调用,
而HugeCalc.dll已包含类似该文MaxMin.DLL的导出接口方式,楼主完全可以自己参照之进行。
(虽然,我一直认为用tlb会更简化操作流程,可惜你,:L )

如果你仍无法成功,那我实在无话可说了。

无心人 发表于 2008-6-26 21:45:36

TLB是调ActiveX的方法
但ActiveX会涉及到很多OLE数据转化
而且最终还要调用DLL

还不如直接调DLL

gxqcn 发表于 2008-6-26 21:52:23

先撇开运行效率不讲,
TLB无须用户再写声明等,导入成本非常低,
即对编程者要求门槛很低。
页: 1 2 3 4 [5] 6 7
查看完整版本: delphi调用hugecalc.dll问题