![](/img/trans.png)
[英]Can an exe built on .net 2.0 refer to a dll built on .Net 4.0
[英]Calling .net 4.0 built dll in Delphi 7
搜索并应用以下问题的所有解决方案后,无法正常工作。 我做了什么 - 1.我在C#中创建了一个.dll,使其可见。 我用regasm抄了.tlb。 3.创建了一个Delphi 7项目,我导入了这个类型库(.tlb)并调用了这个dll的函数。 我的电脑上运行正常。
现在当我将这些所有文件(包括.dll,甚至.dcu)复制到另一台PC(安装了.Net framework 4.5)并尝试运行.exe时,它给了我错误“ Class not registered ”,当我尝试注册它时使用RegSvr32然后它显示错误 - “ 未找到入口点 ”。
我还缺少什么? 在另一台PC上运行带有dll的Delphi 7 exe还有其他先决条件吗?
要注册.net程序集,您必须使用regasm
而不是regsvr32
。
使整个组件COM可见可能是一个错误。 你真的想让所有公共类型的COM都可见吗? 将ComVisible
属性应用于特定类型会更常见。
您不需要复制dcu文件。 这些用作Delphi编译器的中间文件。 假设您没有使用运行时包,只使用可执行文件,注册的程序集就足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.