怎么用Vc++6.0调用一个.Net编写的Com+服务组件

作者&投稿:邗河 (若有异议请与网页底部的电邮联系)
C#中怎么使用C++写的COM组件~

1、新建一个C# console项目,比如叫Test(winform的也是一样道理,只是Console调试更方便而已。第一次在C#中调用COM组件时,建议先用Console试试,否则会搞得一头烟)
2、添加引用:

在弹出的对话框中选COM子页,找到ATLProjectTest 1.0类型库(或类似的东西)
就会发现在Test->引用下多了ATLProjectTestLib

3在主函数(program.cs)中调用组件

using System;using System.Collections.Generic;using System.Linq;using System.Text;using ATLProjectTestLib;namespace Test{ class Program{ static void Main(string[] args){ATLProjectTestLib.FunTestClass f1 = new FunTestClass();Console.Write (f1.Sum(3,4));}} }

为了帮助读者更快地体会到使用VC++编写COM client的效果,我建议您从上诉链接中下载最新的release,并按照如下步骤搭一个简单的测试环境:
Step1. 使用Visual Studio 2008打开CodeFx的solution文件(Visual Studio需要run as admin)。
Step2. Build其中的CppCOMClient和MFCCOMClient示例。由于项目依赖性的设置,这两个VC++ example所依赖于的COM组件(CSDllCOMServer, ATLDllCOMServer, ATLExeCOMServer)也会被编译并注册。
Step3. 直接运行CppCOMClient,并得到如下输出。CppCOMClient演示的是使用native C++来创建和使用进程内COM组件。这个COM组件既可以是用native代码写的,也可以是用.NET语言写的。
Step4. 直接运行MFCCOMClient,并得到如下输出。MFCCOMClient演示的是使用MFC的class wizard来创建并使用一个进程外的COM组件。
简单的测试到此结束。下面我们来看看编写一个VC++的程序来使用COM组件的一般方法:方法一:直接使用COM API,例如,CoCreateInstance以及IDispatch接口中定义的方法GetIDsOfNames,Invoke来创建和使用COM组件。当然,前提是那个COM组件支持IDispatch。CodeFx/CppCOMClient/RawAPI.cpp是该方法所对应的例子。
方法二:使用VC++的#import directive,导入目标COM组件的type library并自动生成一套包装好的强类型的类和智能指针。这极大程度地方便了开发人员,因为生成的类和智能指针将复杂的COM API,类型转换等内容都隐藏了起来,同时开发者还可以受益于Visual Studio的intellisense。CodeFx/CppCOMClient/ImportDirective.cpp是该方法所对应的例子。另外,值得注意的是,这个例子演示了使用一个.NET 写的COM组件(CSDllCOMServer)。对于.NET写的COM组件,我们额外需要#import mscorlib.tlb。
方法三:如果您开发的程序支持MFC,那您将更大程度地得益于MFC强大的class wizard。这个class wizard将方法二中的#import directive都封装隐藏了。您只需轻点几下鼠标,便可以无缝透明地创建和使用COM组件,就好像他是一个普通的class一般。

才把中间的环节打通,现在写出来为大家提供方便,这里包含了四个类型:
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,项目类型为:类库
程序代码:
using System;
using System.Collections.Generic;
using System.Text;

namespace AddDll
{
public class Add
{
public int iadd(int a, int b)
{
int c = a + b;
return c;
}
}
}

(2)C++编写调用程序
建立C++的Win32控制台应用程序UseDll,项目类型为:Win32控制台应用程序
配置:右键点击解决方案资源管理器中的UseDll,选择“属性”,将公共语言运行库支持设置为“公共语言运行库支持(/clr)”
公共语言运行库设置
C++编写调用程序:公共语言运行库设置
程序代码:
#include "stdafx.h"
#include "stdio.h"

#using "../debug/AddDll.dll"
using namespace AddDll;

int _tmain(int argc, _TCHAR* argv[])
{
int result;
Add ^add = gcnew Add();
result = add->iadd(10,90);
printf("%d",result);
scanf("%s");
return 0;
}

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生成设置
程序代码:
using System;
using System.Collections.Generic;
using System.Text;
u

(2)VC6.0编写调用程序
使用VC6.0编写建立MFC应用程序UseCom,项目类型为MFC AppWizard(exe)

3、在VC6.0中编写COM组件,使用VS2005 C#调用
(1)VC6.0编写COM
使用VC6.0建立COM组件,工程类型:ATL COM AppWizard
程序代码:
接口:

(2)VS2005使用C#编写调用程序(网站程序)
使用VS2005建立网站UseCom
配置:在解决方案资源管理器中的主目录点击右键,选择添加引用,选择COM,添加刚刚建立的AddCom 1.0 Type Library
在程序中要using编写的COM组件:using ADDCOMLib;
引用COM
VS2005使用C#编写调用程序:引用COM
程序代码:
u

