【转自元宝兄】关于delphi Com+调用C# DLL的一点说明
现在来说一下调用过程:【本地调试通过,环境是XP,delphi7.0,vs2005】
首先在vs2005中创建一Class Library项目,添加2个cs文件,代码分别为:
声明一个接口
2using System.Collections.Generic;
3using System.Text;
4namespace beep_Class
5{
6 public interface IGO
7 {
8 string GO();
9 }
10}
实现该接口
2namespace beep_Class
3{
4 [ClassInterface(ClassInterfaceType.None)]
5 public class Class1:IGO
6 {
7
8 public string GO()
9 {
10 return "aaaaabbbb";
11 }
12 }
13}
然后在生成类库之前设置一下该项目的属性,如下图所示:
注意红线标示的部分。
然后对此编译成功的DLL【beep_Class.dll】进行处理,打开vs2005自带的命令行工具。输入 tlbexp beep_Class.dll
生成 beep_Class.tlb文件。
这一步有个更好的方法,即在VS2005中DLL的“项目属性”下“生成事件”添加“生成后事件命令行”:
"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\tlbexp" "$(TargetPath)"
下一步是打开delphi7,新建一个Application,在Form上增加一Button。然后选择Project下的,import type library,把刚才生成的Tlb文件【beep_Class.tlb】添加进来,然后点击 CreateUnit就ok了
delphi中的Button事件代码如下:
2var
3 co:Class1;
4 a:string;
5begin
6 co:= CoClass1.Create;
7 a:=co.GO();
8 showmessage(a);
9end;
10end.
编译通过,运行结果如下图:
注意:运行的时候要把Beep_Class.dll放在程序目录中。
转载于:https://www.cnblogs.com/ahjxxy/archive/2009/09/25/1573868.html
【转自元宝兄】关于delphi Com+调用C# DLL的一点说明相关推荐
- 在Delphi中调用外部DLL 之External DLL 导入DLL
调用一个DLL比写一个DLL要容易一些.首先给大家介绍的是静态调用方法,稍后将介绍动态调用方法,并就两种方法做一个比较.同样的,我们先举一个静态调用的例子. unit Unit1;interfaceu ...
- delphi 调用Msftedit.dll,重写Richedit,支持RTF画表格
delphi 2009 调用Msftedit.dll,重写Richedit,能更好地支持RTF,特别是画表格画表格的具体思路分析4个步骤:1 指定类名称 RichEdit50Wvar FMoudlEd ...
- 奇淫怪巧之在Delphi中调用不申明函数
前一阵子,研究了一段时间的Win32Asm,研究到后来发现Win32的ASM实际上还是和C版的介绍的一样.甚至还封装了一个简版的类似VCL库结构框架的32ASM结构库,不过搞着搞着就没兴趣了,也没继续 ...
- 如何在Delphi 中调用C#生成的DLL类库
最近需要写一个和给上位机和下位机通讯的接口,而上位机是用Delphi开发的,所以就需要用C#做一类库给Delphi调用 大概步骤: 1.首先在VS2008中新建一个类项目名为TestDelphi,然后 ...
- Delphi 如何调用 OpenCV?
OpenCV 在 Delphi 中的使用一直是个麻烦的事情. 因为要翻译 C++ 的头文件.工作量那是相当的巨大. 想了一下,既然 OpenCV 支持 Java,那么可不可以通过 JNI 的方式在 ...
- Delphi XE调用百度地图
百度地图在很多应用中会起到画龙点睛的作用,可以非常好的改变人机交互的模式,这里列出delphi xe调用百度地图的方法,通过嵌入HTML语言进行操作,主要操作点如下: 1.定义自己使用的HTML语言, ...
- 如何在MFC客户端调用COM DLL
也许有人会认为这是一个非常小儿科的问题.不过,我还是颇花费了一点时间和精力才搞清楚的.OK, 下面简单谈一下如何去做. 可以有很多方法生成一个COM DLL.比如,VB, VC++, DELPHI等等 ...
- C# 调用C++ dll 返回char*调用方式(StringBuilder乱码)
// CDLLDemo.cpp : 定义 DLL 应用程序的导出函数. // #include "stdafx.h" #include "string.h" # ...
- C#调用C++DLL类的方法
C++的优势在于高效灵活,C#的优势在于简单易用,两者结合起来对项目开发来说是件好事,而且C++不容易反编译,也保障了代码的安全性,如果一些核心算法使用C#编写,那么保密就是一个问题. C++ ...
最新文章
- AMD 再次抨击基准测试工具 SYSMark 偏袒英特尔
- Django值应用和分布式路由
- java之Map和Collection
- 公司用的非标普通自动化用单片机还是plc_PLC的介绍
- 群晖docker安装cms_Nas码农篇:群晖Docker安装Gitlab
- android 时间控件使用,android 时间控件的使用
- MATLAB学习笔记(十七)
- cx是什么简称_80年的5角,在纸币收藏界简称为8005
- 机器学习中常用的优化方法
- 送给那些有代码基础但仍旧不会学自动化测试的朋友们
- 微信打飞机游戏(python)
- VMware Explore 2022 China,赋能中国企业加速实现云智能
- 蓝牙连接测试系统软件,蓝牙测试软件官方版
- 在腾讯云部署一个自己的网站 问题总结
- Invalid format specifier的解决方法
- 去除停用词并绘制词云图
- 黄金分割法python实现
- Invalid bound statement (not found): com.itheima.mapper.userMapper.SelectAll
- 最牛逼 Java 日志框架 — Log4j2,性能无敌,横扫对手.....
- pageoffice在Edge浏览器、谷歌浏览器42及以上版本和火狐浏览器52及以上版本兼容处理