这篇文章就是关于COM组件的编写和调用的,主要包含了使用VC6.0编写和调用COM组件,VS2005中使用C#编写和调用COM组件,以及在VC6.0和VS2005之间互相调用COM组件。 前一阵在工作中做项目的时候,遇到了COM组件的调用和使用问题,当时研究和好一阵,才把中间的环节打通,现在写出来为大家提供方便,这里包含了四个类型: 1、在VS2005中,C#编写DLL并使用C++调用 2、在VS2005中C#编写的COM组件,使用VC6.0调用 3、在VC6.0中编写COM组件,使用VS2005 C#调用 4、在VC6.0中编写COM组件,使用VC6.0调用 其中每个类型都写了两个程序,一个为COM组件程序,一个为调用程序 程序实现: 1、在VS2005中,C#编写DLL并使用C++调用 (1)C#编写DLL程序 建立 C#编写的DLL程序 AddDll,项目类型为:类库 程序代码: 1. using System; 2. using System.Collections.Generic; 3. using System.Text; 4. 5. namespace AddDll 6. { 7. public class Add 8. { 9. public int iadd(int a, int b) 10. { 11. int c = a + b; 12. return c; 13. } 14. } 15. } 16. (2)C++编写调用程序 建立C++的Win32控制台应用程序UseDll,项目类型为:Win32控制台应用程序 配置:右键点击解决方案资源管理器中的UseDll,选择“属性”,将公共语言运行库支持设置为“公共语言运行库支持(/clr)” C++编写调用程序:公共语言运行库设置 程序代码: 17. #include "stdafx.h" 18. #include "stdio.h" 19. 20. #using "..\debug\AddDll.dll" 21. using namespace AddDll; 22. 23. int _tmain(int argc, _TCHAR* argv[]) 24. { 25. int result; 26. Add ^add = gcnew Add(); 27. result = add->iadd(10,90); 28. printf("%d",result); 29. scanf("%s"); 30. return 0; 31. } 32. 2、在VS2005中C#编写的COM组件,使用VC6.0调用 (1)VS2005中使用C#编写COM组件 建立C#编写的COM组件,项目类型为类库 配置:右键点击解决方案资源管理器中的AddCom,选择“属性”,选择“生成”,选择“为COM Interop注册(_P)” 打开 AssemblyInfo.cs文件,设置[assembly: ComVisible(true)] 这用就可以生成 AddCom.tlb文件 VS2005中使用C#编写COM组件:COM生成设置 程序代码: 33. using System; 34. using System.Collections.Generic; 35. using System.Text; 36. using ...