【转】Delphi7程序调用C#写的DLL解决办法
编写C#dll的方法都一样,首先在vs2005中创建一个“类库”项目TestDll,
using System.Runtime.InteropServices;
namespace TestDll
{
public interface I TestClass
{
void YourProcedure(stirng param1);
}
[ClassInterface(ClassInterfaceType.None)]
public class TestClass:I TestClass
{
public void YourProcedure (stirng param1);
{ //自己的代码 }
}
}
完成之后,设置项目的属性“Make assembly COM-Visible”为选中状态。编译之后得到 TestClass.dll,把此dll放到Delphi主程序目录下。打开vs2005自带的工具“Visual Studio 2005命令提示”,输入
Regasm 路径/TestClass.dll 向系统注册此dll。
Delphi程序调用此Dll方式有两种:
一、打开vs2005自带的工具“Visual Studio 2005命令提示”,输入 TlbExp 路径/TestClass.dll 得到一个TestClass.tlb 文件。打开Delphi,选择“Project”--“import type library”找到刚才的TestClass.tlb,点击 CreateUnit,向delphi中引入一个com接口。
delphi 调用代码如下:
var aClass: TestClass;
begin
aClass : = CoTestClass.Create;
aClass. YourProcedure ('参数');
end;
二、不需生成tlb文件,仿照调用Excel的方式。代码如下:
var aClass: Variant;
begin
aClass:= CreateOleObject('TestDll.TestClass');
aClass.YourProcedure ('参数');
end;
以上两种方法都可以调用成功,其中调用regasm.exe向系统注册dll是必需的。第一种方法需要生成tlb文件,并引入delphi中,操作繁琐,但可以看到接口的定义。第二种方法操作简单,但看不到接口的定义。
转载于:https://www.cnblogs.com/wxy8/archive/2011/07/12/2104292.html
【转】Delphi7程序调用C#写的DLL解决办法相关推荐
- 易语言如何调用c dll文件,易语言调用C++写的DLL
直接调用会弹出堆栈错误的信息,原因是VS默认是__cdcel方式,而易语言是__stdcall,所以调用约定不一致导致堆栈错误. 解决方案很简单,易语言声明DLL函数时"在库中对应命令名&q ...
- C# 调用C++写的dll的实现方法
文章目录 **C# 调用C++写的dll的实现方法** 一. dll的编写 2.C#调用 C# 调用C++写的dll的实现方法 C#调用C++的非托管类的dll其实很简单基本就是固定的调用格式. 一. ...
- VC调用C#写的DLL
From: http://hi.baidu.com/ocnc/blog/item/2c7fc45c1d1f1051fbf2c0ea.html VC中调用C#写的DLL时,对C#这边的DLL有要求,即要 ...
- c#调用C++写的dll导出类,如何实现
网上看了一些都是调用c++写函数能不能实现c#使用c++写的类各位高手请赐教 解决方案 » 类的有一个成员函数,是返回这个类的指针,那么在C#里面就是一个INTPTR,它是什么你不用管.然后C++文件 ...
- QT调用C#写的Dll
QT调用C#写的Dll 参见: https://blog.csdn.net/weixin_42420155/article/details/81060945 C#写的dll是没有dllMain入口函数 ...
- c++调用c#写的DLL
c++调用c#写的DLL: 此文章演示了建立c#的dll: c++建立工程,引入dll: 不能解决的问题: 指定dll的路径,在代码里面直接写 #using "xxx.dll" 必 ...
- QT调用C++写的Dll
C#写的dll是没有dllMain入口函数的,是一种中间语言,需要.Net运行时进行做本地化工作,因此如果要调用C#写的dll,需要依赖.Net运行时,然而Qt中还无法直接调用.Net运行时,最好的方 ...
- 【PhotoScan精品教程】photoscan无法启动此程序,因为计算机中丢失cholmod.dll解决办法
安装完航测软件photoscan,打开时提示:无法启动此程序,因为计算机中丢失 cholmod.dll解决办法. 错误提示: 解决办法: 并不是缺少该动态链接库文件,而是补丁文件拷贝错了.
- 计算机中丢失openal32.dll无法启动游戏,缺少openal32period;dll 解决办法 | 手游网游页游攻略大全...
发布时间:2015-10-09 文明太空玩家将扮演成为探索某星球的第一人,在这段奇妙的旅程中我们能看见很多没有见过的美景和各种神迹,各位玩家是否已经忍不住要去探索了呢. 今天我们一起来看一下文明太空缺 ...
- SQL Server安装问题程序被挂起的错误解决办法
SQL Server安装问题程序被挂起的错误解决办法 SQL Server安装问题程序被挂起的错误解决办法 安装SQL Server2000的时候,安装程序提示我安装程序被挂起,让我重新启动电脑,但我 ...
最新文章
- Linux 准确查找结构体定义位置
- 2.1:CGPROGRAM
- 机器大神 Michael Jordan 教授主题演讲:机器学习——创新视角,直面挑战》
- 关于重构之Switch的处理【一】如果是有序的话,如何处理
- 取两个日期相差几年_干货~44个最常用的日期和时间类函数组合
- go 调用其他文件函数_【C# 调用 Go 语言】0x1 Hello Golang
- mysql 查看有没有drop权限的命令
- 微软发文庆祝 .NET 诞生 20 周年纪念日!
- linux-basic(13)学习shell script
- 清爽登录界面html,基于css3实现扁平简洁清爽的登录注册页面代码
- 牛B装备 XSS 漏洞利用工具[使用教程]
- 二叉树的建立 java_Java中二叉树的建立和各种遍历实例代码
- aac蓝牙编解码协议_蓝牙协议总结
- 华为服务器voip处理性能,voip云服务器注册状态
- Pascal 转 C++ 教程1
- catia里画铰链_基于CATIA的汽车车门铰链设计
- CSS3选择器(全部)
- LeetCode刷题(158)~从尾到头打印链表【递归|辅助栈】
- 【工具】解决Windows7影音制作的错误:C946001E
- 计算机word窗口的组成,推计算机等级考试题库:一级MS Office第三章“Word窗口及其组成”(一)...
热门文章
- 110 同步、异步、阻塞、非阻塞
- AGC016E Poor Turkeys
- Flask 的路由系统 FBV 与 CBV
- JAVA中字符串函数subString的用法小结
- 「本地搭建」worpress博客系统
- 中国农历2013,2014 (zz.IS2120@BG57IV3)
- Session持久化
- Excel关于超级链接的宏命令
- Listen 0.0.0.0:80 Listen [::0]:80
- 提问的智慧 - How To Ask Questions The Smart Way