4、在VC6.0中编写COM组件,使用VC6.0调用
(1)VC6.0编写COM组件
使用VC6.0建立COM组件,工程类型:ATL COM AppWizard
程序代码:
接口:

(2)VC6.0编写调用程序
使用VC6.0建立MFC应用程序UseCOM,调用刚刚建立的COM组件
将上面程序AddCom生成的AddCom.dll放入本程序的工程目录和程序生成目录中
在StdAfx.h中加入:

代码请参考:http://blog.csdn.net/fwj380891124/article/details/6719669


怎样利用VC++6.0创建一个简单的C程序
对于学C语言的各位同学来说,利用VC++6.0编程是一项基本的学习技能,但是对于新手来说,可能也存在不懂如何创建一个简单C程序的步骤,今天我就分享一下在VC++6.0中创建一个简单C程序的步骤。首先,打开我们的VC++6.0编程软件,点击左上角的“文件”菜单,并选择“新建”接着,选择“win32 console ...

win10中怎么运行vc6.0?win10不兼容vc6.0的解决办法
虽然处于16岁花季的VC6.0已经被抛弃了,但是各位小伙伴的老师还是执着的热爱着他,下面介绍如何在win10下兼容vc 1、进入vc的文件夹 2、将MSDEV.exe重命名为MSDEVL.exe 3、右键单击MSDEVL.exe选择属性,进入兼容性页面 4、勾选以兼容模式运行这个程序 5、注意,改完的快捷方式很丑。所以我们要修改它...

怎么使用vc++6.0编程?
1、首先打开Microsoft Visual Studio 2010如下图:然后点文件---新建---项目,如下图:然后在已安装的模板下选Win32---右边选Win32控制台应用程序---最后在下面输入项目名称,然后点确定,如下图:点确定后会出现如下图,接着点下一步:点下一步后会出现如下图,把控制台应用程序和空项目选中,...

vc++6.0使用教程
软件是一个有用而又神奇的东西,既然到学校里学软件,第一门课就是C语言啦。电脑:华为MateBook14 系统:Windows10 软件:vc1.0 1、首先打开vc,看见中间的窗口了吧,可以点击c结束(可能你的不是c结束但没有影响),或者直接点右上角的X关闭中间的窗口。2、点击左上角的新建,出现了这个窗口,...

vc6.0怎么用
1、打开VC++6.0,按左上角菜单栏的“文件”-->“新建”,打开如下界面 2、在左边的列表中选择“Win32 Console Application”,即win32控制台工程,控制台就类似windows中的cmd窗口,刚开始编程,选择创建这个工程就可以了。在右边输入工程名称,我在这里输入“FirstProgram”,位置选择一个存放该工程的...

VC++6.0怎么用?
温性提示:vc++ 6.0适合c语言基础学习代码联系,计算机二级考试c使 用 的是vc++2010。Microsoft Visual C++ 6.0 简称VC6.0,是微软于1998年推出的一款C++编译器,集成了MFC 6.0,包含标准版(Standard Edition)、专业版(Professional Edition)与企业版(Enterprise Edition)。如今仍用于维护旧的...

怎么在vc6.0上编译程序?
1、TC和VC上运行程序没有区别,只是操作步骤略有不同而已。vc++6.0的运行程序首先需要准备好一个空的c语言程序文件,写入一段程序,这里是判断闰年的简单程序:2、然后点击工具,点击编译按钮,开始编译程序,或者按下快捷键crtl+F7也可以执行编译:3、最后点击组件下的开始调试,选择go按钮,即可运行...

如何使用vc6.0进行程序开发?
c语言运行方式如下:上机输入和编译源程序。通过键盘向计算机输入程序,最后将此源程序以文件形式存放在文件夹内,文件用.c作为后缀,生成源程序文件。对源程序进行编译,先用c编译系统提供的“预处理器”对程序中的预处理指令进行编译预处理。例如,对于#include指令来说,就是将stdio.h头文件的内容读...

vc++6.0怎么编写程序?
首先说一下TC和VC的区别。1、TC是DOS环境界面下的编程环境,Tubro C++3.0版可以编译C++程序,而2.0版本以前的只能编译C程序。2、VC是Windows环境下可视化的编程环境,不仅可以编译C\/C++程序,还可用来开发MFC等可视化程序。VC打开后需要以下三个步骤:第一步、点击文件 - 新建 - 工程选项卡里选 一...

win10中怎么运行vc6.0
Win8\/win10不能运行VC6的解决方法步骤:一、首先找到vc的目录,找到文件“MSDEV.EXE”大家可以在VC6桌面快捷方式上点击右键,然后选择“属性”查看路径,如下图所示。二、找到MSDEV.EXE文件,并将“MSDEV.EXE”重命名改为“MSDEV1.EXE”,完成后,再次在该文件上右键,然后选择【属性】,切换到【兼容...

