C#的DLL如何在Delphi中使用? ( 积分: 0 )

  • 主题发起人 xue_anan
  • 开始时间
X

xue_anan

Unregistered / Unconfirmed
GUEST, unregistred user!
C#的DLL如何在Delphi中使用!你们是怎么解决这个问题的?
 
有点麻烦。这里有一篇文章:
http://www.delphibbs.com/keylife/iblog_show.asp?xid=24999
 
不能使用!
。Net中的 DLL不 过是托管代码
 
托管代码不能在原生应用程序里边使用,必须修改为非托管代码才行
 
当然可以。
1.如果那个dll注册了COM组件,你可以直接以组件方式调用;如果实在想通过COM方式使用,你可以反编译成IL,然后再加上注册COM属性重新编译一次。
2.如果那个dll没有注册COM组件,你可以在Delphi中调用mscoree.dll中的COM组件构造一个.net clr host。不过这项技术的确有点复杂,要完全弄明白,如果你有比较好的COM基础的话,可以写一个中篇小说的篇幅。
 
to barton:
高手就是高手~~
接触C#不久,希望多多讨论 ~~
 
偶在这篇文章中早就说得很明白了,可惜没人看撒:)
http://www.delphibbs.com/keylife/iblog_show.asp?xid=24999
 
我错我错~
误导人家~
道歉!
顶~
 
把那个dll注册成com方式去调用就行了,
注册的方法是: 进入.NetFrameWork的命令行下运行下面命令
1 cd 到你那个dll的绝对路径下
2 regasm dll的绝对路径+dll文件名
通过上面两步就把c# 写的dll注册成com了
然后通过delphi的 import Library 导入该com,create Unit 成delphi能引用的单元文件
就行了
good luck for you !!
 
dingbaosheng 和 lisongmagic 所述的方案正是我说的方案1。这两个方案都有一个前提,就是要求所生成的DLL与COM兼容,可以与COM进行互操作。具体讲,Assembly的ComVisible=true。更多的时候如果是别人提供的assembly不一定支持。这时候就需要建立自己的.net clr host了。
 
顶部