起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 509|回复: 7

引入控件后的参数传递问题

[复制链接]
发表于 2011-2-10 08:38:10 | 显示全部楼层 |阅读模式
自己包装了一个DLL引入到平台中,dll中定义了一个结构体,用来接收外部的参数,现在在平台中定义了一个一样的结构体,在调用的时候出现这样的提示:

Incompatible types: "Tserverinfo" and "Tserverinfo"

其中 Tserverinfo 是定义的结构体。

请问这样调用正确吗?
回复

使用道具 举报

发表于 2011-2-11 09:54:29 | 显示全部楼层
提示上看是这两个类型不匹配。
楼主具体怎么做的呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-2-11 11:23:54 | 显示全部楼层
在平台中 和 DLL中都是这样定义的.
type
  Tserverinfo=record
    servername:string;
    serverpwd:string;
    serverip:string;
    serverurl:string;
    serverflag:string;
    v_sqlChar;
  end;
回复 支持 反对

使用道具 举报

发表于 2011-2-11 13:41:18 | 显示全部楼层
那具体怎么赋值的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-2-11 16:05:06 | 显示全部楼层
//平台中的代码:
var
  serss:Tserverinfo;
begin
  serss.servername:='tttt';
  serss.serverpwd:='pssss';
  serss.serverurl:='ssssssss';
  serss.v_sql:='sssssss';
  serss.serverflag:='';
  serss.serverip:='';

  mygrid.callpas.getfroms(serss); //此处是调用dll中的函数。

不知道这样赋值有问题没。。
回复 支持 反对

使用道具 举报

发表于 2011-2-11 16:46:27 | 显示全部楼层
有问题,因为平台里定义的结构体与你dll中定义的结构体并不等价。
建议你定义多个参数传入。(或者试试用数组。。。)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-2-12 09:30:49 | 显示全部楼层
结构体 可以正常传参数了。


在delphi中可以正常调用dll,但是在平台中调用却出现错误了。

DELPHI高版本写的DLL,低版本不能调用?
回复 支持 反对

使用道具 举报

发表于 2011-2-12 14:22:32 | 显示全部楼层
引入平台的环境是Delphi6+sp2,你说的dll是指外部调用的dll吗?如果是,那是可以的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-23 14:06 , Processed in 0.037209 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表