| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 245 人关注过本帖
标题:Delphi7调用C#dll , 提示系统找不到指定的文件
只看楼主 加入收藏
yangshizhe
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-10-25
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
Delphi7调用C#dll , 提示系统找不到指定的文件
Delphi调用C#开发的DLL, 网上说要用TLB才可以。  按照网上说的生成TLB文件然后注册DLL。

USE SCardDriverHLJ_TLB;

procedure TFrmMain.readcardClick(Sender: TObject);
var
  rc: SCard;
begin
  rc:= CoSCard.Create;
  showmessage( rc.iReadCardBas(1 , self.le_hospcode.Text) );
end;

但是一运行就提示系统找不到指定的文件,追踪看就是在showmessage这一句上出的错,谁能指点一下怎么回事啊?
搜索更多相关主题的帖子: 指定的文件 系统找不到 提示 调用 dll 
2021-10-25 14:22
自由而无用
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:61
专家分:1456
注 册:2021-8-9
收藏
得分:20 
null

[此贴子已经被作者于2021-11-4 17:34编辑过]

2021-10-25 15:19
yangshizhe
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-10-25
收藏
得分:0 
这个是在工程目录下的。。。 现在怀疑可能是REGASM没用明白的问题。。。
2021-10-26 09:11
yangshizhe
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2021-10-25
收藏
得分:0 
想换种思路,用其它方式读DLL,所以把代码改成:
procedure TFrmMain.Button1Click(Sender: TObject);
var
  rc: Variant;
begin
  rc:= CreateOLEObject('.\SCardDriverHLJ.SCard');
  showmessage(  rc.iReadCardBas(1 , self.le_hospcode.Text)  );
end;

原DLL在执行文件下,且可以看到代码里面内容:
const
  // TypeLibrary Major and minor versions
  SCardDriverHLJMajorVersion = 3;
  SCardDriverHLJMinorVersion = 0;

  LIBID_SCardDriverHLJ: TGUID = '{7E1081FE-6CA4-4173-99A0-402D64E8B608}';

  DIID_IF_SSCard38: TGUID = '{06A78826-B568-4A68-A355-C64168A9C0A0}';
  DIID_IF_HLJBHK: TGUID = '{8B09788F-E52C-44FC-B4DB-AC1B06B41798}';
  CLASS_HLJBHK: TGUID = '{6DA7A805-DB3B-4F72-8DA9-9D75D7C7484D}';
  DIID_IF_SSCard: TGUID = '{619DBE0F-638F-48C1-999C-E44CBBA80B09}';
  CLASS_SCard: TGUID = '{0344F082-98AD-4CAA-925F-EC6B94115CF8}';
  CLASS_SCard38: TGUID = '{D9532F10-603B-4BF7-87AE-F4130EF43553}';
type

// *********************************************************************//
// Forward declaration of types defined in TypeLibrary                    
// *********************************************************************//
  IF_SSCard38 = dispinterface;
  IF_HLJBHK = dispinterface;
  IF_SSCard = dispinterface;

// *********************************************************************//
// Declaration of CoClasses defined in Type Library                       
// (NOTE: Here we map each CoClass to its Default Interface)              
// *********************************************************************//
  HLJBHK = IF_HLJBHK;
  SCard = IF_SSCard;
  SCard38 = IF_SSCard38;

我需要的函数在SCard中。。。。这么引用有什么问题吗?怎么一点button1就报错:无效的类字符串;
2021-10-26 09:42
快速回复:Delphi7调用C#dll , 提示系统找不到指定的文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.071210 second(s), 8 queries.
Copyright©2004-2021, BCCN.NET, All Rights Reserved