登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

hurt0759的个人主页

人生常态--跋涉.人生暂态--歇息.

 
 
 

日志

 
 

不同开发平台间的组件引用.转  

2011-11-24 14:25:51|  分类: IT |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
vs2005,.net的C#语言开发生成com组件的tlb文件

将.net托管dll导出为com,以便于非托管的程序调用
CCW(COM Callable wrapper) 是vs2005提供的一个机制,它可以把 .Net 托管DLL导出成传统COM,便于VB6, ASP 调用, 下面是一个普通例子:
1> 在vs2005中建立一个普通C# 的 class library 工程, 并在写入代码
//
//假定空间名为csLib2,类名为Class1
//蓝色部分很重要
//
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace csLib2
{
    [ClassInterface(ClassInterfaceType.AutoDual)]
    public class Class1
    {
        public int add(int a, int b)
        {
            return(a + b);
        }
        public string mergeString(string a, string b)
        {
            return(a+b);
        }
    }
}


2> 在工程-->"Properties"-->"Build"-->选中"Register for COM interop"
3> 在工程中的 AssemblyInfo.cs 文件中修改[assembly: ComVisible(true)]//原来默认为false

 

VC6.0调用方法

1.       把生成的Interop.WIA.dll,OperateCameraDll.dll,OperateCameraDll.tlb拷贝到VC程序目录下

2.       添加引用#import "OperateCameraDll.tlb" no_namespace named_guids

3.       初始化COM     CoInitialize(NULL);

4.       相机操作

OperateCameraInterfacePtr pMyObj(CLSID_OperateCamera);

int a = pMyObj->GetCameraImages();

CString straaa;

straaa.Format("%d",a);

         MessageBox(straaa);

5.       释放COM         CoUninitialize();

  评论这张
 
阅读(685)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018