起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: dragonsoft

如何导入dll函数库?**

[复制链接]
发表于 2007-10-19 14:37:35 | 显示全部楼层
当然是删掉你自己做的bpl了,删别人的可能会出问题的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-19 15:37:26 | 显示全部楼层
我根本不知道哪个bpl是我自己的啊。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-19 15:45:15 | 显示全部楼层
to alang :能否根据给你的DEMO.RAR怎么导入的步骤说一下,好吗?谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-19 15:54:17 | 显示全部楼层
或直接帮我们生成一下,我们现在项目比较赶啊,客户一直在催。再次谢谢
回复 支持 反对

使用道具 举报

发表于 2007-10-19 15:55:28 | 显示全部楼层
看目录,如果bpl不是在system32目录,或者不是在Delphi目录,就删掉它
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-19 16:54:04 | 显示全部楼层
谢谢。我重装了d6+sp2,已经按手册生成了smdll和pkgSm.bpl

现在的问题是这样的:
脱离x3运行的demo用到2个dll:  ImApi.dll 和 libmySQL.dll
我在x3中引用pkgSm.bpl
以及 smdll.dll(自己生成的)  和ImApi.dll 和 libmySQL.dll

编译相关单元出现错误:
在装载模块File:\C:\Program Files\Justep\X3 Developer\lib\ImApi.dll的时候出现错误。Assertion failure (E:\DEVELOP\BUILD_MOSTNEW\TIB3\SRC_PROTECTED\COMMONLANGUAGE\Metadata\CLIMDAccess.pas, line 1186) 可能是文件内容有误。

如果不加 ImApi.dll 和 libmySQL.dll  ,则编译可以通过,但调用函数运行时会出现Access violation的错误。

要怎么解决? 现在我在x3里没法实现demo原来的功能。

附件中有我封装后的bpl和dll

Demo(dll&bpl).rar

526.36 KB, 下载次数: 132

回复 支持 反对

使用道具 举报

发表于 2007-10-19 17:30:35 | 显示全部楼层
config.xml中,只引入用导入工具生成的dll文件smdll.dll
不能引入  ImApi.dll 和 libmySQL.dll  
运行时候报指针错,是因为你的程序有问题
回复 支持 反对

使用道具 举报

发表于 2007-10-19 17:44:27 | 显示全部楼层
var
  a: Timapi.timapi;
    ip : PChar;
    username : PChar;
    password : PChar;
    db : PChar;
    apicode : PChar;
begin
  a := Timapi.timapi.Create;
    ip := '192.111';
    username := 'sa';
    password := 'sa';
    apicode := 'as';
    db := 'as';
    a.init(ip,username,password,db,apicode);

以上是我导入平台以后的代码,执行a.init时候,过了一段时间出一个指针错误
回复 支持 反对

使用道具 举报

发表于 2007-10-19 17:46:15 | 显示全部楼层
procedure TForm1.Button1Click(Sender: TObject);
var
  a: timapi;
    ip : PChar;
    username : PChar;
    password : PChar;
    db : PChar;
    apicode : PChar;
begin
  a := Timapi.Create;
    ip := '192.111';
    username := 'sa';
    password := 'sa';
    apicode := 'as';
    db := 'as';
    a.init(ip,username,password,db,apicode);
end;

以上是在Delphi中的代码,执行a.init时候,过一段时间出一个错误(Privilage?? error)
可以肯定从平台上调用已经经如了imapi.dll了,至于为什么出错就要看看imapi.dll是怎么写的了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-19 23:58:38 | 显示全部楼层
以上是在Delphi中的代码,执行a.init时候,过一段时间出一个错误(Privilage?? error)
可以肯定从平台上调用已经经如了imapi.dll了,至于为什么出错就要看看imapi.dll是怎么写的了
===因为这个发短信需要另一个设备的,我的机子连接上那个移动设备,就可以正常init,如果没连接那个设备肯定是不能init的。
在我的机子上,运行demo是确定一定以及肯定可以init成功以及发短信的。
就是smdll导入到x3后,就会出现错误了。

config.xml中,只引入用导入工具生成的dll文件smdll.dll
不能引入  ImApi.dll 和 libmySQL.dll  
运行时候报指针错,是因为你的程序有问题
===这我觉得有些奇怪。smdll.dll里面的函数是要用到ImApi.dll 和 libmySQL.dll 的吧? 如果不引入的话,smdll.dll里面的函数怎么知道怎么实现呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-29 20:18 , Processed in 0.044450 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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