搜索并应用以下问题的所有解决方案后,无法正常工作.我做了什么 - 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编译器的中间文件.假设您没有使用运行时包,只使用可执行文件,注册的程序集就足够了.