首先,我对COM还是比较陌生的,目前还很困惑。我已经在MSDN和一些网站上阅读了许多有关COM的文档,但其中许多看起来都已经过时且过于复杂。
以下是我认为需要完成此工作的步骤。它还没有起作用,所以我肯定缺少某些内容,但是通过提供我的步骤清单,我希望有人能找到问题所在:
1. 创建C#控制台应用程序项目。我把它命名为CSharpApp 2. 创建一个C++ ATL项目。我称其为ComLib.Interop。 - 添加一个类(模板:ATL简单对象),我将其称为“InteropDemo”。 - 在类视图中,右键单击IInteropDemo并添加HelloWorld方法。 3. (已删除,保留以确保答案中编号正确)。 4. 编译代码。 5. 将ComLib.Interop.dll引用添加到CSharpApp。 - 在编译后的COM dll上调用regsrv32.exe,然后在“添加引用…”中的COM选项卡中选择DLL。 6. 在Program.cs中的Main方法中创建一个InteropDemo类并调用HelloWorld方法。 7. 成功!
感谢回答,我更新了问题以反映综合解决方案。
以下是我认为需要完成此工作的步骤。它还没有起作用,所以我肯定缺少某些内容,但是通过提供我的步骤清单,我希望有人能找到问题所在:
1. 创建C#控制台应用程序项目。我把它命名为CSharpApp 2. 创建一个C++ ATL项目。我称其为ComLib.Interop。 - 添加一个类(模板:ATL简单对象),我将其称为“InteropDemo”。 - 在类视图中,右键单击IInteropDemo并添加HelloWorld方法。 3. (已删除,保留以确保答案中编号正确)。 4. 编译代码。 5. 将ComLib.Interop.dll引用添加到CSharpApp。 - 在编译后的COM dll上调用regsrv32.exe,然后在“添加引用…”中的COM选项卡中选择DLL。 6. 在Program.cs中的Main方法中创建一个InteropDemo类并调用HelloWorld方法。 7. 成功!
感谢回答,我更新了问题以反映综合解决方案。