我在C#中制作了一个dll,使其显示为com,然后在delphi中使用了它。为了做到这一点,我必须注册该dll,以便可以将其作为组件安装在我的delphi ide中。 (我用互操作性东西注册了dll,然后在delphi中去安装组件>类型库>选择了我的com dll,它创建了所有要使用的东西。)
我现在面临的问题是我想在另一台计算机上使用exe而不需要注册dll。可以使用注册的com dll编译exe文件吗?
我对此有一个解决方案是不使用com obj,而只使用非托管dll并导出我想要的所有方法,但是我更喜欢将dll / com嵌入到我的exe中,而我似乎找不到一个解决方案,我不知道是否可能。
答案 0 :(得分:1)
使用CLR技术的动态加载来加载和使用DLL。参考此Hosting the .NET runtime in a Delphi Program,您可能会得到答案。
在动态加载技术中,您无需注册DLL,而只需为DLL生成一个TLB和接口,并通过该DLL使用它即可。