一个DLL,功能为查询在库商品,返回商品的ID,名称,生产厂家,数量,单价
供主程序使用。
请问这个DLL要怎样写?
请从下面修改DLL 中
function getgoods():integer;
begin
goodsid:=2650;
goodsname:='金士利';
goodsfactname='天津金士利';
goodsqty=560;
goodsprice=7.2;
result:=goodsid;
end;主程序
function getgoods():integer; external 'MyDLL.dll'; goodsid:=getgoods();
goodsname:=????
goodsprice:=????
我原来想把商品的名项属性用 @ 组合起来,返回一个PChar,在主程序中再拆分,可是那样是不是很麻烦?
供主程序使用。
请问这个DLL要怎样写?
请从下面修改DLL 中
function getgoods():integer;
begin
goodsid:=2650;
goodsname:='金士利';
goodsfactname='天津金士利';
goodsqty=560;
goodsprice=7.2;
result:=goodsid;
end;主程序
function getgoods():integer; external 'MyDLL.dll'; goodsid:=getgoods();
goodsname:=????
goodsprice:=????
我原来想把商品的名项属性用 @ 组合起来,返回一个PChar,在主程序中再拆分,可是那样是不是很麻烦?
解决方案 »
- 谁推荐个邮件客户端程序源码学习下,顺便散分
- 问个文件关联的问题
- 水源看到一个贴子,有感于某兄的QQ名字而发!
- 分数不多,请大家帮助一下,封装别人的Dll到自己的Dll内部,如何做??
- MDI:显示子窗体的问题
- 谁利用api函数让panel空透明的矩形框?
- "Ctrl +其它键" 组合键如何写?
- Delphi7做的图像处理软件怎么增加相框功能
- 急!为什么RichEdit中的CFM_HIDDEN(隐藏)没有效果,象其他的CFM_STRIKEOUT(删除线)却有效果,我用的是RichEdit3.0版本。
- 小女又有问题了,实现SQL 语言方面的!
- 急救,请问如果用程序代码指令在打印时开钱箱,如何控制手动开钱箱~~~
- 不在乎分,只要给可用联接,即开贴给分(每本200分,也可以开口要。)
Tgood
{
sid:Integer;
...
}function getgoods(p):integer;
begin
p.goodsid:=2650;
...
result:=p;
end;
没仔细调,大概就是这个思路吧
Goods = record
begin
goodsid :integer;
...
end;一般最好是在调用方负责分配内存 然后传入
我原来想把商品的名项属性用 @ 组合起来,返回一个PChar,在主程序中再拆分,可是那样是不是很麻烦?
// 定义成统一的结构体后 直接获取就是 不麻烦
function getgoods(var goodsid:integer;var goodsname, goodsfactname: pchar; goodsqty, goodsprice: float):boolean;
其实如果你的字段不多,并且都是相对固定的话,按照aiirii(ari-爱的眼睛) 的做法是最简单的。把每个参数直接设为var,在DLL的函数里面直接给参数赋值,主程序就可以拿来用了。