西岗区13656314208: 怎么用Vc++6.0调用一个.Net编写的Com+服务组件 -
不脉卓威: 才把中间的环节打通,现在写出来为大家提供方便,这里包含了四个类型: 1、在VS2005中,C#编写DLL并使用C++调用 2、在VS2005中C#编写的COM组件,使用VC6.0调用 3、在VC6.0中编写COM组件,使用VS2005 C#调用 4、在VC6.0中...

西岗区13656314208: 怎样运用Microsoft Visual C++ 6.0来编译调试运行一个c语言程序啊
不脉卓威: C语言的文件格式为.c 而C++的文件格式为.cpp 在VC++6.0中 可以正常运行C语言文件,也就是说是完全兼容C语言的. 进入VC++6.0后, 依次点击File->Open,选择你要打开的C语言文件,点击打开. 打开文件后,依次点击Build->Compile,编译文件无误后,按Ctrl+F5 运行程序.

西岗区13656314208: 如何用vc++6.0调试C程序? -
不脉卓威: 有好几种方法,先介绍我常用的:一般的C程序都是单文档,也就是说只有一个源文件,我一般这样做:在文件夹下或桌面上右击新建一个记事本文件,然后重命名为xxx.c文件,这样就形成了一个C源文件,如果这时候你的电脑里边有VC++6.0,那么直接双击该文件就能打开了,然后将代码编辑在编译器的代码编辑区,然后可按F7进行编译程序,再按Ctrl+F5运行程序 也可以用工程的方式,不过我觉得没得必要,因为这样做麻烦些,还有打开编译器过后,在"文件"菜单下选择新建,新建一个源文件再保存到磁盘上也行

西岗区13656314208: vc++6.0怎么用 -
不脉卓威: /输出hello c,/iostream>endl;/,C++写就不需要直接就myfile或者myfile.见文件 new->files->add to project选中在file 中输入文件名(注意:用C语言写文件明后要加.c例如文件名myfile;).就出现DOS界面了;/Ι.建工程 new->包含文件头 void main() ...

西岗区13656314208: visual c++6.0怎么使用 -
不脉卓威: 用VC++6.0编写C++程序的步骤如下: 在visual C++ 6.0 环境下编写C++程序需要经过建工程、建文件两个步骤.按照如下进行,细心,就可以: 一、先建一个工程 打开visual C++ 6.0, 在菜单栏里选 文件/新建(File/new), 选择Win32 ...

西岗区13656314208: 怎样在vc++6.0上使用c语言程序?步骤说清楚点 -
不脉卓威: 打开VC,点文件菜单——>新建 选择win32 console application(创建控制台程序) 随便输入一个文件名,注意保存路径 再点击文件菜单——>新建 选择C++ Soure File 输入名字 这样就可以在打开的.cpp文件里输入你的程序了,在.Cpp里可以编C的

西岗区13656314208: VC++6.0怎么使用?
不脉卓威: 创建一个Win32的控制台程序就可以了,具体方法如下: 进入VC6.0的环境; 点击“文件”,选“新建”,然后选择Win32 Console Application,之后要给工程起一个名字,然后点OK 再点Finsh(默认创建空工程),再点OK 工程建好,下面为...

西岗区13656314208: 怎样在VC++6.0下使用DLL? -
不脉卓威: dll的使用分为 (1)静态加载:第一步,在可执行程序的cpp中添加对dll的头文件的引用;第二步,将dll及其lib(包含了dll的符号表)文件添加到链接路径(可以直接将dll及其lib拷贝到exe项目的文件夹中);然后就可以再项目中使用dll中的函数...

西岗区13656314208: 如何使用VC++6.0 -
不脉卓威: ……详细过程: 打开VC后,文件->新建,VC自动定位到“工程”选项卡,如果编写C程序,选择Win32 Console Application(32位控制台程序),再输入要保存的路径和文件名,点击确定,界面里默认“一个空工程”,点击“完成”,这里就创建了一个工程.这时还不能开始写程序,选择“工程”->“增加到工程”->“新建”,VC自动定位到“文件”选项卡,要写C语言程序,选择“C++ Source File”(兼容C的),输入文件名,点击确定即可.

西岗区13656314208: 求助!弄不懂visual c++ 6.0调试工具的使用方法. -
不脉卓威: 如果是刚学vc++的话,可以把代码写在记事本里,然后将文件名的后缀知(.txt)改为(.cpp),双击即可用vc++打开.通常调试只要选择主菜单的Build|Build *.exe来编译你的项目(也可以按功能键F7).如果有错误,按F4即可查看错误所在位置以及出错原因,改正后再次编译连道接,最后即可选择Build|Execute *.exe(或者Ctrl+F5)运行.至于编写代码,专那要逐渐熟练才能得心应手.初学时常用的函数不多,开始要读程序.都明白了以后才能编写.至于这方面的书倒是很多,开始可以看一些实验指导书,不过要和你用的vc++版本属相符才好.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网