我想知道如何将现有的c#winforms应用程序转换为类库,然后从mfc应用程序中调用它。有没有关于如何做到这一点的参考?我已经尝试使用Google搜索了,但是,除了需要将ComVisible
属性设置为true
之外,我还没有找到太多信息。
感谢。
答案 0 :(得分:3)
在visual studio项目属性中将输出类型更改为类库。这将使您的项目编译成一个DLL。同时将comvisible属性设置为true 。因此,将生成一个可调用的包装器和一个可以在mfc项目中使用的tlb文件。
此外,我认为以下链接是关于COM Interop如何在.Net
中工作的非常好的详细解释答案 1 :(得分:1)
查看.NET附带的regasm.exe工具。它将生成必要的注册表项(以及可选的.tlb文件),以允许COM组件访问您的程序集。
答案 2 :(得分:1)
有an MSDN sample涵盖了将Winforms用户控件放在MFC应用程序上 - 对话框或视图。除了代码,这应该显示您将需要的项目设置。
答案 3 :(得分:0)
一旦你正确地构建了这个版本,那么你需要让它正常运行。主要问题可能是从非托管窗口正确地为Windows窗体创建父窗口,基本上使托管窗体生活在作为非托管应用程序启动的内部。如果您不使用WPF作为非托管代码和托管表单之间的UI桥接,那么您将需要自己完成这项工作。您可以谷歌此主题获取更多信息,目前没有这个方便的链接。